Skip to content

Commit

Permalink
Fix specs for MyApp.Cldr.Calendar.localize/3
Browse files Browse the repository at this point in the history
  • Loading branch information
kipcole9 committed Jul 9, 2024
1 parent c643043 commit 6935c0b
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 15 deletions.
10 changes: 9 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
25 changes: 12 additions & 13 deletions lib/cldr/calendar/backend/calendar.ex
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ defmodule Cldr.Calendar.Backend do
end

alias Cldr.Locale
alias Cldr.Calendar
alias Cldr.LanguageTag

@default_calendar :gregorian
Expand Down Expand Up @@ -70,18 +69,18 @@ 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()}}

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)
Expand Down Expand Up @@ -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>,
Expand All @@ -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!())
"""

Expand Down Expand Up @@ -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)}
Expand Down
2 changes: 1 addition & 1 deletion mix.exs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
defmodule Cldr.Calendar.MixProject do
use Mix.Project

@version "1.25.1"
@version "1.25.2"

def project do
[
Expand Down

0 comments on commit 6935c0b

Please sign in to comment.