From 6935c0badd956391da531f696d7c13399bc4e598 Mon Sep 17 00:00:00 2001 From: Kip Cole Date: Tue, 9 Jul 2024 10:22:22 +1000 Subject: [PATCH] Fix specs for MyApp.Cldr.Calendar.localize/3 --- CHANGELOG.md | 10 +++++++++- lib/cldr/calendar/backend/calendar.ex | 25 ++++++++++++------------- mix.exs | 2 +- 3 files changed, 22 insertions(+), 15 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 2327018..362dab9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,13 +2,21 @@ **Note that `ex_cldr_calendars` version 1.24.0 and later are supported on Elixir 1.12 and later only.** +## Cldr.Calendars v1.25.2 + +This is the changelog for Cldr Calendars v1.25.2 released on July 9th, 2024. For older changelogs please consult the release tag on [GitHub](https://github.com/elixir-cldr/cldr_calendars/tags) + +### Bug Fixes + +* Fix spec for `Cldr.Calendar.localize/{1,2,3}` again - the return type was being aliased and hence dialyzer was unhappy. Not always, just sometimes. + ## Cldr.Calendars v1.25.1 This is the changelog for Cldr Calendars v1.25.1 released on July 7th, 2024. For older changelogs please consult the release tag on [GitHub](https://github.com/elixir-cldr/cldr_calendars/tags) ### Bug Fixes -* Fix spec for `Cldr.Calendar.localize/{1,2,3}` +* Fix spec for `Cldr.Calendar.localize/{1,2,3}` to use the more expansive date/time/datetime types from `Cldr.Calendar`. ## Cldr.Calendars v1.25.0 diff --git a/lib/cldr/calendar/backend/calendar.ex b/lib/cldr/calendar/backend/calendar.ex index 70328f2..287e9b3 100644 --- a/lib/cldr/calendar/backend/calendar.ex +++ b/lib/cldr/calendar/backend/calendar.ex @@ -25,7 +25,6 @@ defmodule Cldr.Calendar.Backend do end alias Cldr.Locale - alias Cldr.Calendar alias Cldr.LanguageTag @default_calendar :gregorian @@ -70,10 +69,10 @@ defmodule Cldr.Calendar.Backend do @doc since: "1.25.0" @spec localize(Cldr.Calendar.any_date_time()) :: - {:ok, Date.t()} | {:error, :incompatible_calendars} | {:error, {module(), String.t()}} + {:ok, Elixir.Date.t()} | {:error, :incompatible_calendars} | {:error, {module(), String.t()}} @spec localize(Cldr.Calendar.any_date_time(), Keyword.t() | Cldr.Calendar.part()) :: - {:ok, Date.t()} | {:error, :incompatible_calendars} | {:error, {module(), String.t()}} + {:ok, Elixir.Date.t()} | {:error, :incompatible_calendars} | {:error, {module(), String.t()}} @spec localize(Cldr.Calendar.any_date_time(), Cldr.Calendar.part(), Keyword.t()) :: String.t() | {:error, :incompatible_calendars} | {:error, {module(), String.t()}} @@ -81,7 +80,7 @@ defmodule Cldr.Calendar.Backend do def localize(date) do localize(date, []) end - + def localize(datetime, options) when is_list(options) do options = Keyword.put(options, :backend, unquote(backend)) Cldr.Calendar.localize(datetime, options) @@ -284,7 +283,7 @@ defmodule Cldr.Calendar.Backend do ## Example - iex: MyApp.Cldr.Calendar.strftime_options! + iex: MyApp.Cldr.Calendar.strftime_options!() [ am_pm_names: #Function<0.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2>, month_names: #Function<1.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2>, @@ -295,7 +294,7 @@ defmodule Cldr.Calendar.Backend do ## Typical usage - iex: NimbleStrftime.format(Date.today(), MyApp.Cldr.Calendar.strftime_options!()) + iex: NimbleStrftime.format(Date.utc_today(), MyApp.Cldr.Calendar.strftime_options!()) """ @@ -461,25 +460,25 @@ defmodule Cldr.Calendar.Backend do end def eras(unquote(locale_name), calendar), - do: {:error, Calendar.calendar_error(calendar)} + do: {:error, Cldr.Calendar.calendar_error(calendar)} def quarters(unquote(locale_name), calendar), - do: {:error, Calendar.calendar_error(calendar)} + do: {:error, Cldr.Calendar.calendar_error(calendar)} def months(unquote(locale_name), calendar), - do: {:error, Calendar.calendar_error(calendar)} + do: {:error, Cldr.Calendar.calendar_error(calendar)} def days(unquote(locale_name), calendar), - do: {:error, Calendar.calendar_error(calendar)} + do: {:error, Cldr.Calendar.calendar_error(calendar)} def day_periods(unquote(locale_name), calendar), - do: {:error, Calendar.calendar_error(calendar)} + do: {:error, Cldr.Calendar.calendar_error(calendar)} def cyclic_years(unquote(locale_name), calendar), - do: {:error, Calendar.calendar_error(calendar)} + do: {:error, Cldr.Calendar.calendar_error(calendar)} def month_patterns(unquote(locale_name), calendar), - do: {:error, Calendar.calendar_error(calendar)} + do: {:error, Cldr.Calendar.calendar_error(calendar)} end def eras(locale, _calendar), do: {:error, Locale.locale_error(locale)} diff --git a/mix.exs b/mix.exs index bf1b01e..039b3da 100644 --- a/mix.exs +++ b/mix.exs @@ -1,7 +1,7 @@ defmodule Cldr.Calendar.MixProject do use Mix.Project - @version "1.25.1" + @version "1.25.2" def project do [