Skip to content

Commit a2757bf

Browse files
simpler format
1 parent f8b558d commit a2757bf

3 files changed

Lines changed: 30 additions & 12 deletions

File tree

lib/code/object/date.rb

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -97,9 +97,11 @@ def self.call(**args)
9797
sig(args)
9898
code_future?
9999
when "format"
100-
sig(args) { [String, { locale: String.maybe }] }
100+
sig(args) { [String.maybe, { locale: String.maybe }] }
101101

102-
if code_second.something?
102+
if code_value.is_a?(Dictionary)
103+
code_format(nil, locale: code_value.code_get(:locale))
104+
elsif code_second.something?
103105
code_format(code_value, locale: code_second.code_get(:locale))
104106
else
105107
code_format(code_value)
@@ -414,9 +416,11 @@ def call(**args)
414416
sig(args)
415417
code_sunday?
416418
when "format"
417-
sig(args) { [String, { locale: String.maybe }] }
419+
sig(args) { [String.maybe, { locale: String.maybe }] }
418420

419-
if code_second.something?
421+
if code_value.is_a?(Dictionary)
422+
code_format(nil, locale: code_value.code_get(:locale))
423+
elsif code_second.something?
420424
code_format(code_value, locale: code_second.code_get(:locale))
421425
else
422426
code_format(code_value)
@@ -700,9 +704,11 @@ def code_format(format, locale: nil)
700704
code_format = format.to_code
701705
code_locale = locale.to_code
702706

703-
locale = code_locale.raw.presence_in(LOCALES) || I18n.locale
707+
requested_locale = code_locale.raw&.to_s
708+
locale = requested_locale&.presence_in(LOCALES)&.to_sym || I18n.locale
709+
locale = I18n.locale unless I18n.available_locales.include?(locale.to_sym)
704710

705-
format = code_format.raw
711+
format = code_format.raw || :default
706712
format = format.to_sym if I18n.exists?("date.formats.#{format}", locale)
707713

708714
String.new(I18n.l(raw, format: format, locale: locale))

lib/code/object/time.rb

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,11 @@ def self.call(**args)
188188
sig(args)
189189
code_sunday?
190190
when "format"
191-
sig(args) { [String, { locale: String.maybe }] }
191+
sig(args) { [String.maybe, { locale: String.maybe }] }
192192

193-
if code_second.something?
193+
if code_value.is_a?(Dictionary)
194+
code_format(nil, locale: code_value.code_get(:locale))
195+
elsif code_second.something?
194196
code_format(code_value, locale: code_second.code_get(:locale))
195197
else
196198
code_format(code_value)
@@ -463,9 +465,11 @@ def call(**args)
463465
sig(args)
464466
code_sunday?
465467
when "format"
466-
sig(args) { [String, { locale: String.maybe }] }
468+
sig(args) { [String.maybe, { locale: String.maybe }] }
467469

468-
if code_second.something?
470+
if code_value.is_a?(Dictionary)
471+
code_format(nil, locale: code_value.code_get(:locale))
472+
elsif code_second.something?
469473
code_format(code_value, locale: code_second.code_get(:locale))
470474
else
471475
code_format(code_value)
@@ -809,9 +813,11 @@ def code_format(format, locale: nil)
809813
code_format = format.to_code
810814
code_locale = locale.to_code
811815

812-
locale = code_locale.raw.presence_in(LOCALES) || I18n.locale
816+
requested_locale = code_locale.raw&.to_s
817+
locale = requested_locale&.presence_in(LOCALES)&.to_sym || I18n.locale
818+
locale = I18n.locale unless I18n.available_locales.include?(locale.to_sym)
813819

814-
format = code_format.raw
820+
format = code_format.raw || :default
815821
format = format.to_sym if I18n.exists?("time.formats.#{format}", locale)
816822

817823
String.new(I18n.l(raw, format: format, locale: locale))

spec/code_spec.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,9 @@ def evaluate_with_output(input)
248248
%w[Class.new(nothing) Nothing],
249249
%w[Class.new(true) Boolean],
250250
%w[Date Date],
251+
["Date.format == Date.format(:default)", "true"],
251252
%w[Date("0001-01-01").to_string :0001-01-01],
253+
["Date(\"2024-03-02\").format == Date(\"2024-03-02\").format(:default)", "true"],
252254
%w[Date("2024-03-02").to_string :2024-03-02],
253255
%w[Decimal(1) 1.0],
254256
%w[Decimal(1) 1],
@@ -296,6 +298,10 @@ def evaluate_with_output(input)
296298
["Class.new(Time, Boolean)", "Time"],
297299
%w[Date("2024-3-2").to_string :2024-03-02],
298300
%w[Date("2024-3-2").to_string :2024-03-02],
301+
["Time.format.present?", "true"],
302+
["Class(Time.format(locale: :fr))", "String"],
303+
["Time.new(\"2024-03-05.06:10:59.UTC\").format(locale: :fr) == Time.new(\"2024-03-05.06:10:59.UTC\").format(:default, locale: :fr)", "true"],
304+
["Time.new(\"2024-03-05.06:10:59.UTC\").format == Time.new(\"2024-03-05.06:10:59.UTC\").format(:default)", "true"],
299305
["Decimal(1, :2)", "100"],
300306
["Decimal(:1, 2)", "100.0"],
301307
["Decimal.new(1, :2)", "100"],

0 commit comments

Comments
 (0)