@@ -239,15 +239,11 @@ defmodule Cldr.Time.Interval do
239
239
def to_string ( unquote ( time ( ) ) = from , unquote ( time ( ) ) = to , backend , options ) do
240
240
{ locale , backend } = Cldr . locale_and_backend_from ( options [ :locale ] , backend )
241
241
formatter = Module . concat ( backend , DateTime.Formatter )
242
- format = options [ :time_format ] || options [ :format ] || @ default_format
243
- locale_number_system = Cldr.Number.System . number_system_from_locale ( locale , backend )
244
- number_system = Keyword . get ( options , :number_system , locale_number_system )
245
- prefer = Keyword . get ( options , :prefer , @ default_prefer )
242
+ options = normalize_options ( locale , backend , options )
246
243
247
- options =
248
- options
249
- |> Keyword . put ( :locale , locale )
250
- |> Keyword . put ( :number_system , number_system )
244
+ number_system = options . number_system
245
+ prefer = options . prefer
246
+ format = options . format
251
247
252
248
with { :ok , backend } <- Cldr . validate_backend ( backend ) ,
253
249
{ :ok , locale } <- Cldr . validate_locale ( locale , backend ) ,
@@ -399,6 +395,26 @@ defmodule Cldr.Time.Interval do
399
395
end
400
396
end
401
397
398
+ defp normalize_options ( _locale , _backend , % { } = options ) do
399
+ options
400
+ end
401
+
402
+ defp normalize_options ( locale , backend , options ) do
403
+ format = options [ :time_format ] || options [ :format ] || @ default_format
404
+ locale_number_system = Cldr.Number.System . number_system_from_locale ( locale , backend )
405
+ number_system = Keyword . get ( options , :number_system , locale_number_system )
406
+ prefer = Keyword . get ( options , :prefer , @ default_prefer )
407
+ style = Keyword . get ( options , :style , @ default_style )
408
+
409
+ options
410
+ |> Map . new ( )
411
+ |> Map . put ( :format , format )
412
+ |> Map . put ( :style , style )
413
+ |> Map . put ( :locale , locale )
414
+ |> Map . put ( :number_system , number_system )
415
+ |> Map . put ( :prefer , prefer )
416
+ end
417
+
402
418
@ doc """
403
419
Returns the format code representing the date or
404
420
time unit that is the greatest difference between
@@ -434,19 +450,9 @@ defmodule Cldr.Time.Interval do
434
450
Cldr.Date.Interval . greatest_difference ( from , to )
435
451
end
436
452
437
- # defp from_less_than_or_equal_to(from, to) do
438
- # case Time.compare(from, to) do
439
- # comp when comp in [:eq, :lt] -> {:ok, comp}
440
- # _other -> {:error, Cldr.Date.Interval.datetime_order_error(from, to)}
441
- # end
442
- # end
443
-
444
453
defp resolve_format ( from , to , formats , locale , options ) do
445
- format = Keyword . get ( options , :format , @ default_format )
446
- style = Keyword . get ( options , :style , @ default_style )
447
-
448
- with { :ok , style } <- validate_style ( style ) ,
449
- { :ok , format } <- validate_format ( formats , style , locale , format ) ,
454
+ with { :ok , style } <- validate_style ( options . style ) ,
455
+ { :ok , format } <- validate_format ( formats , style , locale , options . format ) ,
450
456
{ :ok , greatest_difference } <- greatest_difference ( from , to ) do
451
457
greatest_difference_format ( from , to , format , greatest_difference )
452
458
end
0 commit comments