From 1eabcb34e67c342af3f1744456710e6abc397179 Mon Sep 17 00:00:00 2001 From: mayel Date: Sun, 23 Jul 2023 16:35:12 +0000 Subject: [PATCH] deploy: c220d50e7fbc6e351379c9864a293a94163c6d72 --- Bonfire.Boundaries.Acls.html | 4 +- Bonfire.Common.Errors.html | 12 +- ...e.Common.Localise.Cldr.AcceptLanguage.html | 256 ++++++++-------- Bonfire.Common.Localise.Cldr.Calendar.html | 28 +- Bonfire.Common.Localise.Cldr.Currency.html | 124 ++++---- ...re.Common.Localise.Cldr.Date.Interval.html | 26 +- Bonfire.Common.Localise.Cldr.Date.html | 12 +- ....Common.Localise.Cldr.DateTime.Format.html | 50 ++-- ...mmon.Localise.Cldr.DateTime.Formatter.html | 2 +- ...ommon.Localise.Cldr.DateTime.Interval.html | 4 +- ...ommon.Localise.Cldr.DateTime.Relative.html | 62 ++-- Bonfire.Common.Localise.Cldr.DateTime.html | 16 +- Bonfire.Common.Localise.Cldr.Interval.html | 22 +- Bonfire.Common.Localise.Cldr.Language.html | 64 ++-- Bonfire.Common.Localise.Cldr.Locale.html | 48 +-- ....Common.Localise.Cldr.Number.Cardinal.html | 18 +- ...re.Common.Localise.Cldr.Number.Format.html | 48 +-- ...e.Common.Localise.Cldr.Number.Ordinal.html | 18 +- ...re.Common.Localise.Cldr.Number.Symbol.html | 14 +- ...re.Common.Localise.Cldr.Number.System.html | 54 ++-- ...on.Localise.Cldr.Number.Transliterate.html | 20 +- Bonfire.Common.Localise.Cldr.Number.html | 176 +++++------ ...ommon.Localise.Cldr.Rbnf.NumberSystem.html | 12 +- ...ire.Common.Localise.Cldr.Rbnf.Ordinal.html | 16 +- ...re.Common.Localise.Cldr.Rbnf.Spellout.html | 12 +- ...re.Common.Localise.Cldr.Time.Interval.html | 16 +- Bonfire.Common.Localise.Cldr.Time.html | 16 +- Bonfire.Common.Localise.Cldr.html | 136 ++++----- Bonfire.Common.Localise.Gettext.Helpers.html | 10 +- Bonfire.Common.Localise.Gettext.Plural.html | 20 +- Bonfire.Common.Test.Interactive.html | 8 +- Bonfire.Data.Assort.Ranked.html | 10 +- Bonfire.Files.html | 4 +- Bonfire.Me.Accounts.SecondFactors.html | 4 +- EctoSparkles.SanitiseStrings.html | 18 +- EctoSparkles.html | 38 +-- Flexto.html | 42 +-- Mix.Tasks.Bonfire.Account.New.html | 2 +- Mix.Tasks.Bonfire.Localise.Extract.html | 2 +- Mix.Tasks.Bonfire.Secrets.html | 2 +- Paginator.html | 90 +++--- Pointers.Mixin.html | 8 +- Pointers.Pointable.html | 4 +- Pointers.Virtual.html | 4 +- Voodoo.html | 10 +- architecture.html | 6 +- bonfire-flavoured-elixir.html | 62 ++-- bonfire_umbrella.epub | Bin 1234702 -> 1234714 bytes database.html | 280 +++++++++--------- deploy.html | 12 +- extension-activity_pub.html | 38 +-- extension-arrows.html | 66 ++--- extension-bonfire_data_activity_pub.html | 2 +- extension-bonfire_data_assort.html | 2 +- extension-bonfire_data_identity.html | 2 +- extension-bonfire_data_shared_user.html | 2 +- extension-bonfire_data_social.html | 2 +- extension-ecto_sparkles.html | 24 +- extension-flexto.html | 42 +-- extension-grumble.html | 30 +- extension-paginator.html | 30 +- extension-pointers.html | 104 +++---- extension-pointers_ulid.html | 2 +- extension-zest.html | 36 +-- graphql.html | 58 ++-- hacking.html | 2 +- mrf.html | 36 +-- 67 files changed, 1200 insertions(+), 1200 deletions(-) diff --git a/Bonfire.Boundaries.Acls.html b/Bonfire.Boundaries.Acls.html index 3ba000ea928..ed909cdf319 100644 --- a/Bonfire.Boundaries.Acls.html +++ b/Bonfire.Boundaries.Acls.html @@ -115,8 +115,8 @@

ACLs represent fully populated access control rules that can be reused. -Can be reused to secure multiple objects, thus exists independently of any object.

The table doesn't have any fields of its own:

has_many(:grants, Grant)
-has_many(:controlled, Controlled)
+Can be reused to secure multiple objects, thus exists independently of any object.

The table doesn't have any fields of its own:

has_many(:grants, Grant)
+has_many(:controlled, Controlled)
diff --git a/Bonfire.Common.Errors.html b/Bonfire.Common.Errors.html index 40270aa3f75..3a908448784 100644 --- a/Bonfire.Common.Errors.html +++ b/Bonfire.Common.Errors.html @@ -466,12 +466,12 @@

format_mfa(module, fun, arity)

Examples -
iex> Exception.format_mfa(Foo, :bar, 1)
-{Foo, :bar, "Foo.bar/1"}
-iex> Exception.format_mfa(Foo, :bar, [])
-{Foo, :bar, "Foo.bar()"}
-iex> Exception.format_mfa(nil, :bar, [])
-{nil, :bar, "nil.bar()"}

Anonymous functions are reported as -func/arity-anonfn-count-, +

iex> Exception.format_mfa(Foo, :bar, 1)
+{Foo, :bar, "Foo.bar/1"}
+iex> Exception.format_mfa(Foo, :bar, [])
+{Foo, :bar, "Foo.bar()"}
+iex> Exception.format_mfa(nil, :bar, [])
+{nil, :bar, "nil.bar()"}

Anonymous functions are reported as -func/arity-anonfn-count-, where func is the name of the enclosing function. Convert to "anonymous fn in func/arity"

diff --git a/Bonfire.Common.Localise.Cldr.AcceptLanguage.html b/Bonfire.Common.Localise.Cldr.AcceptLanguage.html index 3a5850d9490..569f1204c1f 100644 --- a/Bonfire.Common.Localise.Cldr.AcceptLanguage.html +++ b/Bonfire.Common.Localise.Cldr.AcceptLanguage.html @@ -119,7 +119,7 @@

the set of natural languages that are preferred as a response to the request. Language tags function are provided in Cldr.LanguageTag.

The format of an Accept-Language header is as follows in ABNF format:

   Accept-Language = "Accept-Language" ":"
                      1#( language-range [ ";" "q" "=" qvalue ] )
-   language-range  = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )

Each language-range MAY be given an associated quality value which represents an + language-range = ( ( 1*8ALPHA *( "-" 1*8ALPHA ) ) | "*" )

Each language-range MAY be given an associated quality value which represents an estimate of the user's preference for the languages specified by that range. The quality value defaults to "q=1". For example,

   Accept-Language: da, en-gb;q=0.8, en;q=0.7

would mean: "I prefer Danish, but will accept British English and other types of English."

@@ -234,54 +234,54 @@

best_match(accept_language)

Examples -
iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("da;q=0.1,zh-TW;q=0.3", TestBackend.Cldr)
-{:ok,
- %Cldr.LanguageTag{
+
iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("da;q=0.1,zh-TW;q=0.3", TestBackend.Cldr)
+{:ok,
+ %Cldr.LanguageTag{
    backend: TestBackend.Cldr,
    canonical_locale_name: "zh-TW",
    cldr_locale_name: :"zh-Hant",
-   language_subtags: [],
-   extensions: %{},
+   language_subtags: [],
+   extensions: %{},
    gettext_locale_name: nil,
    language: "zh",
-   locale: %{},
-   private_use: [],
+   locale: %{},
+   private_use: [],
    rbnf_locale_name: :"zh-Hant",
    requested_locale_name: "zh-TW",
    script: :Hant,
    territory: :TW,
-   transform: %{},
-   language_variants: []
- }}
+   transform: %{},
+   language_variants: []
+ }}
 
-iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("da;q=0.1,zh-TW;q=0.3", TestBackend.Cldr)
-{:ok,
- %Cldr.LanguageTag{
+iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("da;q=0.1,zh-TW;q=0.3", TestBackend.Cldr)
+{:ok,
+ %Cldr.LanguageTag{
    backend: TestBackend.Cldr,
    canonical_locale_name: "zh-TW",
    cldr_locale_name: :"zh-Hant",
-   language_subtags: [],
-   extensions: %{},
+   language_subtags: [],
+   extensions: %{},
    gettext_locale_name: nil,
    language: "zh",
-   locale: %{},
-   private_use: [],
+   locale: %{},
+   private_use: [],
    rbnf_locale_name: :"zh-Hant",
    requested_locale_name: "zh-TW",
    script: :Hant,
    territory: :TW,
-   transform: %{},
-   language_variants: []
- }}
-
-iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("xx,yy;q=0.3")
-{:error,
- {Cldr.NoMatchingLocale,
-  "No configured locale could be matched to \"xx,yy;q=0.3\""}}
-
-iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("invalid_tag")
-{:error, {Cldr.LanguageTag.ParseError,
-  "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}}
+
transform: %{}, + language_variants: [] + }} + +iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("xx,yy;q=0.3") +{:error, + {Cldr.NoMatchingLocale, + "No configured locale could be matched to \"xx,yy;q=0.3\""}} + +iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.best_match("invalid_tag") +{:error, {Cldr.LanguageTag.ParseError, + "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}}
@@ -342,95 +342,95 @@

parse(tokens_or_string)

Example -
iex> Cldr.AcceptLanguage.parse("da,zh-TW;q=0.3", TestBackend.Cldr)
-{:ok,
- [
-   {1.0,
-    %Cldr.LanguageTag{
+
iex> Cldr.AcceptLanguage.parse("da,zh-TW;q=0.3", TestBackend.Cldr)
+{:ok,
+ [
+   {1.0,
+    %Cldr.LanguageTag{
       backend: TestBackend.Cldr,
       canonical_locale_name: "da",
       cldr_locale_name: :da,
-      language_subtags: [],
-      extensions: %{},
+      language_subtags: [],
+      extensions: %{},
       gettext_locale_name: nil,
       language: "da",
-      locale: %{},
-      private_use: [],
+      locale: %{},
+      private_use: [],
       rbnf_locale_name: :da,
       requested_locale_name: "da",
       script: :Latn,
       territory: :DK,
-      transform: %{},
-      language_variants: []
-    }},
-   {0.3,
-    %Cldr.LanguageTag{
+      transform: %{},
+      language_variants: []
+    }},
+   {0.3,
+    %Cldr.LanguageTag{
       backend: TestBackend.Cldr,
       canonical_locale_name: "zh-TW",
       cldr_locale_name: :"zh-Hant",
-      language_subtags: [],
-      extensions: %{},
+      language_subtags: [],
+      extensions: %{},
       gettext_locale_name: nil,
       language: "zh",
-      locale: %{},
-      private_use: [],
+      locale: %{},
+      private_use: [],
       rbnf_locale_name: :"zh-Hant",
       requested_locale_name: "zh-TW",
       script: :Hant,
       territory: :TW,
-      transform: %{},
-      language_variants: []
-    }}
- ]}
-
-iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse("invalid_tag")
-{:error,
- {Cldr.LanguageTag.ParseError,
-  "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}}
-
-iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse("da,zh-TW;q=0.3,invalid_tag")
-{:ok,
- [
-   {1.0,
-    %Cldr.LanguageTag{
+      transform: %{},
+      language_variants: []
+    }}
+ ]}
+
+iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse("invalid_tag")
+{:error,
+ {Cldr.LanguageTag.ParseError,
+  "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}}
+
+iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse("da,zh-TW;q=0.3,invalid_tag")
+{:ok,
+ [
+   {1.0,
+    %Cldr.LanguageTag{
       backend: TestBackend.Cldr,
       canonical_locale_name: "da",
       cldr_locale_name: :da,
-      language_subtags: [],
-      extensions: %{},
+      language_subtags: [],
+      extensions: %{},
       gettext_locale_name: nil,
       language: "da",
-      locale: %{},
-      private_use: [],
+      locale: %{},
+      private_use: [],
       rbnf_locale_name: :da,
       requested_locale_name: "da",
       script: :Latn,
       territory: :DK,
-      transform: %{},
-      language_variants: []
-    }},
-   {0.3,
-    %Cldr.LanguageTag{
+      transform: %{},
+      language_variants: []
+    }},
+   {0.3,
+    %Cldr.LanguageTag{
       backend: TestBackend.Cldr,
       canonical_locale_name: "zh-TW",
       cldr_locale_name: :"zh-Hant",
-      language_subtags: [],
-      extensions: %{},
+      language_subtags: [],
+      extensions: %{},
       gettext_locale_name: nil,
       language: "zh",
-      locale: %{},
-      private_use: [],
+      locale: %{},
+      private_use: [],
       rbnf_locale_name: :"zh-Hant",
       requested_locale_name: "zh-TW",
       script: :Hant,
       territory: :TW,
-      transform: %{},
-      language_variants: []
-    }},
-   {:error,
-    {Cldr.LanguageTag.ParseError,
-     "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}}
- ]}
+
transform: %{}, + language_variants: [] + }}, + {:error, + {Cldr.LanguageTag.ParseError, + "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}} + ]}
@@ -475,92 +475,92 @@

parse!(accept_language)

Example -
iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse!("da,zh-TW;q=0.3")
-[
-  {1.0,
-   %Cldr.LanguageTag{
+
iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse!("da,zh-TW;q=0.3")
+[
+  {1.0,
+   %Cldr.LanguageTag{
      backend: TestBackend.Cldr,
      canonical_locale_name: "da",
      cldr_locale_name: :da,
-     language_subtags: [],
-     extensions: %{},
+     language_subtags: [],
+     extensions: %{},
      gettext_locale_name: nil,
      language: "da",
-     locale: %{},
-     private_use: [],
+     locale: %{},
+     private_use: [],
      rbnf_locale_name: :da,
      requested_locale_name: "da",
      script: :Latn,
      territory: :DK,
-     transform: %{},
-     language_variants: []
-   }},
-  {0.3,
-   %Cldr.LanguageTag{
+     transform: %{},
+     language_variants: []
+   }},
+  {0.3,
+   %Cldr.LanguageTag{
      backend: TestBackend.Cldr,
      canonical_locale_name: "zh-TW",
      cldr_locale_name: :"zh-Hant",
-     language_subtags: [],
-     extensions: %{},
+     language_subtags: [],
+     extensions: %{},
      gettext_locale_name: nil,
      language: "zh",
-     locale: %{},
-     private_use: [],
+     locale: %{},
+     private_use: [],
      rbnf_locale_name: :"zh-Hant",
      requested_locale_name: "zh-TW",
      script: :Hant,
      territory: :TW,
-     transform: %{},
-     language_variants: []
-   }}
-]
+     transform: %{},
+     language_variants: []
+   }}
+]
 
 Bonfire.Common.Localise.Cldr.AcceptLanguage.parse! "invalid_tag"
 ** (Cldr.AcceptLanguageError) "Expected a BCP47 language tag. Could not parse the remaining "g" starting at position 11
     (ex_cldr) lib/cldr/accept_language.ex:304: Cldr.AcceptLanguage.parse!/1
 
-iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse!("da,zh-TW;q=0.3,invalid_tag")
-[
-  {1.0,
-   %Cldr.LanguageTag{
+iex> Bonfire.Common.Localise.Cldr.AcceptLanguage.parse!("da,zh-TW;q=0.3,invalid_tag")
+[
+  {1.0,
+   %Cldr.LanguageTag{
      backend: TestBackend.Cldr,
      canonical_locale_name: "da",
      cldr_locale_name: :da,
-     language_subtags: [],
-     extensions: %{},
+     language_subtags: [],
+     extensions: %{},
      gettext_locale_name: nil,
      language: "da",
-     locale: %{},
-     private_use: [],
+     locale: %{},
+     private_use: [],
      rbnf_locale_name: :da,
      requested_locale_name: "da",
      script: :Latn,
      territory: :DK,
-     transform: %{},
-     language_variants: []
-   }},
-  {0.3,
-   %Cldr.LanguageTag{
+     transform: %{},
+     language_variants: []
+   }},
+  {0.3,
+   %Cldr.LanguageTag{
      backend: TestBackend.Cldr,
      canonical_locale_name: "zh-TW",
      cldr_locale_name: :"zh-Hant",
-     language_subtags: [],
-     extensions: %{},
+     language_subtags: [],
+     extensions: %{},
      gettext_locale_name: nil,
      language: "zh",
-     locale: %{},
-     private_use: [],
+     locale: %{},
+     private_use: [],
      rbnf_locale_name: :"zh-Hant",
      requested_locale_name: "zh-TW",
      script: :Hant,
      territory: :TW,
-     transform: %{},
-     language_variants: []
-   }},
-  {:error,
-   {Cldr.LanguageTag.ParseError,
-    "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}}
-]
+
transform: %{}, + language_variants: [] + }}, + {:error, + {Cldr.LanguageTag.ParseError, + "Expected a BCP47 language tag. Could not parse the remaining \"g\" starting at position 11"}} +]
diff --git a/Bonfire.Common.Localise.Cldr.Calendar.html b/Bonfire.Common.Localise.Cldr.Calendar.html index cb5e0d866f2..5125afdae9b 100644 --- a/Bonfire.Common.Localise.Cldr.Calendar.html +++ b/Bonfire.Common.Localise.Cldr.Calendar.html @@ -278,16 +278,16 @@

calendar_from_locale(locale)

Examples
iex> Bonfire.Common.Localise.Cldr.Calendar.calendar_from_locale "en-GB"
-{:ok, Cldr.Calendar.GB}
+{:ok, Cldr.Calendar.GB}
 
 iex> Bonfire.Common.Localise.Cldr.Calendar.calendar_from_locale "en-GB-u-ca-gregory"
-{:ok, Cldr.Calendar.Gregorian}
+{:ok, Cldr.Calendar.Gregorian}
 
 iex> Bonfire.Common.Localise.Cldr.Calendar.calendar_from_locale "en"
-{:ok, Cldr.Calendar.US}
+{:ok, Cldr.Calendar.US}
 
 iex> Bonfire.Common.Localise.Cldr.Calendar.calendar_from_locale "fa-IR"
-{:ok, Cldr.Calendar.Persian}
+{:ok, Cldr.Calendar.Persian}
@@ -330,10 +330,10 @@

calendar_from_territory(territory)

Examples
iex> Bonfire.Common.Localise.Cldr.Calendar.calendar_from_territory :US
-{:ok, Cldr.Calendar.Gregorian}
+{:ok, Cldr.Calendar.Gregorian}
 
 iex> Bonfire.Common.Localise.Cldr.Calendar.calendar_from_territory :XX
-{:error, {Cldr.UnknownTerritoryError, "The territory :XX is unknown"}}

+{:error, {Cldr.UnknownTerritoryError, "The territory :XX is unknown"}}

notes

@@ -583,19 +583,19 @@

strftime_options!(locale \\ Bonfire.Common. Example

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>,
-  abbreviated_month_names: #Function<2.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2>,
-  day_of_week_names: #Function<3.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2>,
-  abbreviated_day_of_week_names: #Function<4.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2>
-]

+[ + 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>, + abbreviated_month_names: #Function<2.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2>, + day_of_week_names: #Function<3.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2>, + abbreviated_day_of_week_names: #Function<4.32021692/1 in MyApp.Cldr.Calendar.strftime_options/2> +]

typical-usage

Typical usage

-
iex: NimbleStrftime.format(Date.today(), MyApp.Cldr.Calendar.strftime_options!())
+
iex: NimbleStrftime.format(Date.today(), MyApp.Cldr.Calendar.strftime_options!())
diff --git a/Bonfire.Common.Localise.Cldr.Currency.html b/Bonfire.Common.Localise.Cldr.Currency.html index 192f23ce55c..75fc2347f5e 100644 --- a/Bonfire.Common.Localise.Cldr.Currency.html +++ b/Bonfire.Common.Localise.Cldr.Currency.html @@ -392,11 +392,11 @@

currencies_for_locale(locale, only \\ :all,

MyApp.Cldr.Currency.currencies_for_locale "en" => {:ok, - %{

 FJD: %Cldr.Currency{
+   %{

 FJD: %Cldr.Currency{
    cash_digits: 2,
    cash_rounding: 0,
    code: "FJD",
-   count: %{one: "Fijian dollar", other: "Fijian dollars"},
+   count: %{one: "Fijian dollar", other: "Fijian dollars"},
    digits: 2,
    from: nil,
    iso_digits: 2,
@@ -406,12 +406,12 @@ 

currencies_for_locale(locale, only \\ :all, symbol: "FJD", tender: true, to: nil - }, - SUR: %Cldr.Currency{ + }, + SUR: %Cldr.Currency{ cash_digits: 2, cash_rounding: 0, code: "SUR", - count: %{one: "Soviet rouble", other: "Soviet roubles"}, + count: %{one: "Soviet rouble", other: "Soviet roubles"}, digits: 2, from: nil, iso_digits: nil, @@ -421,7 +421,7 @@

currencies_for_locale(locale, only \\ :all, symbol: "SUR", tender: true, to: nil - }, + }, ... }}

@@ -472,11 +472,11 @@

currencies_for_locale!(locale, only \\ :all Example

MyApp.Cldr.Currency.currencies_for_locale! "en" - => %{

FJD: %Cldr.Currency{
+  => %{

FJD: %Cldr.Currency{
   cash_digits: 2,
   cash_rounding: 0,
   code: "FJD",
-  count: %{one: "Fijian dollar", other: "Fijian dollars"},
+  count: %{one: "Fijian dollar", other: "Fijian dollars"},
   digits: 2,
   from: nil,
   iso_digits: 2,
@@ -486,12 +486,12 @@ 

currencies_for_locale!(locale, only \\ :all symbol: "FJD", tender: true, to: nil -}, -SUR: %Cldr.Currency{ +}, +SUR: %Cldr.Currency{ cash_digits: 2, cash_rounding: 0, code: "SUR", - count: %{one: "Soviet rouble", other: "Soviet roubles"}, + count: %{one: "Soviet rouble", other: "Soviet roubles"}, digits: 2, from: nil, iso_digits: nil, @@ -501,7 +501,7 @@

currencies_for_locale!(locale, only \\ :all symbol: "SUR", tender: true, to: nil -}, +}, ...

}

@@ -559,13 +559,13 @@

currency_for_code(currency_or_currency_code Examples

-
iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code("AUD")
-{:ok,
-  %Cldr.Currency{
+
iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code("AUD")
+{:ok,
+  %Cldr.Currency{
     cash_digits: 2,
     cash_rounding: 0,
     code: "AUD",
-    count: %{one: "Australian dollar", other: "Australian dollars"},
+    count: %{one: "Australian dollar", other: "Australian dollars"},
     digits: 2,
     iso_digits: 2,
     name: "Australian Dollar",
@@ -573,15 +573,15 @@ 

currency_for_code(currency_or_currency_code rounding: 0, symbol: "A$", tender: true -}} +}} -iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code("THB") -{:ok, - %Cldr.Currency{ +iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code("THB") +{:ok, + %Cldr.Currency{ cash_digits: 2, cash_rounding: 0, code: "THB", - count: %{one: "Thai baht", other: "Thai baht"}, + count: %{one: "Thai baht", other: "Thai baht"}, digits: 2, iso_digits: 2, name: "Thai Baht", @@ -589,7 +589,7 @@

currency_for_code(currency_or_currency_code rounding: 0, symbol: "THB", tender: true -}}

+
}}
@@ -648,12 +648,12 @@

currency_for_code!(currency_or_currency_cod Examples

-
iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code!("AUD")
-%Cldr.Currency{
+
iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code!("AUD")
+%Cldr.Currency{
   cash_digits: 2,
   cash_rounding: 0,
   code: "AUD",
-  count: %{one: "Australian dollar", other: "Australian dollars"},
+  count: %{one: "Australian dollar", other: "Australian dollars"},
   digits: 2,
   iso_digits: 2,
   name: "Australian Dollar",
@@ -661,14 +661,14 @@ 

currency_for_code!(currency_or_currency_cod rounding: 0, symbol: "A$", tender: true -} +} -iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code!("THB") -%Cldr.Currency{ +iex> Bonfire.Common.Localise.Cldr.Currency.currency_for_code!("THB") +%Cldr.Currency{ cash_digits: 2, cash_rounding: 0, code: "THB", - count: %{one: "Thai baht", other: "Thai baht"}, + count: %{one: "Thai baht", other: "Thai baht"}, digits: 2, iso_digits: 2, name: "Thai Baht", @@ -676,7 +676,7 @@

currency_for_code!(currency_or_currency_cod rounding: 0, symbol: "THB", tender: true -}

+
}
@@ -717,11 +717,11 @@

currency_from_locale(locale)

Examples -
iex> {:ok, locale} = Bonfire.Common.Localise.Cldr.validate_locale "en"
+
iex> {:ok, locale} = Bonfire.Common.Localise.Cldr.validate_locale "en"
 iex> Bonfire.Common.Localise.Cldr.Currency.currency_from_locale locale
 :USD
 
-iex> {:ok, locale} = Bonfire.Common.Localise.Cldr.validate_locale "en-AU"
+iex> {:ok, locale} = Bonfire.Common.Localise.Cldr.validate_locale "en-AU"
 iex> Bonfire.Common.Localise.Cldr.Currency.currency_from_locale locale
 :AUD
 
@@ -770,13 +770,13 @@ 

currency_history_for_locale(language_tag)
iex> MyApp.Cldr.Currency.currency_history_for_locale "en"
-{:ok,
-    %{
-    USD: %{from: ~D[1792-01-01], to: nil},
-    USN: %{tender: false},
-    USS: %{from: nil, tender: false, to: ~D[2014-03-01]}
-  }
-}
+{:ok, + %{ + USD: %{from: ~D[1792-01-01], to: nil}, + USN: %{tender: false}, + USS: %{from: nil, tender: false, to: ~D[2014-03-01]} + } +}

@@ -836,8 +836,8 @@

currency_strings(locale, only \\ :all, exce Example

MyApp.Cldr.Currency.currency_strings "en"
-=> {:ok,
- %{
+=> {:ok,
+ %{
    "mexican silver pesos" => :MXP,
    "sudanese dinar" => :SDD,
    "bad" => :BAD,
@@ -847,7 +847,7 @@ 

currency_strings(locale, only \\ :all, exce "guyanaese dollars" => :GYD, "equatorial guinean ekwele" => :GQE, ... - }}

+ }}
@@ -907,7 +907,7 @@

currency_strings!(locale_name, only \\ :all Example

MyApp.Cldr.Currency.currency_strings! "en"
-=> %{
+=> %{
   "mexican silver pesos" => :MXP,
   "sudanese dinar" => :SDD,
   "bad" => :BAD,
@@ -917,7 +917,7 @@ 

currency_strings!(locale_name, only \\ :all "guyanaese dollars" => :GYD, "equatorial guinean ekwele" => :GQE, ... - }

+ }
@@ -1006,7 +1006,7 @@

current_territory_currencies()

Example -
iex> Bonfire.Common.Localise.Cldr.Currency.current_territory_currencies()
+
iex> Bonfire.Common.Localise.Cldr.Currency.current_territory_currencies()
@@ -1099,10 +1099,10 @@

known_currency_code(currency_code)

Examples
iex> Bonfire.Common.Localise.Cldr.Currency.known_currency_code "AUD"
-{:ok, :AUD}
+{:ok, :AUD}
 
 iex> Bonfire.Common.Localise.Cldr.Currency.known_currency_code "GGG"
-{:error, {Cldr.UnknownCurrencyError, "The currency \"GGG\" is invalid"}}
+{:error, {Cldr.UnknownCurrencyError, "The currency \"GGG\" is invalid"}}
@@ -1249,14 +1249,14 @@

new(currency, options \\ [])

Example -
iex> Bonfire.Common.Localise.Cldr.Currency.new(:XAE, name: "Custom Name", digits: 0)
-{:ok,
- %Cldr.Currency{
+
iex> Bonfire.Common.Localise.Cldr.Currency.new(:XAE, name: "Custom Name", digits: 0)
+{:ok,
+ %Cldr.Currency{
    alt_code: :XAE,
    cash_digits: 0,
    cash_rounding: nil,
    code: :XAE,
-   count: %{other: "Custom Name"},
+   count: %{other: "Custom Name"},
    digits: 0,
    from: nil,
    iso_digits: 0,
@@ -1266,11 +1266,11 @@ 

new(currency, options \\ [])

symbol: "XAE", tender: false, to: nil - }} -iex> MyApp.Cldr.Currency.new(:XAH, name: "Custom Name") -{:error, "Required options are missing. Required options are [:name, :digits]"} -iex> Bonfire.Common.Localise.Cldr.Currency.new(:XAE, name: "XAE", digits: 0) -{:error, {Cldr.CurrencyAlreadyDefined, "Currency :XAE is already defined."}}
+
}} +iex> MyApp.Cldr.Currency.new(:XAH, name: "Custom Name") +{:error, "Required options are missing. Required options are [:name, :digits]"} +iex> Bonfire.Common.Localise.Cldr.Currency.new(:XAE, name: "XAE", digits: 0) +{:error, {Cldr.CurrencyAlreadyDefined, "Currency :XAE is already defined."}}
@@ -1329,19 +1329,19 @@

pluralize(number, currency, options \\ [])< Examples

iex> Bonfire.Common.Localise.Cldr.Currency.pluralize 1, :USD
-{:ok, "US dollar"}
+{:ok, "US dollar"}
 
 iex> Bonfire.Common.Localise.Cldr.Currency.pluralize 3, :USD
-{:ok, "US dollars"}
+{:ok, "US dollars"}
 
 iex> Bonfire.Common.Localise.Cldr.Currency.pluralize 12, :USD, locale: "zh"
-{:ok, "美元"}
+{:ok, "美元"}
 
 iex> Bonfire.Common.Localise.Cldr.Currency.pluralize 12, :USD, locale: "fr"
-{:ok, "dollars des États-Unis"}
+{:ok, "dollars des États-Unis"}
 
 iex> Bonfire.Common.Localise.Cldr.Currency.pluralize 1, :USD, locale: "fr"
-{:ok, "dollar des États-Unis"}
+{:ok, "dollar des États-Unis"}
@@ -1384,7 +1384,7 @@

strings_for_currency(currency, locale)

Example
iex> MyApp.Cldr.Currency.strings_for_currency :AUD, "en"
-["a$", "australian dollars", "aud", "australian dollar"]
+["a$", "australian dollars", "aud", "australian dollar"]
diff --git a/Bonfire.Common.Localise.Cldr.Date.Interval.html b/Bonfire.Common.Localise.Cldr.Date.Interval.html index e42080ae459..95821b53959 100644 --- a/Bonfire.Common.Localise.Cldr.Date.Interval.html +++ b/Bonfire.Common.Localise.Cldr.Date.Interval.html @@ -274,30 +274,30 @@

to_string(from, to, options)

Examples
iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string ~D[2020-01-01], ~D[2020-12-31]
-{:ok, "Jan 1 – Dec 31, 2020"}
+{:ok, "Jan 1 – Dec 31, 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string ~D[2020-01-01], ~D[2020-01-12]
-{:ok, "Jan 1 – 12, 2020"}
+{:ok, "Jan 1 – 12, 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string ~D[2020-01-01], ~D[2020-01-12],
 ...> format: :long
-{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
+{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string ~D[2020-01-01], ~D[2020-12-01],
 ...> format: :long, style: :year_and_month
-{:ok, "January – December 2020"}
+{:ok, "January – December 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string ~D[2020-01-01], ~D[2020-01-12],
 ...> format: :short
-{:ok, "1/1/2020 – 1/12/2020"}
+{:ok, "1/1/2020 – 1/12/2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string ~D[2020-01-01], ~D[2020-01-12],
 ...> format: :long, locale: "fr"
-{:ok, "mer. 1 – dim. 12 janv. 2020"}
+{:ok, "mer. 1 – dim. 12 janv. 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string ~D[2020-01-01], ~D[2020-01-12],
 ...> format: :long, locale: "th", number_system: :thai
-{:ok, "พ. ๑ ม.ค. – อา. ๑๒ ม.ค. ๒๐๒๐"}
+{:ok, "พ. ๑ ม.ค. – อา. ๑๒ ม.ค. ๒๐๒๐"}
@@ -373,17 +373,17 @@

to_string!(from, to, options)

Examples -
iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-31])
+
iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-31])
 "Jan 1 – Dec 31, 2020"
 
-iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12])
+iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12])
 "Jan 1 – 12, 2020"
 
-iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]),
+iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]),
 ...> format: :long
 "Wed, Jan 1 – Sun, Jan 12, 2020"
 
-iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-01]),
+iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-01]),
 ...> format: :long, style: :year_and_month
 "January – December 2020"
 
@@ -391,11 +391,11 @@ 

to_string!(from, to, options)

iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! ~I"2020-01/12" "Jan 1 – Dec 31, 2020" -iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]), +iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]), ...> format: :short "1/1/2020 – 1/12/2020" -iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]), +iex> Bonfire.Common.Localise.Cldr.Date.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-01-12]), ...> format: :long, locale: "fr" "mer. 1 – dim. 12 janv. 2020"
diff --git a/Bonfire.Common.Localise.Cldr.Date.html b/Bonfire.Common.Localise.Cldr.Date.html index 0aa04dd6135..7dc808762b5 100644 --- a/Bonfire.Common.Localise.Cldr.Date.html +++ b/Bonfire.Common.Localise.Cldr.Date.html @@ -221,22 +221,22 @@

to_string(date, options \\ [])

Examples
iex> Bonfire.Common.Localise.Cldr.Date.to_string ~D[2017-07-10], format: :medium, locale: "en"
-{:ok, "Jul 10, 2017"}
+{:ok, "Jul 10, 2017"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.to_string ~D[2017-07-10], locale: "en"
-{:ok, "Jul 10, 2017"}
+{:ok, "Jul 10, 2017"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.to_string ~D[2017-07-10], format: :full, locale: "en"
-{:ok, "Monday, July 10, 2017"}
+{:ok, "Monday, July 10, 2017"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.to_string ~D[2017-07-10], format: :short, locale: "en"
-{:ok, "7/10/17"}
+{:ok, "7/10/17"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.to_string ~D[2017-07-10], format: :short, locale: "fr"
-{:ok, "10/07/2017"}
+{:ok, "10/07/2017"}
 
 iex> Bonfire.Common.Localise.Cldr.Date.to_string ~D[2017-07-10], format: :long, locale: "af"
-{:ok, "10 Julie 2017"}
+{:ok, "10 Julie 2017"}
diff --git a/Bonfire.Common.Localise.Cldr.DateTime.Format.html b/Bonfire.Common.Localise.Cldr.DateTime.Format.html index 37b45468f6e..5d8f532a8ea 100644 --- a/Bonfire.Common.Localise.Cldr.DateTime.Format.html +++ b/Bonfire.Common.Localise.Cldr.DateTime.Format.html @@ -410,9 +410,9 @@

calendars_for(locale \\ Bonfire.Common.Loca Example

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.calendars_for "en"
-{:ok, [:buddhist, :chinese, :coptic, :dangi, :ethiopic, :ethiopic_amete_alem,
+{:ok, [:buddhist, :chinese, :coptic, :dangi, :ethiopic, :ethiopic_amete_alem,
  :generic, :gregorian, :hebrew, :indian, :islamic, :islamic_civil,
- :islamic_rgsa, :islamic_tbla, :islamic_umalqura, :japanese, :persian, :roc]}
+ :islamic_rgsa, :islamic_tbla, :islamic_umalqura, :japanese, :persian, :roc]}
@@ -459,20 +459,20 @@

date_formats(locale \\ Bonfire.Common.Local Examples:

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.date_formats "en"
-{:ok, %Cldr.Date.Styles{
+{:ok, %Cldr.Date.Styles{
   full: "EEEE, MMMM d, y",
   long: "MMMM d, y",
   medium: "MMM d, y",
   short: "M/d/yy"
-}}
+}}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Format.date_formats "en", :buddhist
-{:ok, %Cldr.Date.Styles{
+{:ok, %Cldr.Date.Styles{
   full: "EEEE, MMMM d, y G",
   long: "MMMM d, y G",
   medium: "MMM d, y G",
   short: "M/d/y GGGGG"
-}}
+}}
@@ -524,9 +524,9 @@

date_time_available_formats(locale \\ Bonfi Examples:

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.date_time_available_formats "en"
-{
+{
   :ok,
-  %{
+  %{
     d: "d",
     h: "h a",
     hm: "h:mm a",
@@ -535,7 +535,7 @@ 

date_time_available_formats(locale \\ Bonfi hmv: "h:mm a v", ms: "mm:ss", y: "y", - yw: %{one: "'week' w 'of' Y", other: "'week' w 'of' Y"}, + yw: %{one: "'week' w 'of' Y", other: "'week' w 'of' Y"}, Bh: "h B", Bhm: "h:mm B", Bhms: "h:mm:ss B", @@ -561,7 +561,7 @@

date_time_available_formats(locale \\ Bonfi MEd: "E, M/d", MMM: "LLL", MMMEd: "E, MMM d", - MMMMW: %{one: "'week' W 'of' MMMM", other: "'week' W 'of' MMMM"}, + MMMMW: %{one: "'week' W 'of' MMMM", other: "'week' W 'of' MMMM"}, MMMMd: "MMMM d", MMMd: "MMM d", Md: "M/d", @@ -574,8 +574,8 @@

date_time_available_formats(locale \\ Bonfi yMd: "M/d/y", yQQQ: "QQQ y", yQQQQ: "QQQQ y" - } -}

+ } +}
@@ -622,20 +622,20 @@

date_time_formats(locale \\ Bonfire.Common. Examples:

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.date_time_formats "en"
-{:ok, %Cldr.DateTime.Styles{
+{:ok, %Cldr.DateTime.Styles{
   full: "{1}, {0}",
   long: "{1}, {0}",
   medium: "{1}, {0}",
   short: "{1}, {0}"
-}}
+}}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Format.date_time_formats "en", :buddhist
-{:ok, %Cldr.DateTime.Styles{
+{:ok, %Cldr.DateTime.Styles{
   full: "{1}, {0}",
   long: "{1}, {0}",
   medium: "{1}, {0}",
   short: "{1}, {0}"
-}}
+}}
@@ -687,7 +687,7 @@

date_time_interval_fallback(locale \\ Bonfi Examples:

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.date_time_interval_fallback "en", :gregorian
-[0, " – ", 1]
+[0, " – ", 1]
@@ -841,7 +841,7 @@

gmt_format(locale \\ Bonfire.Common.Localis Example

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.gmt_format "en"
-{:ok, ["GMT", 0]}
+{:ok, ["GMT", 0]}
@@ -887,10 +887,10 @@

gmt_zero_format(locale \\ Bonfire.Common.Lo Example

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.gmt_zero_format :en
-{:ok, "GMT"}
+{:ok, "GMT"}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Format.gmt_zero_format "fr"
-{:ok, "UTC"}
+{:ok, "UTC"}
@@ -935,7 +935,7 @@

hour_format(locale \\ Bonfire.Common.Locali Example

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.hour_format "en"
-{:ok, {"+HH:mm", "-HH:mm"}}
+{:ok, {"+HH:mm", "-HH:mm"}}
@@ -1034,20 +1034,20 @@

time_formats(locale \\ Bonfire.Common.Local Examples:

iex> Bonfire.Common.Localise.Cldr.DateTime.Format.time_formats "en"
-{:ok, %Cldr.Time.Styles{
+{:ok, %Cldr.Time.Styles{
   full: "h:mm:ss a zzzz",
   long: "h:mm:ss a z",
   medium: "h:mm:ss a",
   short: "h:mm a"
-}}
+}}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Format.time_formats "en", :buddhist
-{:ok, %Cldr.Time.Styles{
+{:ok, %Cldr.Time.Styles{
   full: "h:mm:ss a zzzz",
   long: "h:mm:ss a z",
   medium: "h:mm:ss a",
   short: "h:mm a"
-}}
+}}
diff --git a/Bonfire.Common.Localise.Cldr.DateTime.Formatter.html b/Bonfire.Common.Localise.Cldr.DateTime.Formatter.html index a059c607f60..f522d50ca79 100644 --- a/Bonfire.Common.Localise.Cldr.DateTime.Formatter.html +++ b/Bonfire.Common.Localise.Cldr.DateTime.Formatter.html @@ -226,7 +226,7 @@

format(date, format, locale \\ Cldr.get_loc Examples

iex> Bonfire.Common.Localise.Cldr.DateTime.Formatter.format ~U[2017-09-03 10:23:00.0Z], "yy/MM/dd hh:MM", "en"
-{:ok, "17/09/03 10:09"}
+{:ok, "17/09/03 10:09"}
diff --git a/Bonfire.Common.Localise.Cldr.DateTime.Interval.html b/Bonfire.Common.Localise.Cldr.DateTime.Interval.html index 700b15b33cd..9548d1602e5 100644 --- a/Bonfire.Common.Localise.Cldr.DateTime.Interval.html +++ b/Bonfire.Common.Localise.Cldr.DateTime.Interval.html @@ -312,10 +312,10 @@

to_string(from, to, options \\ [])

iex> Bonfire.Common.Localise.Cldr.DateTime.Interval.to_string ~U[2020-01-01 00:00:00.0Z],
 ...> ~U[2020-12-31 10:00:00.0Z]
-{:ok, "Jan 1, 2020, 12:00:00 AM – Dec 31, 2020, 10:00:00 AM"}
+{:ok, "Jan 1, 2020, 12:00:00 AM – Dec 31, 2020, 10:00:00 AM"}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Interval.to_string ~U[2020-01-01 00:00:00.0Z], nil
-{:ok, "Jan 1, 2020, 12:00:00 AM –"}
+{:ok, "Jan 1, 2020, 12:00:00 AM –"}
diff --git a/Bonfire.Common.Localise.Cldr.DateTime.Relative.html b/Bonfire.Common.Localise.Cldr.DateTime.Relative.html index d64cedaf96c..204a42d5fad 100644 --- a/Bonfire.Common.Localise.Cldr.DateTime.Relative.html +++ b/Bonfire.Common.Localise.Cldr.DateTime.Relative.html @@ -219,60 +219,60 @@

to_string(time, options \\ [])

Examples -
iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(-1)
-{:ok, "1 second ago"}
+
iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(-1)
+{:ok, "1 second ago"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1)
-{:ok, "in 1 second"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1)
+{:ok, "in 1 second"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1, unit: :day)
-{:ok, "tomorrow"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1, unit: :day)
+{:ok, "tomorrow"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1, unit: :day, locale: "fr")
-{:ok, "demain"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1, unit: :day, locale: "fr")
+{:ok, "demain"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1, unit: :day, style: :narrow)
-{:ok, "tomorrow"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1, unit: :day, style: :narrow)
+{:ok, "tomorrow"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1234, unit: :year)
-{:ok, "in 1,234 years"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1234, unit: :year)
+{:ok, "in 1,234 years"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1234, unit: :year, locale: "fr")
-{:ok, "dans 1 234 ans"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(1234, unit: :year, locale: "fr")
+{:ok, "dans 1 234 ans"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(31)
-{:ok, "in 31 seconds"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(31)
+{:ok, "in 31 seconds"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(~D[2017-04-29], relative_to: ~D[2017-04-26])
-{:ok, "in 3 days"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(~D[2017-04-29], relative_to: ~D[2017-04-26])
+{:ok, "in 3 days"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(310, style: :short, locale: "fr")
-{:ok, "dans 5 min"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(310, style: :short, locale: "fr")
+{:ok, "dans 5 min"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(310, style: :narrow, locale: "fr")
-{:ok, "+5 min"}
+iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(310, style: :narrow, locale: "fr")
+{:ok, "+5 min"}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string 2, unit: :wed, style: :short, locale: "en"
-{:ok, "in 2 Wed."}
+{:ok, "in 2 Wed."}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string 1, unit: :wed, style: :short
-{:ok, "next Wed."}
+{:ok, "next Wed."}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string -1, unit: :wed, style: :short
-{:ok, "last Wed."}
+{:ok, "last Wed."}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string -1, unit: :wed
-{:ok, "last Wednesday"}
+{:ok, "last Wednesday"}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string -1, unit: :quarter
-{:ok, "last quarter"}
+{:ok, "last quarter"}
 
 iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string -1, unit: :mon, locale: "fr"
-{:ok, "lundi dernier"}
+{:ok, "lundi dernier"}
 
-iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(~D[2017-04-29], unit: :ziggeraut)
-{:error, {Cldr.UnknownTimeUnit,
- "Unknown time unit :ziggeraut.  Valid time units are [:day, :hour, :minute, :month, :second, :week, :year, :mon, :tue, :wed, :thu, :fri, :sat, :sun, :quarter]"}}
+
iex> Bonfire.Common.Localise.Cldr.DateTime.Relative.to_string(~D[2017-04-29], unit: :ziggeraut) +{:error, {Cldr.UnknownTimeUnit, + "Unknown time unit :ziggeraut. Valid time units are [:day, :hour, :minute, :month, :second, :week, :year, :mon, :tue, :wed, :thu, :fri, :sat, :sun, :quarter]"}}
diff --git a/Bonfire.Common.Localise.Cldr.DateTime.html b/Bonfire.Common.Localise.Cldr.DateTime.html index 902c1287c4a..8e7948359b7 100644 --- a/Bonfire.Common.Localise.Cldr.DateTime.html +++ b/Bonfire.Common.Localise.Cldr.DateTime.html @@ -226,19 +226,19 @@

to_string(date_time, options \\ [])

Examples -
iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC")
+
iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC")
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string datetime
-{:ok, "Jan 1, 2000, 11:59:59 PM"}
+{:ok, "Jan 1, 2000, 11:59:59 PM"}
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string datetime, locale: "en"
-{:ok, "Jan 1, 2000, 11:59:59 PM"}
+{:ok, "Jan 1, 2000, 11:59:59 PM"}
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string datetime, format: :long, locale: "en"
-{:ok, "January 1, 2000, 11:59:59 PM UTC"}
+{:ok, "January 1, 2000, 11:59:59 PM UTC"}
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string datetime, format: :hms, locale: "en"
-{:ok, "11:59:59 PM"}
+{:ok, "11:59:59 PM"}
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string datetime, format: :full, locale: "en"
-{:ok, "Saturday, January 1, 2000, 11:59:59 PM GMT"}
+{:ok, "Saturday, January 1, 2000, 11:59:59 PM GMT"}
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string datetime, format: :full, locale: "fr"
-{:ok, "samedi 1 janvier 2000, 23:59:59 UTC"}
+
{:ok, "samedi 1 janvier 2000, 23:59:59 UTC"}
@@ -303,7 +303,7 @@

to_string!(date_time, options \\ [])

Examples -
iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC")
+
iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC")
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string! datetime, locale: "en"
 "Jan 1, 2000, 11:59:59 PM"
 iex> Bonfire.Common.Localise.Cldr.DateTime.to_string! datetime, format: :long, locale: "en"
diff --git a/Bonfire.Common.Localise.Cldr.Interval.html b/Bonfire.Common.Localise.Cldr.Interval.html
index 5c4288fcc68..8eaf9d82d9f 100644
--- a/Bonfire.Common.Localise.Cldr.Interval.html
+++ b/Bonfire.Common.Localise.Cldr.Interval.html
@@ -284,11 +284,11 @@ 

to_string(interval, options)

iex> use CalendarInterval
 iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~I"2020-01-01/12",
 ...> format: :long
-{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
+{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
 
-iex> Bonfire.Common.Localise.Cldr.Interval.to_string Date.range(~D[2020-01-01], ~D[2020-12-31]),
+iex> Bonfire.Common.Localise.Cldr.Interval.to_string Date.range(~D[2020-01-01], ~D[2020-12-31]),
 ...> format: :long
-{:ok, "Wed, Jan 1 – Thu, Dec 31, 2020"}
+
{:ok, "Wed, Jan 1 – Thu, Dec 31, 2020"}
@@ -378,31 +378,31 @@

to_string(from, to, options \\ [])

Examples
iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~D[2020-01-01], ~D[2020-12-31]
-{:ok, "Jan 1 – Dec 31, 2020"}
+{:ok, "Jan 1 – Dec 31, 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~D[2020-01-01], ~D[2020-01-12]
-{:ok, "Jan 1 – 12, 2020"}
+{:ok, "Jan 1 – 12, 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~D[2020-01-01], ~D[2020-01-12],
 ...> format: :long
-{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
+{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~D[2020-01-01], ~D[2020-12-01],
 ...> format: :long, style: :year_and_month
-{:ok, "January – December 2020"}
+{:ok, "January – December 2020"}
 
 iex> use CalendarInterval
 iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~I"2020-01-01/12",
 ...> format: :long
-{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
+{:ok, "Wed, Jan 1 – Sun, Jan 12, 2020"}
 
 iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~U[2020-01-01 00:00:00.0Z], ~U[2020-12-01 10:05:00.0Z],
 ...> format: :long
-{:ok, "January 1, 2020, 12:00:00 AM UTC – December 1, 2020, 10:05:00 AM UTC"}
+{:ok, "January 1, 2020, 12:00:00 AM UTC – December 1, 2020, 10:05:00 AM UTC"}
 
 iex> Bonfire.Common.Localise.Cldr.Interval.to_string ~U[2020-01-01 00:00:00.0Z], ~U[2020-01-01 10:05:00.0Z],
 ...> format: :long
-{:ok, "January 1, 2020, 12:00:00 AM UTC – 10:05:00 AM UTC"}
+{:ok, "January 1, 2020, 12:00:00 AM UTC – 10:05:00 AM UTC"}
@@ -493,7 +493,7 @@

to_string!(interval, options)

...> format: :long "Wed, Jan 1 – Sun, Jan 12, 2020" -iex> Bonfire.Common.Localise.Cldr.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-31]), +iex> Bonfire.Common.Localise.Cldr.Interval.to_string! Date.range(~D[2020-01-01], ~D[2020-12-31]), ...> format: :long "Wed, Jan 1 – Thu, Dec 31, 2020"
diff --git a/Bonfire.Common.Localise.Cldr.Language.html b/Bonfire.Common.Localise.Cldr.Language.html index b448385f921..ed6b57fa5c8 100644 --- a/Bonfire.Common.Localise.Cldr.Language.html +++ b/Bonfire.Common.Localise.Cldr.Language.html @@ -264,12 +264,12 @@

available_languages(locale \\ get_locale()) Example

-
> Bonfire.Common.Localise.Cldr.Language.Language.available_languages(:en)
-["aa", "ab", "ace", "ach", "ada", "ady", "ae", "aeb", "af", "afh", "agq", "ain",
+
> Bonfire.Common.Localise.Cldr.Language.Language.available_languages(:en)
+["aa", "ab", "ace", "ach", "ada", "ady", "ae", "aeb", "af", "afh", "agq", "ain",
 "ak", "akk", "akz", "ale", "aln", "alt", "am", "an", "ang", "anp", "ar",
 "ar-001", "arc", "arn", "aro", "arp", "arq", "ars", "arw", "ary", "arz", "as",
 "asa", "ase", "ast", "av", "avk", "awa", "ay", "az", "ba", "bal", "ban", "bar",
-"bas", "bax", "bbc", "bbj", ...]
+
"bas", "bax", "bbc", "bbj", ...]
@@ -309,33 +309,33 @@

known_languages(locale \\ get_locale())

Example -
> Bonfire.Common.Localise.Cldr.Language.Language.known_languages(:en)
-%{"bez" => %{standard: "Bena"}, "lo" => %{standard: "Lao"},
-"kha" => %{standard: "Khasi"}, "eo" => %{standard: "Esperanto"},
-"rm" => %{standard: "Romansh"}, "ja" => %{standard: "Japanese"},
-"sw-CD" => %{standard: "Congo Swahili"},
-"pdc" => %{standard: "Pennsylvania German"}, "om" => %{standard: "Oromo"},
-"jut" => %{standard: "Jutish"}, "lij" => %{standard: "Ligurian"},
-"kut" => %{standard: "Kutenai"}, "vep" => %{standard: "Veps"},
-"yao" => %{standard: "Yao"}, "gez" => %{standard: "Geez"},
-"cr" => %{standard: "Cree"}, "ne" => %{standard: "Nepali"},
-"zbl" => %{standard: "Blissymbols"}, "ae" => %{standard: "Avestan"},
-"rof" => %{standard: "Rombo"}, "tkl" => %{standard: "Tokelau"},
-"rgn" => %{standard: "Romagnol"}, "el" => %{standard: "Greek"},
-"myv" => %{standard: "Erzya"}, "smj" => %{standard: "Lule Sami"},
-"fo" => %{standard: "Faroese"}, "ii" => %{standard: "Sichuan Yi"},
-"bum" => %{standard: "Bulu"}, "za" => %{standard: "Zhuang"},
-"raj" => %{standard: "Rajasthani"}, "mrj" => %{standard: "Western Mari"},
-"stq" => %{standard: "Saterland Frisian"}, "hu" => %{standard: "Hungarian"},
-"mga" => %{standard: "Middle Irish"}, "bej" => %{standard: "Beja"},
-"yue" => %{standard: "Cantonese"}, "xog" => %{standard: "Soga"},
-"ttt" => %{standard: "Muslim Tat"}, "uga" => %{standard: "Ugaritic"},
-"rup" => %{standard: "Aromanian"},
-"crs" => %{standard: "Seselwa Creole French"}, "oc" => %{standard: "Occitan"},
-"chp" => %{standard: "Chipewyan"}, "zen" => %{standard: "Zenaga"},
-"kmb" => %{standard: "Kimbundu"}, "nr" => %{standard: "South Ndebele"},
-"tiv" => %{standard: "Tiv"}, "aln" => %{standard: "Gheg Albanian"},
-"sh" => %{standard: "Serbo-Croatian"}, "fil" => %{...}, ...}
+
> Bonfire.Common.Localise.Cldr.Language.Language.known_languages(:en)
+%{"bez" => %{standard: "Bena"}, "lo" => %{standard: "Lao"},
+"kha" => %{standard: "Khasi"}, "eo" => %{standard: "Esperanto"},
+"rm" => %{standard: "Romansh"}, "ja" => %{standard: "Japanese"},
+"sw-CD" => %{standard: "Congo Swahili"},
+"pdc" => %{standard: "Pennsylvania German"}, "om" => %{standard: "Oromo"},
+"jut" => %{standard: "Jutish"}, "lij" => %{standard: "Ligurian"},
+"kut" => %{standard: "Kutenai"}, "vep" => %{standard: "Veps"},
+"yao" => %{standard: "Yao"}, "gez" => %{standard: "Geez"},
+"cr" => %{standard: "Cree"}, "ne" => %{standard: "Nepali"},
+"zbl" => %{standard: "Blissymbols"}, "ae" => %{standard: "Avestan"},
+"rof" => %{standard: "Rombo"}, "tkl" => %{standard: "Tokelau"},
+"rgn" => %{standard: "Romagnol"}, "el" => %{standard: "Greek"},
+"myv" => %{standard: "Erzya"}, "smj" => %{standard: "Lule Sami"},
+"fo" => %{standard: "Faroese"}, "ii" => %{standard: "Sichuan Yi"},
+"bum" => %{standard: "Bulu"}, "za" => %{standard: "Zhuang"},
+"raj" => %{standard: "Rajasthani"}, "mrj" => %{standard: "Western Mari"},
+"stq" => %{standard: "Saterland Frisian"}, "hu" => %{standard: "Hungarian"},
+"mga" => %{standard: "Middle Irish"}, "bej" => %{standard: "Beja"},
+"yue" => %{standard: "Cantonese"}, "xog" => %{standard: "Soga"},
+"ttt" => %{standard: "Muslim Tat"}, "uga" => %{standard: "Ugaritic"},
+"rup" => %{standard: "Aromanian"},
+"crs" => %{standard: "Seselwa Creole French"}, "oc" => %{standard: "Occitan"},
+"chp" => %{standard: "Chipewyan"}, "zen" => %{standard: "Zenaga"},
+"kmb" => %{standard: "Kimbundu"}, "nr" => %{standard: "South Ndebele"},
+"tiv" => %{standard: "Tiv"}, "aln" => %{standard: "Gheg Albanian"},
+"sh" => %{standard: "Serbo-Croatian"}, "fil" => %{...}, ...}
@@ -372,8 +372,8 @@

to_string(key, options \\ [])

Example -
iex> Bonfire.Common.Localise.Cldr.Language.Language.to_string("eo")
-{:ok, "Esperanto"}
+
iex> Bonfire.Common.Localise.Cldr.Language.Language.to_string("eo")
+{:ok, "Esperanto"}
diff --git a/Bonfire.Common.Localise.Cldr.Locale.html b/Bonfire.Common.Localise.Cldr.Locale.html index 491a8d0109f..09f15fc5006 100644 --- a/Bonfire.Common.Localise.Cldr.Locale.html +++ b/Bonfire.Common.Localise.Cldr.Locale.html @@ -299,16 +299,16 @@

fallback_locale_names(locale)

Examples -
iex> Bonfire.Common.Localise.Cldr.Locale.fallback_locale_names(:"fr-CA")
-{:ok, [:"fr-CA", :fr, :und]}
+
iex> Bonfire.Common.Localise.Cldr.Locale.fallback_locale_names(:"fr-CA")
+{:ok, [:"fr-CA", :fr, :und]}
 
 # Fallbacks are typically formed by progressively
 # stripping variant, territory and script from the
 # given locale name. But not always - there are
 # certain fallbacks that take a different path.
 
-iex> Bonfire.Common.Localise.Cldr.Locale.fallback_locale_names(:nb)
-{:ok, [:nb, :no, :und]}
+
iex> Bonfire.Common.Localise.Cldr.Locale.fallback_locale_names(:nb) +{:ok, [:nb, :no, :und]}
@@ -362,20 +362,20 @@

fallback_locales(locale)

Examples -
Bonfire.Common.Localise.Cldr.Locale.fallback_locales(:"fr-CA")
-=> {:ok,
-     [#Cldr.LanguageTag<fr-CA [validated]>, #Cldr.LanguageTag<fr [validated]>,
-      #Cldr.LanguageTag<und [validated]>]}
+
Bonfire.Common.Localise.Cldr.Locale.fallback_locales(:"fr-CA")
+=> {:ok,
+     [#Cldr.LanguageTag<fr-CA [validated]>, #Cldr.LanguageTag<fr [validated]>,
+      #Cldr.LanguageTag<und [validated]>]}
 
 # Fallbacks are typically formed by progressively
 # stripping variant, territory and script from the
 # given locale name. But not always - there are
 # certain fallbacks that take a different path.
 
-Bonfire.Common.Localise.Cldr.Locale.fallback_locales(:nb))
-=> {:ok,
-     [#Cldr.LanguageTag<nb [validated]>, #Cldr.LanguageTag<no [validated]>,
-      #Cldr.LanguageTag<und [validated]>]}
+
Bonfire.Common.Localise.Cldr.Locale.fallback_locales(:nb)) +=> {:ok, + [#Cldr.LanguageTag<nb [validated]>, #Cldr.LanguageTag<no [validated]>, + #Cldr.LanguageTag<und [validated]>]}
@@ -506,15 +506,15 @@

locale_from_host(host, options \\ [])

Examples
iex> Bonfire.Common.Localise.Cldr.Locale.locale_from_host "a.b.com.au"
-Elixir.Bonfire.Common.Localise.Cldr.validate_locale(:"en-AU")
+Elixir.Bonfire.Common.Localise.Cldr.validate_locale(:"en-AU")
 
-iex> Bonfire.Common.Localise.Cldr.Locale.locale_from_host("a.b.com.tv")
-{:error,
- {Cldr.UnknownLocaleError, "No locale was identified for territory \"tv\""}}
+iex> Bonfire.Common.Localise.Cldr.Locale.locale_from_host("a.b.com.tv")
+{:error,
+ {Cldr.UnknownLocaleError, "No locale was identified for territory \"tv\""}}
 
-iex> Bonfire.Common.Localise.Cldr.Locale.locale_from_host("a.b.com")
-{:error,
- {Cldr.UnknownLocaleError, "No locale was identified for territory \"com\""}}
+iex> Bonfire.Common.Localise.Cldr.Locale.locale_from_host("a.b.com") +{:error, + {Cldr.UnknownLocaleError, "No locale was identified for territory \"com\""}}
@@ -656,12 +656,12 @@

territory_from_host(host)

Examples -
iex> Cldr.Locale.territory_from_host("a.b.com.au")
-{:ok, :AU}
+
iex> Cldr.Locale.territory_from_host("a.b.com.au")
+{:ok, :AU}
 
-iex> Cldr.Locale.territory_from_host("a.b.com")
-{:error,
- {Cldr.UnknownLocaleError, "No locale was identified for territory \"com\""}}
+
iex> Cldr.Locale.territory_from_host("a.b.com") +{:error, + {Cldr.UnknownLocaleError, "No locale was identified for territory \"com\""}}
diff --git a/Bonfire.Common.Localise.Cldr.Number.Cardinal.html b/Bonfire.Common.Localise.Cldr.Number.Cardinal.html index fe26e5a3acd..3f9460ed938 100644 --- a/Bonfire.Common.Localise.Cldr.Number.Cardinal.html +++ b/Bonfire.Common.Localise.Cldr.Number.Cardinal.html @@ -428,31 +428,31 @@

pluralize(number, locale_name, substitution Examples

-
iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 1, "en", %{one: "one"}
+
iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 1, "en", %{one: "one"}
 "one"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 2, "en", %{one: "one"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 2, "en", %{one: "one"}
 nil
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 2, "en", %{one: "one", two: "two", other: "other"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 2, "en", %{one: "one", two: "two", other: "other"}
 "other"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 22, "en", %{one: "one", two: "two", other: "other"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 22, "en", %{one: "one", two: "two", other: "other"}
 "other"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize Decimal.new(1), "en", %{one: "one"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize Decimal.new(1), "en", %{one: "one"}
 "one"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize Decimal.new(2), "en", %{one: "one"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize Decimal.new(2), "en", %{one: "one"}
 nil
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize Decimal.new(2), "en", %{one: "one", two: "two"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize Decimal.new(2), "en", %{one: "one", two: "two"}
 nil
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 1..10, "ar", %{one: "one", few: "few", other: "other"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 1..10, "ar", %{one: "one", few: "few", other: "other"}
 "few"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 1..10, "en", %{one: "one", few: "few", other: "other"}
+iex> Bonfire.Common.Localise.Cldr.Number.Cardinal.pluralize 1..10, "en", %{one: "one", few: "few", other: "other"}
 "other"
diff --git a/Bonfire.Common.Localise.Cldr.Number.Format.html b/Bonfire.Common.Localise.Cldr.Number.Format.html index ae7a52a21df..0fa17825dd2 100644 --- a/Bonfire.Common.Localise.Cldr.Number.Format.html +++ b/Bonfire.Common.Localise.Cldr.Number.Format.html @@ -441,7 +441,7 @@

decimal_format_list()

Example
#=> Bonfire.Common.Localise.Cldr.Number.Format.Format.decimal_format_list
-["#", "#,##,##0%",
+["#", "#,##,##0%",
 "#,##,##0.###", "#,##,##0.00¤", "#,##,##0.00¤;(#,##,##0.00¤)",
 "#,##,##0 %", "#,##0%", "#,##0.###", "#,##0.00 ¤",
 "#,##0.00 ¤;(#,##0.00 ¤)", "#,##0.00¤", "#,##0.00¤;(#,##0.00¤)",
@@ -451,7 +451,7 @@ 

decimal_format_list()

"000 B ¤", "000 E ¤", "000 K ¤", "000 MRD ¤", "000 Md ¤", "000 Mio'.' ¤", "000 Mio ¤", "000 Mld ¤", "000 Mln ¤", "000 Mn ¤", "000 Mrd'.' ¤", "000 Mrd ¤", "000 Mr ¤", "000 M ¤", "000 NT ¤", "000 N ¤", "000 Tn ¤", -"000 Tr ¤", ...]
+"000 Tr ¤", ...]
@@ -499,8 +499,8 @@

decimal_format_list_for(locale \\ Bonfire.C Example

-
iex> Bonfire.Common.Localise.Cldr.Number.Format.decimal_format_list_for(:en)
-{:ok, ["#,##0%", "#,##0.###", "#,##0.00", "#,##0.00;(#,##0.00)","#E0",
+
iex> Bonfire.Common.Localise.Cldr.Number.Format.decimal_format_list_for(:en)
+{:ok, ["#,##0%", "#,##0.###", "#,##0.00", "#,##0.00;(#,##0.00)","#E0",
  "0 billion", "0 million", "0 thousand",
  "0 trillion", "00 billion", "00 million", "00 thousand", "00 trillion",
  "000 billion", "000 million", "000 thousand", "000 trillion", "000B", "000K",
@@ -508,7 +508,7 @@ 

decimal_format_list_for(locale \\ Bonfire.C "¤#,##0.00", "¤#,##0.00;(¤#,##0.00)", "¤000B", "¤000K", "¤000M", "¤000T", "¤00B", "¤00K", "¤00M", "¤00T", "¤0B", "¤0K", "¤0M", "¤0T", "¤ #,##0.00", "¤ #,##0.00;(¤ #,##0.00)", "¤ 000B", "¤ 000K", "¤ 000M", - "¤ 000T", "¤ 00B", "¤ 00K", "¤ 00M", "¤ 00T", "¤ 0B", "¤ 0K", "¤ 0M", "¤ 0T"]}

+
"¤ 000T", "¤ 00B", "¤ 00K", "¤ 00M", "¤ 00T", "¤ 0B", "¤ 0K", "¤ 0M", "¤ 0T"]}
@@ -561,8 +561,8 @@

default_grouping_for(locale \\ Bonfire.Comm Examples

-
iex> Bonfire.Common.Localise.Cldr.Number.Format.default_grouping_for(:en)
-{:ok, %{fraction: %{first: 0, rest: 0}, integer: %{first: 3, rest: 3}}}
+
iex> Bonfire.Common.Localise.Cldr.Number.Format.default_grouping_for(:en)
+{:ok, %{fraction: %{first: 0, rest: 0}, integer: %{first: 3, rest: 3}}}
@@ -614,8 +614,8 @@

default_grouping_for!(locale)

Examples -
iex> Bonfire.Common.Localise.Cldr.Number.Format.default_grouping_for!(:en)
-%{fraction: %{first: 0, rest: 0}, integer: %{first: 3, rest: 3}}
+
iex> Bonfire.Common.Localise.Cldr.Number.Format.default_grouping_for!(:en)
+%{fraction: %{first: 0, rest: 0}, integer: %{first: 3, rest: 3}}
@@ -672,18 +672,18 @@

formats_for(locale \\ Bonfire.Common.Locali percent: "#,##0 %", scientific: "#E0", standard: "#,##0.###" - currency_short: [{"1000", [one: "0 k ¤", other: "0 k ¤"]}, - {"10000", [one: "00 k ¤", other: "00 k ¤"]}, - {"100000", [one: "000 k ¤", other: "000 k ¤"]}, - {"1000000", [one: "0 M ¤", other: "0 M ¤"]}, - {"10000000", [one: "00 M ¤", other: "00 M ¤"]}, - {"100000000", [one: "000 M ¤", other: "000 M ¤"]}, - {"1000000000", [one: "0 Md ¤", other: "0 Md ¤"]}, - {"10000000000", [one: "00 Md ¤", other: "00 Md ¤"]}, - {"100000000000", [one: "000 Md ¤", other: "000 Md ¤"]}, - {"1000000000000", [one: "0 Bn ¤", other: "0 Bn ¤"]}, - {"10000000000000", [one: "00 Bn ¤", other: "00 Bn ¤"]}, - {"100000000000000", [one: "000 Bn ¤", other: "000 Bn ¤"]}], + currency_short: [{"1000", [one: "0 k ¤", other: "0 k ¤"]}, + {"10000", [one: "00 k ¤", other: "00 k ¤"]}, + {"100000", [one: "000 k ¤", other: "000 k ¤"]}, + {"1000000", [one: "0 M ¤", other: "0 M ¤"]}, + {"10000000", [one: "00 M ¤", other: "00 M ¤"]}, + {"100000000", [one: "000 M ¤", other: "000 M ¤"]}, + {"1000000000", [one: "0 Md ¤", other: "0 Md ¤"]}, + {"10000000000", [one: "00 Md ¤", other: "00 Md ¤"]}, + {"100000000000", [one: "000 Md ¤", other: "000 Md ¤"]}, + {"1000000000000", [one: "0 Bn ¤", other: "0 Bn ¤"]}, + {"10000000000000", [one: "00 Bn ¤", other: "00 Bn ¤"]}, + {"100000000000000", [one: "000 Bn ¤", other: "000 Bn ¤"]}], ... }

@@ -774,8 +774,8 @@

minimum_grouping_digits_for(locale \\ Bonfi Examples

-
iex> Bonfire.Common.Localise.Cldr.Number.Format.minimum_grouping_digits_for("en")
-{:ok, 1}
+
iex> Bonfire.Common.Localise.Cldr.Number.Format.minimum_grouping_digits_for("en")
+{:ok, 1}
@@ -827,7 +827,7 @@

minimum_grouping_digits_for!(locale)

Examples -
iex> Bonfire.Common.Localise.Cldr.Number.Format.minimum_grouping_digits_for!("en")
+
iex> Bonfire.Common.Localise.Cldr.Number.Format.minimum_grouping_digits_for!("en")
 1
diff --git a/Bonfire.Common.Localise.Cldr.Number.Ordinal.html b/Bonfire.Common.Localise.Cldr.Number.Ordinal.html index e133a97f21b..a025871c815 100644 --- a/Bonfire.Common.Localise.Cldr.Number.Ordinal.html +++ b/Bonfire.Common.Localise.Cldr.Number.Ordinal.html @@ -431,31 +431,31 @@

pluralize(number, locale_name, substitution Examples

-
iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 1, :en, %{one: "one"}
+
iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 1, :en, %{one: "one"}
 "one"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 2, :en, %{one: "one"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 2, :en, %{one: "one"}
 nil
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 2, :en, %{one: "one", two: "two"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 2, :en, %{one: "one", two: "two"}
 "two"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 22, :en, %{one: "one", two: "two", other: "other"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 22, :en, %{one: "one", two: "two", other: "other"}
 "two"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize Decimal.new(1), :en, %{one: "one"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize Decimal.new(1), :en, %{one: "one"}
 "one"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize Decimal.new(2), :en, %{one: "one"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize Decimal.new(2), :en, %{one: "one"}
 nil
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize Decimal.new(2), :en, %{one: "one", two: "two"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize Decimal.new(2), :en, %{one: "one", two: "two"}
 "two"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 1..10, "ar", %{one: "one", few: "few", other: "other"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 1..10, "ar", %{one: "one", few: "few", other: "other"}
 "other"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 1..10, "en", %{one: "one", few: "few", other: "other"}
+iex> Bonfire.Common.Localise.Cldr.Number.Ordinal.pluralize 1..10, "en", %{one: "one", few: "few", other: "other"}
 "other"
diff --git a/Bonfire.Common.Localise.Cldr.Number.Symbol.html b/Bonfire.Common.Localise.Cldr.Number.Symbol.html index f205144e0c8..55a57a9ffd9 100644 --- a/Bonfire.Common.Localise.Cldr.Number.Symbol.html +++ b/Bonfire.Common.Localise.Cldr.Number.Symbol.html @@ -351,9 +351,9 @@

number_symbols_for(locale \\ Bonfire.Common Example:

-
iex> Bonfire.Common.Localise.Cldr.Number.Symbol.number_symbols_for(:th)
-{:ok, %{
-   latn: %Cldr.Number.Symbol{
+
iex> Bonfire.Common.Localise.Cldr.Number.Symbol.number_symbols_for(:th)
+{:ok, %{
+   latn: %Cldr.Number.Symbol{
      decimal: ".",
      exponential: "E",
      group: ",",
@@ -366,8 +366,8 @@ 

number_symbols_for(locale \\ Bonfire.Common plus_sign: "+", superscripting_exponent: "×", time_separator: ":" - }, - thai: %Cldr.Number.Symbol{ + }, + thai: %Cldr.Number.Symbol{ decimal: ".", exponential: "E", group: ",", @@ -380,8 +380,8 @@

number_symbols_for(locale \\ Bonfire.Common plus_sign: "+", superscripting_exponent: "×", time_separator: ":" - } - }}

+
} + }}
diff --git a/Bonfire.Common.Localise.Cldr.Number.System.html b/Bonfire.Common.Localise.Cldr.Number.System.html index 5b83656b9d3..fb92829ee51 100644 --- a/Bonfire.Common.Localise.Cldr.Number.System.html +++ b/Bonfire.Common.Localise.Cldr.Number.System.html @@ -290,23 +290,23 @@

number_system_for(locale, system_name)

Examples
iex> Bonfire.Common.Localise.Cldr.Number.System.number_system_for "th", :latn
-{:ok, %{digits: "0123456789", type: :numeric}}
+{:ok, %{digits: "0123456789", type: :numeric}}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.number_system_for "en", :default
-{:ok, %{digits: "0123456789", type: :numeric}}
+{:ok, %{digits: "0123456789", type: :numeric}}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.number_system_for "he", :traditional
-{:ok, %{rules: "hebrew", type: :algorithmic}}
+{:ok, %{rules: "hebrew", type: :algorithmic}}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.number_system_for "en", :native
-{:ok, %{digits: "0123456789", type: :numeric}}
+{:ok, %{digits: "0123456789", type: :numeric}}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.number_system_for "en", :finance
-{
+{
   :error,
-  {Cldr.UnknownNumberSystemError,
-    "The number system :finance is unknown for the locale named :en. Valid number systems are %{default: :latn, native: :latn}"}
-}
+ {Cldr.UnknownNumberSystemError, + "The number system :finance is unknown for the locale named :en. Valid number systems are %{default: :latn, native: :latn}"} +}
@@ -397,10 +397,10 @@

number_system_names_for(locale)

Examples
iex> Bonfire.Common.Localise.Cldr.Number.System.number_system_names_for "en"
-{:ok, [:latn]}
+{:ok, [:latn]}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.number_system_names_for "zz"
-{:error, {Cldr.InvalidLanguageError, "The language \"zz\" is invalid"}}
+{:error, {Cldr.InvalidLanguageError, "The language \"zz\" is invalid"}}
@@ -482,13 +482,13 @@

number_systems_for(locale)

Examples
iex> Bonfire.Common.Localise.Cldr.Number.System.number_systems_for "en"
-{:ok, %{default: :latn, native: :latn}}
+{:ok, %{default: :latn, native: :latn}}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.number_systems_for "th"
-{:ok, %{default: :latn, native: :thai}}
+{:ok, %{default: :latn, native: :thai}}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.number_systems_for "zz"
-{:error, {Cldr.InvalidLanguageError, "The language \"zz\" is invalid"}}
+{:error, {Cldr.InvalidLanguageError, "The language \"zz\" is invalid"}}
@@ -586,20 +586,20 @@

system_name_from(system_name, locale)

Examples -
ex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from(:default, "en")
-{:ok, :latn}
+
ex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from(:default, "en")
+{:ok, :latn}
 
-iex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from("latn", "en")
-{:ok, :latn}
+iex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from("latn", "en")
+{:ok, :latn}
 
-iex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from(:native, "en")
-{:ok, :latn}
+iex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from(:native, "en")
+{:ok, :latn}
 
-iex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from(:nope, "en")
-{
+iex> Bonfire.Common.Localise.Cldr.Number.System.system_name_from(:nope, "en")
+{
   :error,
-  {Cldr.UnknownNumberSystemError, "The number system :nope is unknown"}
-}

Note that return value is not guaranteed to be a valid + {Cldr.UnknownNumberSystemError, "The number system :nope is unknown"} +}

Note that return value is not guaranteed to be a valid number system for the given locale as demonstrated in the third example.

@@ -646,16 +646,16 @@

to_system(number, system)

Examples
iex> Bonfire.Common.Localise.Cldr.Number.System.to_system 123456, :hebr
-{:ok, "קכ״ג׳תנ״ו"}
+{:ok, "קכ״ג׳תנ״ו"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.to_system 123, :hans
-{:ok, "一百二十三"}
+{:ok, "一百二十三"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.to_system 123, :hant
-{:ok, "一百二十三"}
+{:ok, "一百二十三"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.System.to_system 123, :hansfin
-{:ok, "壹佰贰拾叁"}
+{:ok, "壹佰贰拾叁"}
diff --git a/Bonfire.Common.Localise.Cldr.Number.Transliterate.html b/Bonfire.Common.Localise.Cldr.Number.Transliterate.html index 725951702b6..68b42ac04bb 100644 --- a/Bonfire.Common.Localise.Cldr.Number.Transliterate.html +++ b/Bonfire.Common.Localise.Cldr.Number.Transliterate.html @@ -133,12 +133,12 @@

transliteration map is slow, pairs of transliterations can be configured so that the transliteration map is created at compile time and therefore speeding up transliteration at run time.

To configure these transliteration pairs, add the to the use Cldr configuration -in a backend module:

defmodule MyApp.Cldr do
+in a backend module:

defmodule MyApp.Cldr do
   use Cldr,
-  locale: ["en", "fr", "th"],
+  locale: ["en", "fr", "th"],
   default_locale: "en",
-  precompile_transliterations: [{:latn, :thai}, {:arab, :thai}]
-end

Where each tuple in the list configures one transliteration map. In this example, two maps are + precompile_transliterations: [{:latn, :thai}, {:arab, :thai}] +end

Where each tuple in the list configures one transliteration map. In this example, two maps are configured: from :latn to :thai and from :arab to :thai.

A list of configurable number systems is returned by Cldr.Number.System.systems_with_digits/0.

If a transliteration is requested between two number pairs that have not been configured for precompilation, a warning is logged.

@@ -254,22 +254,22 @@

transliterate(sequence, locale \\ Bonfire.C Examples

-
iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556")
+
iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556")
 "123556"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123,556.000", "fr", :default)
+iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123,556.000", "fr", :default)
 "123 556,000"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556", "th", :default)
+iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556", "th", :default)
 "123556"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556", "th", "thai")
+iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556", "th", "thai")
 "๑๒๓๕๕๖"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556", "th", :native)
+iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("123556", "th", :native)
 "๑๒๓๕๕๖"
 
-iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("Some number is: 123556", "th", "thai")
+iex> Bonfire.Common.Localise.Cldr.Number.Transliterate.transliterate("Some number is: 123556", "th", "thai")
 "Some number is: ๑๒๓๕๕๖"
diff --git a/Bonfire.Common.Localise.Cldr.Number.html b/Bonfire.Common.Localise.Cldr.Number.html index 85ac4cc27e7..1cadf647d6d 100644 --- a/Bonfire.Common.Localise.Cldr.Number.html +++ b/Bonfire.Common.Localise.Cldr.Number.html @@ -414,19 +414,19 @@

parse(string, options \\ [])

Examples -
iex> Bonfire.Common.Localise.Cldr.Number.parse("+1.000,34", locale: "de")
-{:ok, 1000.34}
+
iex> Bonfire.Common.Localise.Cldr.Number.parse("+1.000,34", locale: "de")
+{:ok, 1000.34}
 
-iex> Bonfire.Common.Localise.Cldr.Number.parse("-1_000_000.34")
-{:ok, -1000000.34}
+iex> Bonfire.Common.Localise.Cldr.Number.parse("-1_000_000.34")
+{:ok, -1000000.34}
 
-iex> Bonfire.Common.Localise.Cldr.Number.parse("1.000", locale: "de", number: :integer)
-{:ok, 1000}
+iex> Bonfire.Common.Localise.Cldr.Number.parse("1.000", locale: "de", number: :integer)
+{:ok, 1000}
 
-iex> Bonfire.Common.Localise.Cldr.Number.parse("+1.000,34", locale: "de", number: :integer)
-{:error,
-  {Cldr.Number.ParseError,
-   "The string \"+1.000,34\" could not be parsed as a number"}}
+
iex> Bonfire.Common.Localise.Cldr.Number.parse("+1.000,34", locale: "de", number: :integer) +{:error, + {Cldr.Number.ParseError, + "The string \"+1.000,34\" could not be parsed as a number"}}
@@ -498,17 +498,17 @@

resolve_currencies(list, options \\ [])

Examples -
iex> Bonfire.Common.Localise.Cldr.Number.scan("100 US dollars")
+
iex> Bonfire.Common.Localise.Cldr.Number.scan("100 US dollars")
 ...> |> Bonfire.Common.Localise.Cldr.Number.resolve_currencies
-[100, :USD]
+[100, :USD]
 
-iex> Bonfire.Common.Localise.Cldr.Number.scan("100 eurosports")
-...> |> Bonfire.Common.Localise.Cldr.Number.resolve_currencies(fuzzy: 0.75)
-[100, :EUR]
+iex> Bonfire.Common.Localise.Cldr.Number.scan("100 eurosports")
+...> |> Bonfire.Common.Localise.Cldr.Number.resolve_currencies(fuzzy: 0.75)
+[100, :EUR]
 
-iex> Bonfire.Common.Localise.Cldr.Number.scan("100 dollars des États-Unis")
-...> |> Bonfire.Common.Localise.Cldr.Number.resolve_currencies(locale: "fr")
-[100, :USD]
+
iex> Bonfire.Common.Localise.Cldr.Number.scan("100 dollars des États-Unis") +...> |> Bonfire.Common.Localise.Cldr.Number.resolve_currencies(locale: "fr") +[100, :USD]
@@ -585,19 +585,19 @@

resolve_currency(string, options \\ [])

Examples -
iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("US dollars")
-[:USD]
+
iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("US dollars")
+[:USD]
 
-iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("100 eurosports", fuzzy: 0.75)
-[:EUR]
+iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("100 eurosports", fuzzy: 0.75)
+[:EUR]
 
-iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("dollars des États-Unis", locale: "fr")
-[:USD]
+iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("dollars des États-Unis", locale: "fr")
+[:USD]
 
-iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("not a known currency", locale: "fr")
-{:error,
- {Cldr.UnknownCurrencyError,
-  "The currency \"not a known currency\" is unknown or not supported"}}
+
iex> Bonfire.Common.Localise.Cldr.Number.resolve_currency("not a known currency", locale: "fr") +{:error, + {Cldr.UnknownCurrencyError, + "The currency \"not a known currency\" is unknown or not supported"}}
@@ -661,13 +661,13 @@

resolve_per(string, options \\ [])

Examples
iex> Bonfire.Common.Localise.Cldr.Number.resolve_per "11%"
-["11", :percent]
+["11", :percent]
 
 iex> Bonfire.Common.Localise.Cldr.Number.resolve_per "% of linguists"
-[:percent, " of linguists"]
+[:percent, " of linguists"]
 
 iex> Bonfire.Common.Localise.Cldr.Number.resolve_per "% of linguists %"
-[:percent, " of linguists ", :percent]
+[:percent, " of linguists ", :percent]
@@ -724,9 +724,9 @@

resolve_pers(list, options \\ [])

Examples -
iex> Bonfire.Common.Localise.Cldr.Number.scan("100%")
-...> |> Bonfire.Common.Localise.Cldr.Number.resolve_pers()
-[100, :percent]
+
iex> Bonfire.Common.Localise.Cldr.Number.scan("100%")
+...> |> Bonfire.Common.Localise.Cldr.Number.resolve_pers()
+[100, :percent]
@@ -786,20 +786,20 @@

scan(string, options \\ [])

Examples -
iex> Bonfire.Common.Localise.Cldr.Number.scan("£1_000_000.34")
-["£", 1000000.34]
+
iex> Bonfire.Common.Localise.Cldr.Number.scan("£1_000_000.34")
+["£", 1000000.34]
 
-iex> Bonfire.Common.Localise.Cldr.Number.scan("I want £1_000_000 dollars")
-["I want £", 1000000, " dollars"]
+iex> Bonfire.Common.Localise.Cldr.Number.scan("I want £1_000_000 dollars")
+["I want £", 1000000, " dollars"]
 
-iex> Bonfire.Common.Localise.Cldr.Number.scan("The prize is 23")
-["The prize is ", 23]
+iex> Bonfire.Common.Localise.Cldr.Number.scan("The prize is 23")
+["The prize is ", 23]
 
-iex> Bonfire.Common.Localise.Cldr.Number.scan("The lottery number is 23 for the next draw")
-["The lottery number is ", 23, " for the next draw"]
+iex> Bonfire.Common.Localise.Cldr.Number.scan("The lottery number is 23 for the next draw")
+["The lottery number is ", 23, " for the next draw"]
 
-iex> Bonfire.Common.Localise.Cldr.Number.scan("The loss is -1.000 euros", locale: "de", number: :integer)
-["The loss is ", -1000, " euros"]
+
iex> Bonfire.Common.Localise.Cldr.Number.scan("The loss is -1.000 euros", locale: "de", number: :integer) +["The loss is ", -1000, " euros"]
@@ -846,7 +846,7 @@

to_approx_string(number, options \\ [])

iex> Bonfire.Common.Localise.Cldr.Number.to_approx_string 1234
-{:ok, "~1,234"}
+{:ok, "~1,234"}
@@ -893,7 +893,7 @@

to_at_least_string(number, options \\ [])
iex> Bonfire.Common.Localise.Cldr.Number.to_at_least_string 1234
-{:ok, "1,234+"}
+{:ok, "1,234+"}

@@ -940,7 +940,7 @@

to_at_most_string(number, options \\ [])
iex> Bonfire.Common.Localise.Cldr.Number.to_at_most_string 1234
-{:ok, "≤1,234"}
+{:ok, "≤1,234"}

@@ -987,7 +987,7 @@

to_range_string(range, options \\ [])

Example
iex> Bonfire.Common.Localise.Cldr.Number.to_range_string 1234..5678
-{:ok, "1,234–5,678"}
+{:ok, "1,234–5,678"}
@@ -1106,21 +1106,21 @@

to_string(number, options \\ default_option

Wrapping elements is particularly useful when formatting a number with a currency symbol and the requirement is to have different HTML formatting -applied to the symbol than the number. For example:

iex> Cldr.Number.to_string(100, format: :currency, currency: :USD, wrapper: fn
+applied to the symbol than the number.  For example:

iex> Cldr.Number.to_string(100, format: :currency, currency: :USD, wrapper: fn
 ...>   string, :currency_symbol -> "<span class=\"symbol\">" <> string <> "</span>"
 ...>   string, :number -> "<span class=\"number\">" <> string <> "</span>"
 ...>   string, :currency_space -> "<span>" <> string <> "</span>"
 ...>   string, _other -> string
-...> end)
-{:ok, "<span class=\"symbol\">$</span><span class=\"number\">100.00</span>"}

It is also possible and recommended to use the Phoenix.HTML.Tag.content_tag/3 +...> end) +{:ok, "<span class=\"symbol\">$</span><span class=\"number\">100.00</span>"}

It is also possible and recommended to use the Phoenix.HTML.Tag.content_tag/3 function if wrapping HTML tags since these will ensure HTML entities are -correctly encoded. For example:

iex> Cldr.Number.to_string(100, format: :currency, currency: :USD, wrapper: fn
-...>   string, :currency_symbol -> Phoenix.HTML.Tag.content_tag(:span, string, class: "symbol")
-...>   string, :number -> Phoenix.HTML.Tag.content_tag(:span, string, class: "number")
-...>   string, :currency_space -> Phoenix.HTML.Tag.content_tag(:span, string)
+correctly encoded.  For example:

iex> Cldr.Number.to_string(100, format: :currency, currency: :USD, wrapper: fn
+...>   string, :currency_symbol -> Phoenix.HTML.Tag.content_tag(:span, string, class: "symbol")
+...>   string, :number -> Phoenix.HTML.Tag.content_tag(:span, string, class: "number")
+...>   string, :currency_space -> Phoenix.HTML.Tag.content_tag(:span, string)
 ...>   string, _other -> string
-...> end)
-{:ok, "<span class=\"symbol\">$</span><span class=\"number\">100.00</span>"}

When formatting a number the format is parsed into format elements that might include +...> end) +{:ok, "<span class=\"symbol\">$</span><span class=\"number\">100.00</span>"}

When formatting a number the format is parsed into format elements that might include a currency symbol, a literal string, inserted text between a currency symbol and the currency amount, a percent sign, the number itself and several other elements. In some cases it is helpful to be apply specific formatting to each element. @@ -1141,80 +1141,80 @@

to_string(number, options \\ default_option Examples

iex> Bonfire.Common.Localise.Cldr.Number.to_string 12345
-{:ok, "12,345"}
+{:ok, "12,345"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 12345, locale: "fr"
-{:ok, "12 345"}
+{:ok, "12 345"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1345.32, currency: :EUR, locale: "es", minimum_grouping_digits: 1
-{:ok, "1.345,32 €"}
+{:ok, "1.345,32 €"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1345.32, currency: :EUR, locale: "es"
-{:ok, "1345,32 €"}
+{:ok, "1345,32 €"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 12345, locale: "fr", currency: "USD"
-{:ok, "12 345,00 $US"}
+{:ok, "12 345,00 $US"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 12345, format: "#E0"
-{:ok, "1.2345E4"}
+{:ok, "1.2345E4"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 12345, format: :accounting, currency: "THB"
-{:ok, "THB 12,345.00"}
+{:ok, "THB 12,345.00"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string -12345, format: :accounting, currency: "THB"
-{:ok, "(THB 12,345.00)"}
+{:ok, "(THB 12,345.00)"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 12345, format: :accounting, currency: "THB",
 ...> locale: "th"
-{:ok, "฿12,345.00"}
+{:ok, "฿12,345.00"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 12345, format: :accounting, currency: "THB",
 ...> locale: "th", number_system: :native
-{:ok, "฿๑๒,๓๔๕.๐๐"}
+{:ok, "฿๑๒,๓๔๕.๐๐"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1244.30, format: :long
-{:ok, "1 thousand"}
+{:ok, "1 thousand"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1244.30, format: :long, currency: "USD"
-{:ok, "1,244 US dollars"}
+{:ok, "1,244 US dollars"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1244.30, format: :short
-{:ok, "1K"}
+{:ok, "1K"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1244.30, format: :short, currency: "EUR"
-{:ok, "€1K"}
+{:ok, "€1K"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1234, format: :spellout
-{:ok, "one thousand two hundred thirty-four"}
+{:ok, "one thousand two hundred thirty-four"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1234, format: :spellout_verbose
-{:ok, "one thousand two hundred and thirty-four"}
+{:ok, "one thousand two hundred and thirty-four"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 1989, format: :spellout_year
-{:ok, "nineteen eighty-nine"}
+{:ok, "nineteen eighty-nine"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 123, format: :ordinal
-{:ok, "123rd"}
+{:ok, "123rd"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 123, format: :roman
-{:ok, "CXXIII"}
+{:ok, "CXXIII"}
 
 iex> Bonfire.Common.Localise.Cldr.Number.to_string 123, locale: "th-u-nu-thai"
-{:ok, "๑๒๓"}

+{:ok, "๑๒๓"}

errors

Errors

An error tuple {:error, reason} will be returned if an error is detected. -The two most likely causes of an error return are:

    iex> Bonfire.Common.Localise.Cldr.Number.to_string(12345, format: "0#")
-    {:error, {Cldr.FormatCompileError,
-      "Decimal format compiler: syntax error before: \"#\""}}
    iex> Bonfire.Common.Localise.Cldr.Number.to_string(1234, locale: "he", number_system: "hebr")
+    {:error, {Cldr.UnknownFormatError,
+      "The locale :he with number system :hebr does not define a format :standard"}}
@@ -1318,17 +1318,17 @@

validate_number_system(locale, number_syste Examples

iex> Bonfire.Common.Localise.Cldr.Number.validate_number_system "en", :latn
-{:ok, :latn}
+{:ok, :latn}
 
 iex> Bonfire.Common.Localise.Cldr.Number.validate_number_system "en", :default
-{:ok, :latn}
+{:ok, :latn}
 
 iex> Bonfire.Common.Localise.Cldr.Number.validate_number_system "en", :unknown
-{:error,
- {Cldr.UnknownNumberSystemError, "The number system :unknown is unknown"}}
+{:error,
+ {Cldr.UnknownNumberSystemError, "The number system :unknown is unknown"}}
 
 iex> Bonfire.Common.Localise.Cldr.Number.validate_number_system "zz", :default
-{:error, {Cldr.InvalidLanguageError, "The language \"zz\" is invalid"}}
+{:error, {Cldr.InvalidLanguageError, "The language \"zz\" is invalid"}}
diff --git a/Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.html b/Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.html index 5a289d60e4e..aac8c8ea896 100644 --- a/Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.html +++ b/Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.html @@ -116,9 +116,9 @@

Functions to implement the number system rule-based-number-format rules of CLDR.

These rules are defined only on the "und" locale and represent specialised number formatting.

The standard public API for RBNF is via the Cldr.Number.to_string/2 function.

The functions on this module are defined at compile time based upon the RBNF rules -defined in the Unicode CLDR data repository. Available rules are identified by:

iex> Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.rule_sets(:und)
-...> |> Enum.sort()
-[
+defined in the Unicode CLDR data repository.  Available rules are identified by:

iex> Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.rule_sets(:und)
+...> |> Enum.sort()
+[
   :armenian_lower,
   :armenian_upper,
   :cyrillic_lower,
@@ -132,9 +132,9 @@ 

:roman_upper, :tamil, :zz_default -]

A rule can then be invoked on an available rule_set. For example

iex> Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.roman_upper(123, :und)
-"CXXIII"

This particular call is equivalent to the call through the public API of:

iex> Bonfire.Common.Localise.Cldr.Number.to_string(123, format: :roman)
-{:ok, "CXXIII"}
+
]

A rule can then be invoked on an available rule_set. For example

iex> Bonfire.Common.Localise.Cldr.Rbnf.NumberSystem.roman_upper(123, :und)
+"CXXIII"

This particular call is equivalent to the call through the public API of:

iex> Bonfire.Common.Localise.Cldr.Number.to_string(123, format: :roman)
+{:ok, "CXXIII"}
diff --git a/Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.html b/Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.html index 7511953133b..3ef5012d4c4 100644 --- a/Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.html +++ b/Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.html @@ -116,20 +116,20 @@

Functions to implement the ordinal rule-based-number-format rules of CLDR.

As CLDR notes, the data is incomplete or non-existent for many languages. It is considered complete for English however.

The standard public API for RBNF is via the Cldr.Number.to_string/2 function.

The functions on this module are defined at compile time based upon the RBNF rules -defined in the Unicode CLDR data repository. Available rules are identified by:

iex> Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.rule_sets(:en)
-[:digits_ordinal]
+defined in the Unicode CLDR data repository.  Available rules are identified by:

iex> Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.rule_sets(:en)
+[:digits_ordinal]
 
-iex> Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.rule_sets("fr")
-...> |> Enum.sort()
-[
+iex> Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.rule_sets("fr")
+...> |> Enum.sort()
+[
   :digits_ordinal,
   :digits_ordinal_feminine,
   :digits_ordinal_feminine_plural,
   :digits_ordinal_masculine,
   :digits_ordinal_masculine_plural
-]

A rule can then be invoked on an available rule_set. For example

iex> Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.digits_ordinal(123, :en)
-"123rd"

This call is equivalent to the call through the public API of:

iex> Bonfire.Common.Localise.Cldr.Number.to_string(123, format: :ordinal)
-{:ok, "123rd"}
+
]

A rule can then be invoked on an available rule_set. For example

iex> Bonfire.Common.Localise.Cldr.Rbnf.Ordinal.digits_ordinal(123, :en)
+"123rd"

This call is equivalent to the call through the public API of:

iex> Bonfire.Common.Localise.Cldr.Number.to_string(123, format: :ordinal)
+{:ok, "123rd"}
diff --git a/Bonfire.Common.Localise.Cldr.Rbnf.Spellout.html b/Bonfire.Common.Localise.Cldr.Rbnf.Spellout.html index 1ec83710a77..4ecfdf4bb8f 100644 --- a/Bonfire.Common.Localise.Cldr.Rbnf.Spellout.html +++ b/Bonfire.Common.Localise.Cldr.Rbnf.Spellout.html @@ -116,9 +116,9 @@

Functions to implement the spellout rule-based-number-format rules of CLDR.

As CLDR notes, the data is incomplete or non-existent for many languages. It is considered complete for English however.

The standard public API for RBNF is via the Cldr.Number.to_string/2 function.

The functions on this module are defined at compile time based upon the RBNF rules -defined in the Unicode CLDR data repository. Available rules are identified by:

iex> Bonfire.Common.Localise.Cldr.Rbnf.Spellout.rule_sets("en")
-...> |> Enum.sort()
-[
+defined in the Unicode CLDR data repository.  Available rules are identified by:

iex> Bonfire.Common.Localise.Cldr.Rbnf.Spellout.rule_sets("en")
+...> |> Enum.sort()
+[
   :spellout_cardinal,
   :spellout_cardinal_verbose,
   :spellout_numbering,
@@ -126,9 +126,9 @@ 

:spellout_numbering_year, :spellout_ordinal, :spellout_ordinal_verbose -]

A rule can then be invoked on an available rule_set. For example:

iex> Bonfire.Common.Localise.Cldr.Rbnf.Spellout.spellout_ordinal(123, "en")
-"one hundred twenty-third"

This call is equivalent to the call through the public API of:

iex> Bonfire.Common.Localise.Cldr.Number.to_string(123, format: :spellout)
-{:ok, "one hundred twenty-three"}
+
]

A rule can then be invoked on an available rule_set. For example:

iex> Bonfire.Common.Localise.Cldr.Rbnf.Spellout.spellout_ordinal(123, "en")
+"one hundred twenty-third"

This call is equivalent to the call through the public API of:

iex> Bonfire.Common.Localise.Cldr.Number.to_string(123, format: :spellout)
+{:ok, "one hundred twenty-three"}
diff --git a/Bonfire.Common.Localise.Cldr.Time.Interval.html b/Bonfire.Common.Localise.Cldr.Time.Interval.html index 6ec9c47a670..0df8ed6db02 100644 --- a/Bonfire.Common.Localise.Cldr.Time.Interval.html +++ b/Bonfire.Common.Localise.Cldr.Time.Interval.html @@ -307,32 +307,32 @@

to_string(from, to, options \\ [])

Examples
iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~T[10:00:00], ~T[10:03:00], format: :short
-{:ok, "10 – 10 AM"}
+{:ok, "10 – 10 AM"}
 
 iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~T[10:00:00], ~T[10:03:00], format: :medium
-{:ok, "10:00 – 10:03 AM"}
+{:ok, "10:00 – 10:03 AM"}
 
 iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~T[10:00:00], ~T[10:03:00], format: :long
-{:ok, "10:00 – 10:03 AM"}
+{:ok, "10:00 – 10:03 AM"}
 
 iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~T[10:00:00], ~T[10:03:00],
 ...> format: :long, style: :flex
-{:ok, "10:00 – 10:03 in the morning"}
+{:ok, "10:00 – 10:03 in the morning"}
 
 iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~U[2020-01-01 00:00:00.0Z], ~U[2020-01-01 10:00:00.0Z],
 ...> format: :long, style: :flex
-{:ok, "12:00 – 10:00 in the morning"}
+{:ok, "12:00 – 10:00 in the morning"}
 
 iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~U[2020-01-01 00:00:00.0Z], ~U[2020-01-01 10:00:00.0Z],
 ...> format: :long, style: :zone
-{:ok, "12:00 – 10:00 AM Etc/UTC"}
+{:ok, "12:00 – 10:00 AM Etc/UTC"}
 
 iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~T[10:00:00], ~T[10:03:00],
 ...> format: :long, style: :flex, locale: "th"
-{:ok, "10:00 – 10:03 ในตอนเช้า"}
+{:ok, "10:00 – 10:03 ในตอนเช้า"}
 
 iex> Bonfire.Common.Localise.Cldr.Time.Interval.to_string ~T[10:00:00], nil
-{:ok, "10:00:00 AM –"}
+{:ok, "10:00:00 AM –"}
diff --git a/Bonfire.Common.Localise.Cldr.Time.html b/Bonfire.Common.Localise.Cldr.Time.html index 6a43f22d52e..1d82480caba 100644 --- a/Bonfire.Common.Localise.Cldr.Time.html +++ b/Bonfire.Common.Localise.Cldr.Time.html @@ -223,20 +223,20 @@

to_string(time, options \\ [])

Examples
iex> Cldr.Time.to_string ~T[07:35:13.215217]
-{:ok, "7:35:13 AM"}
+{:ok, "7:35:13 AM"}
 
 iex> Cldr.Time.to_string ~T[07:35:13.215217], format: :short
-{:ok, "7:35 AM"}
+{:ok, "7:35 AM"}
 
 iex> Cldr.Time.to_string ~T[07:35:13.215217], format: :medium, locale: "fr"
-{:ok, "07:35:13"}
+{:ok, "07:35:13"}
 
 iex> Cldr.Time.to_string ~T[07:35:13.215217], format: :medium
-{:ok, "7:35:13 AM"}
+{:ok, "7:35:13 AM"}
 
-iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC")
+iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC")
 iex> Cldr.Time.to_string datetime, format: :long
-{:ok, "11:59:59 PM UTC"}
+{:ok, "11:59:59 PM UTC"}
@@ -305,7 +305,7 @@

to_string!(time, options \\ [])

"7:35 AM" iex> Bonfire.Common.Localise.Cldr.Time.to_string ~T[07:35:13.215217], format: :short, period: :variant -{:ok, "7:35 AM"} +{:ok, "7:35 AM"} iex> Bonfire.Common.Localise.Cldr.Time.to_string! ~T[07:35:13.215217], format: :medium, locale: "fr" "07:35:13" @@ -313,7 +313,7 @@

to_string!(time, options \\ [])

iex> Bonfire.Common.Localise.Cldr.Time.to_string! ~T[07:35:13.215217], format: :medium "7:35:13 AM" -iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC") +iex> {:ok, datetime} = DateTime.from_naive(~N[2000-01-01 23:59:59.0], "Etc/UTC") iex> Bonfire.Common.Localise.Cldr.Time.to_string! datetime, format: :long "11:59:59 PM UTC"
diff --git a/Bonfire.Common.Localise.Cldr.html b/Bonfire.Common.Localise.Cldr.html index d8a0fe04f31..d66560ca012 100644 --- a/Bonfire.Common.Localise.Cldr.html +++ b/Bonfire.Common.Localise.Cldr.html @@ -520,24 +520,24 @@

default_locale()

Example -
iex> Bonfire.Common.Localise.Cldr.default_locale()
-%Cldr.LanguageTag{
+
iex> Bonfire.Common.Localise.Cldr.default_locale()
+%Cldr.LanguageTag{
   backend: Bonfire.Common.Localise.Cldr,
   canonical_locale_name: "en-001",
   cldr_locale_name: :"en-001",
-  language_subtags: [],
-  extensions: %{},
+  language_subtags: [],
+  extensions: %{},
   gettext_locale_name: "en",
   language: "en",
-  locale: %{},
-  private_use: [],
+  locale: %{},
+  private_use: [],
   rbnf_locale_name: :en,
   requested_locale_name: "en-001",
   script: :Latn,
   territory: :"001",
-  transform: %{},
-  language_variants: []
-}
+
transform: %{}, + language_variants: [] +}
@@ -572,7 +572,7 @@

default_territory()

Example -
iex> Bonfire.Common.Localise.Cldr.default_territory()
+
iex> Bonfire.Common.Localise.Cldr.default_territory()
 :"001"
@@ -635,13 +635,13 @@

ellipsis(string, options \\ [])

iex> Bonfire.Common.Localise.Cldr.ellipsis "And furthermore"
 "And furthermore…"
 
-iex> Bonfire.Common.Localise.Cldr.ellipsis ["And furthermore", "there is much to be done"], locale: :ja
+iex> Bonfire.Common.Localise.Cldr.ellipsis ["And furthermore", "there is much to be done"], locale: :ja
 "And furthermore…there is much to be done"
 
 iex> Bonfire.Common.Localise.Cldr.ellipsis "And furthermore", format: :word
 "And furthermore …"
 
-iex> Bonfire.Common.Localise.Cldr.ellipsis ["And furthermore", "there is much to be done"], locale: :ja, format: :word
+iex> Bonfire.Common.Localise.Cldr.ellipsis ["And furthermore", "there is much to be done"], locale: :ja, format: :word
 "And furthermore … there is much to be done"
@@ -677,23 +677,23 @@

get_locale()

Example -
iex> Bonfire.Common.Localise.Cldr.put_locale("pl")
+
iex> Bonfire.Common.Localise.Cldr.put_locale("pl")
 iex> Bonfire.Common.Localise.Cldr.get_locale
-%Cldr.LanguageTag{
+%Cldr.LanguageTag{
    backend: Elixir.Bonfire.Common.Localise.Cldr,
    canonical_locale_name: "pl",
    cldr_locale_name: :pl,
-   extensions: %{},
+   extensions: %{},
    language: "pl",
-   locale: %{},
-   private_use: [],
+   locale: %{},
+   private_use: [],
    rbnf_locale_name: :pl,
    territory: :PL,
    requested_locale_name: "pl",
    script: :Latn,
-   transform: %{},
-   language_variants: []
- }
+
transform: %{}, + language_variants: [] + }
@@ -826,10 +826,10 @@

known_gettext_locale_name?(locale_name)

Examples -
iex> Bonfire.Common.Localise.Cldr.known_gettext_locale_name?("en")
+
iex> Bonfire.Common.Localise.Cldr.known_gettext_locale_name?("en")
 true
 
-iex> Bonfire.Common.Localise.Cldr.known_gettext_locale_name?("!!")
+iex> Bonfire.Common.Localise.Cldr.known_gettext_locale_name?("!!")
 false
@@ -948,10 +948,10 @@

known_locale_name?(locale_name)

Examples -
iex> Bonfire.Common.Localise.Cldr.known_locale_name?(:en)
+
iex> Bonfire.Common.Localise.Cldr.known_locale_name?(:en)
 true
 
-iex> Bonfire.Common.Localise.Cldr.known_locale_name?(:"!!")
+iex> Bonfire.Common.Localise.Cldr.known_locale_name?(:"!!")
 false
@@ -1006,7 +1006,7 @@

known_number_system_types()

Example
iex> Bonfire.Common.Localise.Cldr.known_number_system_types
-[:default, :finance, :native, :traditional]
+
[:default, :finance, :native, :traditional]
@@ -1117,10 +1117,10 @@

known_rbnf_locale_name?(locale_name)

Examples -
iex> Bonfire.Common.Localise.Cldr.known_rbnf_locale_name?(:en)
+
iex> Bonfire.Common.Localise.Cldr.known_rbnf_locale_name?(:en)
 true
 
-iex> Bonfire.Common.Localise.Cldr.known_rbnf_locale_name?(:"!!")
+iex> Bonfire.Common.Localise.Cldr.known_rbnf_locale_name?(:"!!")
 false
@@ -1241,29 +1241,29 @@

put_locale(locale_name)

Examples -
iex> Bonfire.Common.Localise.Cldr.put_locale("en")
-{:ok,
- %Cldr.LanguageTag{
+
iex> Bonfire.Common.Localise.Cldr.put_locale("en")
+{:ok,
+ %Cldr.LanguageTag{
    backend: Bonfire.Common.Localise.Cldr,
    canonical_locale_name: "en",
    cldr_locale_name: :en,
-   language_subtags: [],
-   extensions: %{},
+   language_subtags: [],
+   extensions: %{},
    gettext_locale_name: "en",
    language: "en",
-   locale: %{},
-   private_use: [],
+   locale: %{},
+   private_use: [],
    rbnf_locale_name: :en,
    requested_locale_name: "en",
    script: :Latn,
    territory: :US,
-   transform: %{},
-   language_variants: []
- }}
+   transform: %{},
+   language_variants: []
+ }}
 
-iex> Bonfire.Common.Localise.Cldr.put_locale("invalid-locale!")
-{:error, {Cldr.LanguageTag.ParseError,
-  "Expected a BCP47 language tag. Could not parse the remaining \"!\" starting at position 15"}}
+
iex> Bonfire.Common.Localise.Cldr.put_locale("invalid-locale!") +{:error, {Cldr.LanguageTag.ParseError, + "Expected a BCP47 language tag. Could not parse the remaining \"!\" starting at position 15"}}
@@ -1446,47 +1446,47 @@

validate_locale(locale)

Examples -
iex> Bonfire.Common.Localise.Cldr.validate_locale(:en)
-{:ok,
-%Cldr.LanguageTag{
+
iex> Bonfire.Common.Localise.Cldr.validate_locale(:en)
+{:ok,
+%Cldr.LanguageTag{
   backend: Bonfire.Common.Localise.Cldr,
   canonical_locale_name: "en",
   cldr_locale_name: :en,
-  extensions: %{},
+  extensions: %{},
   gettext_locale_name: "en",
   language: "en",
-  locale: %{},
-  private_use: [],
+  locale: %{},
+  private_use: [],
   rbnf_locale_name: :en,
   requested_locale_name: "en",
   script: :Latn,
   territory: :US,
-  transform: %{},
-  language_variants: []
-}}
+  transform: %{},
+  language_variants: []
+}}
 
 
-iex> Bonfire.Common.Localise.Cldr.validate_locale Bonfire.Common.Localise.Cldr.default_locale()
-{:ok,
-%Cldr.LanguageTag{
+iex> Bonfire.Common.Localise.Cldr.validate_locale Bonfire.Common.Localise.Cldr.default_locale()
+{:ok,
+%Cldr.LanguageTag{
   backend: Bonfire.Common.Localise.Cldr,
   canonical_locale_name: "en-001",
   cldr_locale_name: :"en-001",
-  extensions: %{},
+  extensions: %{},
   gettext_locale_name: "en",
   language: "en",
-  locale: %{},
-  private_use: [],
+  locale: %{},
+  private_use: [],
   rbnf_locale_name: :en,
   requested_locale_name: "en-001",
   script: :Latn,
   territory: :"001",
-  transform: %{},
-  language_variants: []
-}}
+  transform: %{},
+  language_variants: []
+}}
 
-iex> Bonfire.Common.Localise.Cldr.validate_locale("zzz")
-{:error, {Cldr.InvalidLanguageError, "The language \"zzz\" is invalid"}}
+
iex> Bonfire.Common.Localise.Cldr.validate_locale("zzz") +{:error, {Cldr.InvalidLanguageError, "The language \"zzz\" is invalid"}}
@@ -1557,22 +1557,22 @@

validate_number_system_type(number_system_t Examples

iex> Bonfire.Common.Localise.Cldr.validate_number_system_type :default
-{:ok, :default}
+{:ok, :default}
 
 iex> Bonfire.Common.Localise.Cldr.validate_number_system_type :traditional
-{:ok, :traditional}
+{:ok, :traditional}
 
 iex> Bonfire.Common.Localise.Cldr.validate_number_system_type :latn
-{
+{
   :error,
-  {Cldr.UnknownNumberSystemTypeError, "The number system type :latn is unknown"}
-}
+  {Cldr.UnknownNumberSystemTypeError, "The number system type :latn is unknown"}
+}
 
 iex> Bonfire.Common.Localise.Cldr.validate_number_system_type "bork"
-{
+{
   :error,
-  {Cldr.UnknownNumberSystemTypeError, "The number system type \"bork\" is invalid"}
-}
+ {Cldr.UnknownNumberSystemTypeError, "The number system type \"bork\" is invalid"} +}
diff --git a/Bonfire.Common.Localise.Gettext.Helpers.html b/Bonfire.Common.Localise.Gettext.Helpers.html index 7b89a0a182d..07d96f23b09 100644 --- a/Bonfire.Common.Localise.Gettext.Helpers.html +++ b/Bonfire.Common.Localise.Gettext.Helpers.html @@ -120,9 +120,9 @@

# Simple translation usage: - <%= l("Hello") %> - <%= l("Hello %{name}", name: "Bookchin") %> - <%= l("Hi", [], "test context") %> + <%= l("Hello") %> + <%= l("Hello %{name}", name: "Bookchin") %> + <%= l("Hi", [], "test context") %> output: @@ -134,8 +134,8 @@

# Plural translation usage: - <%= lp("Hi friend", "Hi friends", 2) %> - <%= lp("Hiya %{user_or_users}", "Hiyas %{user_or_users}", 1, [user_or_users: "Bookchin"], "test context") %> + <%= lp("Hi friend", "Hi friends", 2) %> + <%= lp("Hiya %{user_or_users}", "Hiyas %{user_or_users}", 1, [user_or_users: "Bookchin"], "test context") %> output: Hi friends diff --git a/Bonfire.Common.Localise.Gettext.Plural.html b/Bonfire.Common.Localise.Gettext.Plural.html index 48df6a992bc..15520daeef5 100644 --- a/Bonfire.Common.Localise.Gettext.Plural.html +++ b/Bonfire.Common.Localise.Gettext.Plural.html @@ -200,10 +200,10 @@

nplurals(locale_name)

Examples

-
iex> Bonfire.Common.Localise.Gettext.Plural.nplurals("pl")
+
iex> Bonfire.Common.Localise.Gettext.Plural.nplurals("pl")
 4
 
-iex> Bonfire.Common.Localise.Gettext.Plural.nplurals("en")
+iex> Bonfire.Common.Localise.Gettext.Plural.nplurals("en")
 2

@@ -241,28 +241,28 @@

plural(locale, n)

Examples -
iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 1)
+
iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 1)
 0
 
-iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 2)
+iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 2)
 1
 
-iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 5)
+iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 5)
 2
 
-iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 112)
+iex> Bonfire.Common.Localise.Gettext.Plural.plural("pl", 112)
 2
 
-iex> Bonfire.Common.Localise.Gettext.Plural.plural("en", 1)
+iex> Bonfire.Common.Localise.Gettext.Plural.plural("en", 1)
 0
 
-iex> Bonfire.Common.Localise.Gettext.Plural.plural("en", 2)
+iex> Bonfire.Common.Localise.Gettext.Plural.plural("en", 2)
 1
 
-iex> Bonfire.Common.Localise.Gettext.Plural.plural("en", 112)
+iex> Bonfire.Common.Localise.Gettext.Plural.plural("en", 112)
 1
 
-iex> Bonfire.Common.Localise.Gettext.Plural.plural("en_GB", 112)
+iex> Bonfire.Common.Localise.Gettext.Plural.plural("en_GB", 112)
 1
diff --git a/Bonfire.Common.Test.Interactive.html b/Bonfire.Common.Test.Interactive.html index e9909c76ee1..7b2f49047ee 100644 --- a/Bonfire.Common.Test.Interactive.html +++ b/Bonfire.Common.Test.Interactive.html @@ -118,11 +118,11 @@

fcwatch | mix test --stale --listen-on-stdin to watch for code changes and run stale tests, but with more control and without the starting time penalty.

Note that watching requires fswatch on your system. -Eg on Mac run brew install fswatch.

To use it, in your project's .iex file add:

unless GenServer.whereis(Bonfire.Common.Test.Interactive) do
-  {:ok, pid} = Bonfire.Common.Test.Interactive.start_link()
+Eg on Mac run brew install fswatch.

To use it, in your project's .iex file add:

unless GenServer.whereis(Bonfire.Common.Test.Interactive) do
+  {:ok, pid} = Bonfire.Common.Test.Interactive.start_link()
   # Process will not exit when the iex goes out
-  Process.unlink(pid)
-end
+  Process.unlink(pid)
+end
 import Bonfire.Common.Test.Interactive.Helpers

Then to call iex and run tests just do:

MIX_ENV=test iex -S mix

The Bonfire.Common.Test.Interactive.Helpers allows to call f and s and a to run failed, stale and all tests respectively. You can call w to watch tests and uw to unwatch. diff --git a/Bonfire.Data.Assort.Ranked.html b/Bonfire.Data.Assort.Ranked.html index 5e6ddc17632..9c0ec3837ab 100644 --- a/Bonfire.Data.Assort.Ranked.html +++ b/Bonfire.Data.Assort.Ranked.html @@ -114,15 +114,15 @@

-

A reusable table to link child or related items and also rank sibling items.

Usage (for global ranking, otherwise you should specify scope):

{:ok, first} = Bonfire.Data.Assort.Ranked.changeset(%{item_id: "01FGTH48ZZD08ADBHQ260KYJHW"}) |> repo().insert
-second = Bonfire.Data.Assort.Ranked.changeset(%{item_id: "01FGTH0N3YPBS5MNNAEAEVV54J"}) |> repo().insert
+

A reusable table to link child or related items and also rank sibling items.

Usage (for global ranking, otherwise you should specify scope):

{:ok, first} = Bonfire.Data.Assort.Ranked.changeset(%{item_id: "01FGTH48ZZD08ADBHQ260KYJHW"}) |> repo().insert
+second = Bonfire.Data.Assort.Ranked.changeset(%{item_id: "01FGTH0N3YPBS5MNNAEAEVV54J"}) |> repo().insert
 
 import Ecto.Query
-Bonfire.Data.Assort.Ranked |> order_by(:rank) |> repo().all
+Bonfire.Data.Assort.Ranked |> order_by(:rank) |> repo().all
 
-first |> Bonfire.Data.Assort.Ranked.changeset(%{rank_set: :last}) |> repo().update
+first |> Bonfire.Data.Assort.Ranked.changeset(%{rank_set: :last}) |> repo().update
 
-Bonfire.Data.Assort.Ranked |> order_by(:rank) |> repo().all
+
Bonfire.Data.Assort.Ranked |> order_by(:rank) |> repo().all
diff --git a/Bonfire.Files.html b/Bonfire.Files.html index 55a9e54840d..5868b15bb3d 100644 --- a/Bonfire.Files.html +++ b/Bonfire.Files.html @@ -118,10 +118,10 @@

your own - a Bonfire.Files.Definition is an extension of Waffle.Definition, however the allowed_media_types/0 callback is added, forcing you to define what media types are accepted for these types of uploads. -(You can also return :all to accept everything).

To use the uploader:

iex> {:ok, media} = Bonfire.Files.upload(MyUploader, context, %{path: "./150.png"})
+(You can also return :all to accept everything).

To use the uploader:

iex> {:ok, media} = Bonfire.Files.upload(MyUploader, context, %{path: "./150.png"})
 iex> media.media_type
 "image/png"
-iex> Bonfire.Files.remote_url(MyUploader, media)
+iex> Bonfire.Files.remote_url(MyUploader, media)
 "/uploads/my/01F3AY6JV30G06BY4DR9BTW5EH"
diff --git a/Bonfire.Me.Accounts.SecondFactors.html b/Bonfire.Me.Accounts.SecondFactors.html index 8bf898b22bb..c88d519c691 100644 --- a/Bonfire.Me.Accounts.SecondFactors.html +++ b/Bonfire.Me.Accounts.SecondFactors.html @@ -280,8 +280,8 @@

changeset(totp \\ %AuthSecondFactor{}, attr Examples

-
iex> changeset(%AuthSecondFactor{secret: <<...>>}, code: "123456")
-%Ecto.Changeset{data: %AuthSecondFactor{}}
+
iex> changeset(%AuthSecondFactor{secret: <<...>>}, code: "123456")
+%Ecto.Changeset{data: %AuthSecondFactor{}}
diff --git a/EctoSparkles.SanitiseStrings.html b/EctoSparkles.SanitiseStrings.html index 49b50b908b4..f0e83988ab1 100644 --- a/EctoSparkles.SanitiseStrings.html +++ b/EctoSparkles.SanitiseStrings.html @@ -248,26 +248,26 @@

strip_all_tags(changeset, opts \\ [])

Examples

-
iex> attrs = %{string_field: "<script>Bad</script>"}
+
iex> attrs = %{string_field: "<script>Bad</script>"}
 iex> result_changeset =
 ...>   attrs
-...>   |> FakeEctoSchema.changeset()
-...>   |> EctoSparkles.SanitiseStrings.strip_all_tags()
+...>   |> FakeEctoSchema.changeset()
+...>   |> EctoSparkles.SanitiseStrings.strip_all_tags()
 iex> result_changeset.changes
-%{string_field: "Bad"}

Fields can be exempted from sanitization via the :except option.

iex> attrs = %{string_field: "<script>Bad</script>"}
+%{string_field: "Bad"}

Fields can be exempted from sanitization via the :except option.

iex> attrs = %{string_field: "<script>Bad</script>"}
 iex> result_changeset =
 ...>   attrs
-...>   |> FakeEctoSchema.changeset()
-...>   |> EctoSparkles.SanitiseStrings.strip_all_tags(except: [:string_field])
+...>   |> FakeEctoSchema.changeset()
+...>   |> EctoSparkles.SanitiseStrings.strip_all_tags(except: [:string_field])
 iex> result_changeset.changes
-%{string_field: "<script>Bad</script>"}

+%{string_field: "<script>Bad</script>"}

you-can-also-specify-a-specific-scrubber-by-passing-a-function-as-reference

You can also specify a specific scrubber (by passing a function as reference):

-

ies> attrs

...>   |> FakeEctoSchema.changeset()
-...>   |> EctoSparkles.SanitiseStrings.sanitise_strings(scrubber: HtmlSanitizeEx.Scrubber.html5/1)
+

ies> attrs

...>   |> FakeEctoSchema.changeset()
+...>   |> EctoSparkles.SanitiseStrings.sanitise_strings(scrubber: HtmlSanitizeEx.Scrubber.html5/1)
diff --git a/EctoSparkles.html b/EctoSparkles.html index 3fc40306dc4..bdf00abca19 100644 --- a/EctoSparkles.html +++ b/EctoSparkles.html @@ -114,14 +114,14 @@

-

query_filter brings convenience and shortens the boilterplate of ecto queries

Common filters available include:

  • preload - Preloads fields onto the query results
  • start_date - Query for items inserted after this date
  • end_date - Query for items inserted before this date
  • before - Get items with IDs before this value
  • after - Get items with IDs after this value
  • ids - Get items with a list of ids
  • first - Gets the first n items
  • last - Gets the last n items
  • limit - Gets the first n items
  • offset - Offsets limit by n items
  • search - Warning: This requires schemas using this to have a &by_search(query, val) function

You are also able to filter on any natural field of a model, as well as use

  • gte/gt
  • lte/lt
  • like/ilike
  • is_nil/not(is_nil)
query_filter(User, %{name: %{ilike: "steve"}})
-query_filter(User, %{name: %{ilike: "steve"}}, :last_name, :asc)
-query_filter(User, %{name: %{age: %{gte: 18, lte: 30}}})
-query_filter(User, %{name: %{is_banned: %{!=: nil}}})
-query_filter(User, %{name: %{is_banned: %{==: nil}}})
-
-my_query = query_filter(User, %{name: "Billy"})
-query_filter(my_query, %{last_name: "Joe"})
+

query_filter brings convenience and shortens the boilterplate of ecto queries

Common filters available include:

  • preload - Preloads fields onto the query results
  • start_date - Query for items inserted after this date
  • end_date - Query for items inserted before this date
  • before - Get items with IDs before this value
  • after - Get items with IDs after this value
  • ids - Get items with a list of ids
  • first - Gets the first n items
  • last - Gets the last n items
  • limit - Gets the first n items
  • offset - Offsets limit by n items
  • search - Warning: This requires schemas using this to have a &by_search(query, val) function

You are also able to filter on any natural field of a model, as well as use

  • gte/gt
  • lte/lt
  • like/ilike
  • is_nil/not(is_nil)
query_filter(User, %{name: %{ilike: "steve"}})
+query_filter(User, %{name: %{ilike: "steve"}}, :last_name, :asc)
+query_filter(User, %{name: %{age: %{gte: 18, lte: 30}}})
+query_filter(User, %{name: %{is_banned: %{!=: nil}}})
+query_filter(User, %{name: %{is_banned: %{==: nil}}})
+
+my_query = query_filter(User, %{name: "Billy"})
+query_filter(my_query, %{last_name: "Joe"})
@@ -220,11 +220,11 @@

join_preload(query, associations)

import Ecto.Query
 Invoice
-|> join(:left, [i], assoc(i, :customer), as: :customer)
-|> join(:left, [i, c], assoc(c, :account), as: :account)
-|> join(:left, [i], assoc(i, :lines), as: :lines)
-|> preload([lines: v, customers: c, account: a], lines: v, customer: {c, [a: account]})
-|> Repo.all()

+|> join(:left, [i], assoc(i, :customer), as: :customer) +|> join(:left, [i, c], assoc(c, :account), as: :account) +|> join(:left, [i], assoc(i, :lines), as: :lines) +|> preload([lines: v, customers: c, account: a], lines: v, customer: {c, [a: account]}) +|> Repo.all()

example-using-join_preload

@@ -232,9 +232,9 @@

join_preload(query, associations)

import EctoSparkles
 Invoice
-|> join_preload([:customer, :account])
-|> join_preload([:lines])
-|> Repo.all()
+|> join_preload([:customer, :account]) +|> join_preload([:lines]) +|> Repo.all()
@@ -260,13 +260,13 @@

proload(query, qual \\ :left, associations)
-

AKA join_preload++. It's more powerful, but it does it with more (and different!) syntax.

e.g.

proload(query, activity: [
+

AKA join_preload++. It's more powerful, but it does it with more (and different!) syntax.

e.g.

proload(query, activity: [
   :verb, :boost_count, :like_count, :replied,
   # relations under object will have their aliases prefixed with object_, i.e.
   # :object_message, :object_post, :object_post_content
   # the original names will still be used for the associations.
-  object: {"object_", [:message, :post, :post_content]}
-])
+
object: {"object_", [:message, :post, :post_content]} +])

diff --git a/Flexto.html b/Flexto.html index fc692b96276..7bcfa7be848 100644 --- a/Flexto.html +++ b/Flexto.html @@ -178,35 +178,35 @@

flex_schema(otp_app)

Adds additional associations dynamically from app config.

Reads config for the given OTP application, under the name of the current module. Each key maps to an Ecto.Schema function:

  • belongs_to
  • field
  • has_many
  • has_one
  • many_to_many

Each of these keys should map to a keyword list where the key is the -name of the field or association and the value is one of:

  • A type
  • A tuple of type and options (keyword list)

Example Schema:

defmodule My.Schema do
+name of the field or association and the value is one of:

  • A type
  • A tuple of type and options (keyword list)

Example Schema:

defmodule My.Schema do
   use Ecto.Schema
-  import Flexto, only: [flex_schema: 1]
+  import Flexto, only: [flex_schema: 1]
 
-  schema "my_table" do
+  schema "my_table" do
     field :name, :string # just normal schema things
-    flex_schema(:my_app) # boom! give me the stuff
-  end
-end

Example configuration:

config :my_app, My.Schema,
-  belongs_to: [
+    flex_schema(:my_app) # boom! give me the stuff
+  end
+end

Example configuration:

config :my_app, My.Schema,
+  belongs_to: [
     foo: Foo,                   # belongs_to :foo, Foo
-    bar: {Bar, type: :integer}, # belongs_to :bar, Bar, type: :integer
-  ],
-  field: [
+    bar: {Bar, type: :integer}, # belongs_to :bar, Bar, type: :integer
+  ],
+  field: [
     foo: :string,                # field :foo, :string
-    bar: {:integer, default: 4}, # field :foo, :integer, default: 4
-  ],
-  has_one: [
+    bar: {:integer, default: 4}, # field :foo, :integer, default: 4
+  ],
+  has_one: [
     foo: Foo,                             # has_one :foo, Foo
-    bar: {Bar, foreign_key: :the_bar_id}, # has_one :bar, Bar, foreign_key: :the_bar_id
-  ]
-  has_many: [
+    bar: {Bar, foreign_key: :the_bar_id}, # has_one :bar, Bar, foreign_key: :the_bar_id
+  ]
+  has_many: [
     foo: Foo,                             # has_many :foo, Foo
-    bar: {Bar, foreign_key: :the_bar_id}, # has_many :bar, Bar, foreign_key: :the_bar_id
-  ]
-  many_to_many: [
+    bar: {Bar, foreign_key: :the_bar_id}, # has_many :bar, Bar, foreign_key: :the_bar_id
+  ]
+  many_to_many: [
     foo: Foo,                         # many_to_many :foo, Foo
-    bar: {Bar, join_through: FooBar}, # many_to_many :bar, Bar, :join_through: FooBar
-  ]

This one won't work very well because we define foo and bar 5 + bar: {Bar, join_through: FooBar}, # many_to_many :bar, Bar, :join_through: FooBar + ]

This one won't work very well because we define foo and bar 5 times each, but I think you get the point.

Reading of configuration is done during compile time. The relations will be baked in during compilation, thus:

  • Do not expect this to work in runtime config.
  • You will need to rebuild all dependencies which use this macro when you change their configuration.
diff --git a/Mix.Tasks.Bonfire.Account.New.html b/Mix.Tasks.Bonfire.Account.New.html index 4e9be4877fb..ef5d4b4d5ff 100644 --- a/Mix.Tasks.Bonfire.Account.New.html +++ b/Mix.Tasks.Bonfire.Account.New.html @@ -120,7 +120,7 @@

Usage

-
mix bonfire.account.new [email@address]

You will be prompted for a password and an email if it was not provided.

+
mix bonfire.account.new [email@address]

You will be prompted for a password and an email if it was not provided.

diff --git a/Mix.Tasks.Bonfire.Localise.Extract.html b/Mix.Tasks.Bonfire.Localise.Extract.html index e7c9acea2e7..2126d89fead 100644 --- a/Mix.Tasks.Bonfire.Localise.Extract.html +++ b/Mix.Tasks.Bonfire.Localise.Extract.html @@ -114,7 +114,7 @@

-

Extracts translations by recompiling the Elixir source code.

mix gettext.extract [OPTIONS]

Translations are extracted into POT (Portable Object Template) files (with a +

Extracts translations by recompiling the Elixir source code.

mix gettext.extract [OPTIONS]

Translations are extracted into POT (Portable Object Template) files (with a .pot extension). The location of these files is determined by the :otp_app and :priv options given by Gettext modules when they call use Gettext. One POT file is generated for each translation domain.

It is possible to give the --merge option to perform merging diff --git a/Mix.Tasks.Bonfire.Secrets.html b/Mix.Tasks.Bonfire.Secrets.html index 34bd4f3c91d..70656376fc0 100644 --- a/Mix.Tasks.Bonfire.Secrets.html +++ b/Mix.Tasks.Bonfire.Secrets.html @@ -114,7 +114,7 @@

-

Generates secrets and prints to the terminal.

mix bonfire.secrets [length]

By default, it generates keys 64 characters long. +

Generates secrets and prints to the terminal.

mix bonfire.secrets [length]

By default, it generates keys 64 characters long. The minimum value for length is 32.

diff --git a/Paginator.html b/Paginator.html index fc50d2f43af..4c25b49f63a 100644 --- a/Paginator.html +++ b/Paginator.html @@ -121,10 +121,10 @@

Usage

-
defmodule MyApp.Repo do
+
defmodule MyApp.Repo do
   use Ecto.Repo, otp_app: :my_app
   use Paginator
-end

+end

options

@@ -137,29 +137,29 @@

Example

-
defmodule MyApp.Repo do
+
defmodule MyApp.Repo do
   use Ecto.Repo, otp_app: :my_app
   use Paginator,
     limit: 10,                           # sets the default limit to 10
     maximum_limit: 100,                  # sets the maximum limit to 100
     include_total_count: true,           # include total count by default
     total_count_primary_key_field: :uuid # sets the total_count_primary_key_field to uuid for calculate total_count
-end

Note that these values can be still be overriden when paginate/3 is called.

+end

Note that these values can be still be overriden when paginate/3 is called.

use-without-macros

Use without macros

If you wish to avoid use of macros or you wish to use a different name for -the pagination function you can define your own function like so:

defmodule MyApp.Repo do
+the pagination function you can define your own function like so:

defmodule MyApp.Repo do
   use Ecto.Repo, otp_app: :my_app
 
-  def my_paginate_function(queryable, opts \ [], repo_opts \ []) do
-    defaults = [limit: 10] # Default options of your choice here
-    opts = Keyword.merge(defaults, opts)
-    Paginator.paginate(queryable, opts, __MODULE__, repo_opts)
-  end
-end
+
def my_paginate_function(queryable, opts \ [], repo_opts \ []) do + defaults = [limit: 10] # Default options of your choice here + opts = Keyword.merge(defaults, opts) + Paginator.paginate(queryable, opts, __MODULE__, repo_opts) + end +end
@@ -297,36 +297,36 @@

paginate(queryable, opts, repo_opts)

Simple example -
query = from(p in Post, order_by: [asc: p.inserted_at, asc: p.id], select: p)
+
query = from(p in Post, order_by: [asc: p.inserted_at, asc: p.id], select: p)
 
-Repo.paginate(query, cursor_fields: [:inserted_at, :id], limit: 50)

+Repo.paginate(query, cursor_fields: [:inserted_at, :id], limit: 50)

example-with-using-custom-sort-directions-per-field

Example with using custom sort directions per field

-
query = from(p in Post, order_by: [asc: p.inserted_at, desc: p.id], select: p)
+
query = from(p in Post, order_by: [asc: p.inserted_at, desc: p.id], select: p)
 
-Repo.paginate(query, cursor_fields: [inserted_at: :asc, id: :desc], limit: 50)

+Repo.paginate(query, cursor_fields: [inserted_at: :asc, id: :desc], limit: 50)

example-with-sorting-on-columns-in-joined-tables

Example with sorting on columns in joined tables

-
from(
+
from(
   p in Post,
   as: :posts,
-  join: a in assoc(p, :author),
+  join: a in assoc(p, :author),
   as: :author,
-  preload: [author: a],
+  preload: [author: a],
   select: p,
-  order_by: [
-    {:asc, a.name},
-    {:asc, p.id}
-  ]
-)
+  order_by: [
+    {:asc, a.name},
+    {:asc, p.id}
+  ]
+)
 
-Repo.paginate(query, cursor_fields: [{{:author, :name}, :asc}, id: :asc], limit: 50)

When sorting on columns in joined tables it is necessary to use named bindings. In +Repo.paginate(query, cursor_fields: [{{:author, :name}, :asc}, id: :asc], limit: 50)

When sorting on columns in joined tables it is necessary to use named bindings. In this case we name it author. In the cursor_fields we refer to this named binding and its column name.

To build the cursor Paginator uses the returned Ecto.Schema. When using a joined column the returned Ecto.Schema won't have the value of the joined column @@ -341,32 +341,32 @@

paginate(queryable, opts, repo_opts)

Example -
from(
+
from(
   p in Post,
   as: :posts,
-  join: a in assoc(p, :author),
+  join: a in assoc(p, :author),
   as: :author,
-  join: c in assoc(a, :company),
+  join: c in assoc(a, :company),
   as: :company,
-  preload: [author: a],
+  preload: [author: a],
   select: p,
-  order_by: [
-    {:asc, a.name},
-    {:asc, p.id}
-  ]
-)
-
-Repo.paginate(query,
-  cursor_fields: [{{:company, :name}, :asc}, id: :asc],
-  fetch_cursor_value_fun: fn
-    post, {{:company, name}, _} ->
+  order_by: [
+    {:asc, a.name},
+    {:asc, p.id}
+  ]
+)
+
+Repo.paginate(query,
+  cursor_fields: [{{:company, :name}, :asc}, id: :asc],
+  fetch_cursor_value_fun: fn
+    post, {{:company, name}, _} ->
       post.author.company.name
 
     post, field ->
-      Paginator.default_fetch_cursor_value(post, field)
-  end,
+      Paginator.default_fetch_cursor_value(post, field)
+  end,
   limit: 50
-)
+
)
@@ -422,10 +422,10 @@

cursor_for_record(record, cursor_fields, fe Example

-
iex> Paginator.cursor_for_record(%Paginator.Customer{id: 1}, [:id])
+
iex> Paginator.cursor_for_record(%Paginator.Customer{id: 1}, [:id])
 "g3QAAAABZAACaWRhAQ=="
 
-iex> Paginator.cursor_for_record(%Paginator.Customer{id: 1, name: "Alice"}, [id: :asc, name: :desc])
+iex> Paginator.cursor_for_record(%Paginator.Customer{id: 1, name: "Alice"}, [id: :asc, name: :desc])
 "g3QAAAACZAACaWRhAWQABG5hbWVtAAAABUFsaWNl"
@@ -464,10 +464,10 @@

default_fetch_cursor_value(schema, field) Example

-
iex> Paginator.default_fetch_cursor_value(%Paginator.Customer{id: 1}, :id)
+
iex> Paginator.default_fetch_cursor_value(%Paginator.Customer{id: 1}, :id)
 1
 
-iex> Paginator.default_fetch_cursor_value(%Paginator.Customer{id: 1, address: %Paginator.Address{city: "London"}}, {:address, :city})
+iex> Paginator.default_fetch_cursor_value(%Paginator.Customer{id: 1, address: %Paginator.Address{city: "London"}}, {:address, :city})
 "London"
diff --git a/Pointers.Mixin.html b/Pointers.Mixin.html index 7bd27c88730..923b25b5c3a 100644 --- a/Pointers.Mixin.html +++ b/Pointers.Mixin.html @@ -128,16 +128,16 @@

Declaring a mixin table type

-
defmodule My.Mixin do
+
defmodule My.Mixin do
 
   use Pointers.Mixin,
     otp_app: :my_app,
     source: "postgres_table_name"
 
-  mixin_schema do
+  mixin_schema do
     field :is_awesome, :boolean
-  end
-end
+
end +end
diff --git a/Pointers.Pointable.html b/Pointers.Pointable.html index 9970c6b8a26..3a159df7eb0 100644 --- a/Pointers.Pointable.html +++ b/Pointers.Pointable.html @@ -125,9 +125,9 @@

source: "my_table", # default name of table in database table_id: "01EBTVSZJ6X02J01R1XWWPWGZW" # unique ULID to identify table -pointable_schema do +pointable_schema do # ... fields go here, if any -end

+end

overriding-with-configuration

diff --git a/Pointers.Virtual.html b/Pointers.Virtual.html index afc6e6c1465..7f840fa68e1 100644 --- a/Pointers.Virtual.html +++ b/Pointers.Virtual.html @@ -128,9 +128,9 @@

source: "my_table", # default name of view in database table_id: "01EBTVSZJ6X02J01R1XWWPWGZW" # valid ULID to identify virtual -virtual_schema do +virtual_schema do # ... `has_one`, `has_many`, or *virtual* fields ONLY go here. -end

+end

overriding-with-configuration

diff --git a/Voodoo.html b/Voodoo.html index 46e3415aa69..0a92352a159 100644 --- a/Voodoo.html +++ b/Voodoo.html @@ -185,14 +185,14 @@

def_reverse_router(name, opts)

Generates a reverse router function with the given name based upon a compiled(!) phoenix router module.

Must be used outside of the router module, or else the router won't -be compiled yet and we won't be able to look up the routes.

Generated function wraps the existing phoenix helpers.

defmodule MyAppWeb.Router do
+be compiled yet and we won't be able to look up the routes.

Generated function wraps the existing phoenix helpers.

defmodule MyAppWeb.Router do
   use MyAppWeb, :router
   # ...
-end
-defmodule MyAppWeb.Router.Reverse do
-  import Voodoo, only: [def_reverse_router: 2]
+end
+defmodule MyAppWeb.Router.Reverse do
+  import Voodoo, only: [def_reverse_router: 2]
   def_reverse_router :path, for: MyAppWeb.Router
-end
+
end
diff --git a/architecture.html b/architecture.html index e01ed568577..241b1d1b09a 100644 --- a/architecture.html +++ b/architecture.html @@ -141,9 +141,9 @@

Code Structure

-

The code is broadly composed namespaces such as these, many of which are packaged as "extensions" which live in separate git repositories, which are included in the app by way of mix dependencies:

  • Bonfire.* - Core application logic (very little code).
  • Bonfire.*.* - Bonfire extensions (eg Bonfire.Social.Posts) containing mostly context modules, APIs, and routes
  • Bonfire.Data.* - Extensions containing database schemas and migrations
  • Bonfire.UI.* - UI component extensions
  • Bonfire.*.*.LiveHandler - Backend logic to handle events in the frontend
  • Bonfire.Editor.* (pluggable text editors, eg. CKEditor for WYSIWYG markdown input)
  • Bonfire.GraphQL.* - Optional GraphQL API
  • Bonfire.Federate.* - Optional Federation hooks
  • ActivityPub - ActivityPub S2S models, logic and various helper modules
  • ActivityPub.Web - ActivityPub S2S REST endpoints, activity ingestion and push federation facilities
  • ValueFlows.* - economic extensions implementing the ValueFlows vocabulary

Contexts are were we put any core logic. A context often is circumscribed to providing logic for a particular object type (e. g. Bonfire.Social.Posts implements Bonfire.Data.Social.Post).

All Bonfire objects use an ULID as their primary key. We use the Pointers library (with extra logic in Bonfire.Common.Pointers) to reference any object by its primary key without knowing what type it is beforehand. This is very useful as it allows for example following or liking many different types of objects (as opposed to say only a user or a post) and this approach allows us to store the context of the like/follow by only storing its primary key (see Bonfire.Data.Social.Follow) for an example.

Context modules usually have one/2, many/2, and many_paginated/1 functions for fetching objects, which in turn call a query/2 function. These take a keyword list as filters (and an optional opts argument) allowing objects to be fetched by arbitrary criteria.

Examples:

Users.one(username: "bob") # Fetching by username
-Posts.many_paginated(by: "01E9TQP93S8XFSV2ZATX1FQ528") # List a page of posts by its author
-EconomicResources.many(deleted: true) # List any deleted resources

Context modules also have functions for creating, updating and deleting objects, as well as hooks for federating or indexing in the search engine.

Here is an incomplete sample of some of current extensions and modules:

Additional extensions, libraries, and modules

+

The code is broadly composed namespaces such as these, many of which are packaged as "extensions" which live in separate git repositories, which are included in the app by way of mix dependencies:

  • Bonfire.* - Core application logic (very little code).
  • Bonfire.*.* - Bonfire extensions (eg Bonfire.Social.Posts) containing mostly context modules, APIs, and routes
  • Bonfire.Data.* - Extensions containing database schemas and migrations
  • Bonfire.UI.* - UI component extensions
  • Bonfire.*.*.LiveHandler - Backend logic to handle events in the frontend
  • Bonfire.Editor.* (pluggable text editors, eg. CKEditor for WYSIWYG markdown input)
  • Bonfire.GraphQL.* - Optional GraphQL API
  • Bonfire.Federate.* - Optional Federation hooks
  • ActivityPub - ActivityPub S2S models, logic and various helper modules
  • ActivityPub.Web - ActivityPub S2S REST endpoints, activity ingestion and push federation facilities
  • ValueFlows.* - economic extensions implementing the ValueFlows vocabulary

Contexts are were we put any core logic. A context often is circumscribed to providing logic for a particular object type (e. g. Bonfire.Social.Posts implements Bonfire.Data.Social.Post).

All Bonfire objects use an ULID as their primary key. We use the Pointers library (with extra logic in Bonfire.Common.Pointers) to reference any object by its primary key without knowing what type it is beforehand. This is very useful as it allows for example following or liking many different types of objects (as opposed to say only a user or a post) and this approach allows us to store the context of the like/follow by only storing its primary key (see Bonfire.Data.Social.Follow) for an example.

Context modules usually have one/2, many/2, and many_paginated/1 functions for fetching objects, which in turn call a query/2 function. These take a keyword list as filters (and an optional opts argument) allowing objects to be fetched by arbitrary criteria.

Examples:

Users.one(username: "bob") # Fetching by username
+Posts.many_paginated(by: "01E9TQP93S8XFSV2ZATX1FQ528") # List a page of posts by its author
+EconomicResources.many(deleted: true) # List any deleted resources

Context modules also have functions for creating, updating and deleting objects, as well as hooks for federating or indexing in the search engine.

Here is an incomplete sample of some of current extensions and modules:

Additional extensions, libraries, and modules

general-structure

diff --git a/bonfire-flavoured-elixir.html b/bonfire-flavoured-elixir.html index 39aad7bb70f..4610b1c2487 100644 --- a/bonfire-flavoured-elixir.html +++ b/bonfire-flavoured-elixir.html @@ -118,33 +118,33 @@

Arrows

The Elixir |> ("pipe") operator is one of the things that seems to get people excited about elixir. Probably in part because you then don't have to keep coming up with function names. Unfortunately it's kind of limiting. -The moment you need to pipe a parameter into a position that isn't the first one, it breaks down and you have to drop out of the pipeline format or write a secondary function to handle it.

Not any more! By simply inserting ... where you would like the value to be inserted, Arrows will override where it is placed. This allows you to keep on piping while accommodating that function with the annoying argument order. Arrows was inspired by an existing library. Here is part of the test suite in lieu of examples:

defmodule ArrowsTest do
+The moment you need to pipe a parameter into a position that isn't the first one, it breaks down and you have to drop out of the pipeline format or write a secondary function to handle it.

Not any more! By simply inserting ... where you would like the value to be inserted, Arrows will override where it is placed. This allows you to keep on piping while accommodating that function with the annoying argument order. Arrows was inspired by an existing library. Here is part of the test suite in lieu of examples:

defmodule ArrowsTest do
   use ExUnit.Case
   use Arrows
 
-  def double(x), do: x * 2
-  def double_fst(x, _), do: x * 2
-  def double_snd(_, x), do: x * 2
-  def add_snd_thd(_, x, y), do: x + y
-
-  test "|>" do
-    assert 4 == (2 |> double)
-    assert 4 == (2 |> double())
-    assert 4 == (2 |> double(...))
-    assert 8 == (2 |> double(double(...)))
-    assert 4 == (2 |> double_fst(1))
-    assert 4 == (2 |> double_fst(..., 1))
-    assert 8 == (2 |> double_fst(double(...), 1))
-    assert 4 == (2 |> double_snd(1, ...))
-    assert 8 == (2 |> double_snd(1, double(...)))
-    assert 3 == (2 |> add_snd_thd(1, ..., 1))
-    assert 4 == (2 |> add_snd_thd(1, ..., ...))
-    assert 6 == (2 |> add_snd_thd(1, ..., double(...)))
-    for x <- [:yes, 2, nil, false] do
-      assert {:ok, x} == (x |> {:ok, ...})
-    end
-  end
-end

A few little extra features you might notice here:

  • You can move the parameter into a subexpression, as in 2 |> double_fst(double(...), 1) where double will be called before the parameter is passed to double_fst.
  • You can use ... multiple times, substituting it in multiple places.
  • The right hand side need not even be a function call, you can use any expression with ....

+ def double(x), do: x * 2 + def double_fst(x, _), do: x * 2 + def double_snd(_, x), do: x * 2 + def add_snd_thd(_, x, y), do: x + y + + test "|>" do + assert 4 == (2 |> double) + assert 4 == (2 |> double()) + assert 4 == (2 |> double(...)) + assert 8 == (2 |> double(double(...))) + assert 4 == (2 |> double_fst(1)) + assert 4 == (2 |> double_fst(..., 1)) + assert 8 == (2 |> double_fst(double(...), 1)) + assert 4 == (2 |> double_snd(1, ...)) + assert 8 == (2 |> double_snd(1, double(...))) + assert 3 == (2 |> add_snd_thd(1, ..., 1)) + assert 4 == (2 |> add_snd_thd(1, ..., ...)) + assert 6 == (2 |> add_snd_thd(1, ..., double(...))) + for x <- [:yes, 2, nil, false] do + assert {:ok, x} == (x |> {:ok, ...}) + end + end +end

A few little extra features you might notice here:

  • You can move the parameter into a subexpression, as in 2 |> double_fst(double(...), 1) where double will be called before the parameter is passed to double_fst.
  • You can use ... multiple times, substituting it in multiple places.
  • The right hand side need not even be a function call, you can use any expression with ....

ok-pipe

@@ -158,14 +158,14 @@

Untangle provides replacements for the macros in Elixir's Logger module and the IO.inspect function to output code location information. The first argument will be inspected and the second (where provided) will be used as a label:

iex(1)> import Untangle
 Untangle
-iex(2)> debug(:no, "the answer is") # log at debug
-11:19:09.915 [debug] [iex:2] the answer is: :no
+iex(2)> debug(:no, "the answer is") # log at debug
+11:19:09.915 [debug] [iex:2] the answer is: :no
 :no
-iex(3)> dump(%{a: :map}, "it") # inspect something on stdout
-[iex:3] it: %{a: :map}
-%{a: :map}

When used in a code file, the location information becomes slightly more useful, e.g.:

[lib/test_untangle.ex:15@Test.Untangle.example/2] Here's an empty list: []

You may also notice from the iex output that it returns its first argument. This makes it ideal for -inserting into a pipeline for debugging purposes:

do_something()
-|> debug("output of do_something/0")

When you are done debugging something, the location of the debug statement is already in the output so you know where to remove it or comment it out! Bliss!

You will find the codebase uses this a lot, though the debugs are frequently commented out. Just uncomment the ones that would help you with a particular debugging task and you're off.

+iex(3)> dump(%{a: :map}, "it") # inspect something on stdout +[iex:3] it: %{a: :map} +%{a: :map}

When used in a code file, the location information becomes slightly more useful, e.g.:

[lib/test_untangle.ex:15@Test.Untangle.example/2] Here's an empty list: []

You may also notice from the iex output that it returns its first argument. This makes it ideal for +inserting into a pipeline for debugging purposes:

do_something()
+|> debug("output of do_something/0")

When you are done debugging something, the location of the debug statement is already in the output so you know where to remove it or comment it out! Bliss!

You will find the codebase uses this a lot, though the debugs are frequently commented out. Just uncomment the ones that would help you with a particular debugging task and you're off.

error-handling

diff --git a/bonfire_umbrella.epub b/bonfire_umbrella.epub index 3369eb8a8ac733c290f831ef922de0431282b3c7..40686e5af077647e05b19ce03bd4bf1d1b2547db 100644 GIT binary patch delta 253032 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 delta 253034 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%0Df;BDSYG<9 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 z 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 S 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 diff --git a/database.html b/database.html index 4aeb36cdc8b..7e09e65f8b7 100644 --- a/database.html +++ b/database.html @@ -130,26 +130,26 @@

Mixins - storing data about objects

Mixins are tables which contain extra information on behalf of objects. Each object can choose to -record or not record information for each mixin. Sample mixins include:

  • user profile (containing a name, location and summary)
  • post content (containing the title, summary, and/or html body of a post or message)
  • created (containing the id of the object creator)

In this way, they are reusable across different object types. One mixin may (or may not) be used by any number of objects. This is mostly driven by the type of the object we are storing, but can also be driven by user input.

Mixins are just tables too! The only requirement is they have a ULID primary key which references Pointers.Pointer. The developer of the mixin is free to put whatever other fields they want in the table, so long as they have that primary-key-as-reference (which will be automatically added for you by the mixin_schema macro).

Here is a sample mixin definition for a user profile:

defmodule Bonfire.Data.Social.Profile do
+record or not record information for each mixin. Sample mixins include:

  • user profile (containing a name, location and summary)
  • post content (containing the title, summary, and/or html body of a post or message)
  • created (containing the id of the object creator)

In this way, they are reusable across different object types. One mixin may (or may not) be used by any number of objects. This is mostly driven by the type of the object we are storing, but can also be driven by user input.

Mixins are just tables too! The only requirement is they have a ULID primary key which references Pointers.Pointer. The developer of the mixin is free to put whatever other fields they want in the table, so long as they have that primary-key-as-reference (which will be automatically added for you by the mixin_schema macro).

Here is a sample mixin definition for a user profile:

defmodule Bonfire.Data.Social.Profile do
 
   use Pointers.Mixin,
     otp_app: :bonfire_data_social,
     source: "bonfire_data_social_profile"
 
-  mixin_schema do
+  mixin_schema do
     field :name, :string
     field :summary, :string
     field :website, :string
     field :location, :string
-  end
-end

Aside from useing Pointers.Mixin instead of Ecto.Schema and calling mixin_schema instead of + end +end

Aside from useing Pointers.Mixin instead of Ecto.Schema and calling mixin_schema instead of schema, pretty similar to a standard Ecto schema, right?

The arguments to use Pointers.Mixin are:

  • otp_app: the OTP app name to use when loading dynamic configuration, e.g. the current extension or app (required)
  • source: the underlying table name to use in the database

We will cover dynamic configuration later. For now, you can use the OTP app that includes the module.

multimixins

Multimixins

-

Multimixins are like mixins, except that where an object may have 0 or 1 of a particular mixins, an object may have any number of a particular multimixin.

For this to work, a multimixin must have a compound primary key which must contain an id column referencing Pointers.Pointer and at least one other field which will collectively be unique.

An example multimixin is used for publishing an item to feeds:

defmodule Bonfire.Data.Social.FeedPublish do
+

Multimixins are like mixins, except that where an object may have 0 or 1 of a particular mixins, an object may have any number of a particular multimixin.

For this to work, a multimixin must have a compound primary key which must contain an id column referencing Pointers.Pointer and at least one other field which will collectively be unique.

An example multimixin is used for publishing an item to feeds:

defmodule Bonfire.Data.Social.FeedPublish do
 
   use Pointers.Mixin,
     otp_app: :bonfire_data_social,
@@ -157,10 +157,10 @@ 

alias Pointers.Pointer - mixin_schema do + mixin_schema do belongs_to :feed, Pointer, primary_key: true - end -end

Notice that this looks very similar to defining a mixin. Indeed, the only difference is the primary_key: true in this line, which adds a second field to the compound primary key. + end +end

Notice that this looks very similar to defining a mixin. Indeed, the only difference is the primary_key: true in this line, which adds a second field to the compound primary key. This results in ecto recording a compound primary key of (id, feed_id) for the schema (the id is added for you as with regular mixins).

declaring-object-types

@@ -173,26 +173,26 @@

Picking a table id

-

The first step to declaring a type is picking a unique table ID in ULID format. You could just generate one at the terminal, but since these IDs are special, we tend to assign a synthetic ULID that are readable as words so they stand out in debug output.

For example, the ID for the Feed table is: 1TFEEDS0NTHES0V1S0FM0RTA1S, which can be read as "It feeds on the souls of mortals". Feel free to have a little fun coming up with them, it makes debug output a little more cheery! The rules are:

  • The alphabet is Crockford's Base32.
  • They must be 26 characters in length.
  • The first character must be a digit in the range 0-7.

To help you with this, the Pointers.ULID.synthesise!/1 method takes an alphanumeric binary and tries to return you it transliterated into a valid ULID. Example usage:

iex(1)> Pointers.ULID.synthesise!("itfeedsonthesouls")
+

The first step to declaring a type is picking a unique table ID in ULID format. You could just generate one at the terminal, but since these IDs are special, we tend to assign a synthetic ULID that are readable as words so they stand out in debug output.

For example, the ID for the Feed table is: 1TFEEDS0NTHES0V1S0FM0RTA1S, which can be read as "It feeds on the souls of mortals". Feel free to have a little fun coming up with them, it makes debug output a little more cheery! The rules are:

  • The alphabet is Crockford's Base32.
  • They must be 26 characters in length.
  • The first character must be a digit in the range 0-7.

To help you with this, the Pointers.ULID.synthesise!/1 method takes an alphanumeric binary and tries to return you it transliterated into a valid ULID. Example usage:

iex(1)> Pointers.ULID.synthesise!("itfeedsonthesouls")
 
-11:20:28.299 [error] Too short, need 9 chars.
+11:20:28.299 [error] Too short, need 9 chars.
 :ok
-iex(2)> Pointers.ULID.synthesise!("itfeedsonthesoulsofmortalsandothers")
+iex(2)> Pointers.ULID.synthesise!("itfeedsonthesoulsofmortalsandothers")
 
-11:20:31.819 [warn]  Too long, chopping off last 9 chars
+11:20:31.819 [warn]  Too long, chopping off last 9 chars
 "1TFEEDS0NTHES0V1S0FM0RTA1S"
-iex(3)> Pointers.ULID.synthesise!("itfeedsonthesoulsofmortals")
+iex(3)> Pointers.ULID.synthesise!("itfeedsonthesoulsofmortals")
 "1TFEEDS0NTHES0V1S0FM0RTA1S"
-iex(4)> Pointers.ULID.synthesise!("gtfeedsonthesoulsofmortals")
+iex(4)> Pointers.ULID.synthesise!("gtfeedsonthesoulsofmortals")
 
-11:21:03.268 [warn]  First character must be a digit in the range 0-7, replacing with 7
+11:21:03.268 [warn]  First character must be a digit in the range 0-7, replacing with 7
 "7TFEEDS0NTHES0V1S0FM0RTA1S"

virtuals

Virtuals

-

Virtuals are the simplest and most common type of object. Here's a definition of block:

defmodule Bonfire.Data.Social.Block do
+

Virtuals are the simplest and most common type of object. Here's a definition of block:

defmodule Bonfire.Data.Social.Block do
 
   use Pointers.Virtual,
     otp_app: :bonfire_data_social,
@@ -201,26 +201,26 @@ 

alias Bonfire.Data.Edges.Edge - virtual_schema do + virtual_schema do has_one :edge, Edge, foreign_key: :id - end -end

It should look quite similar to a mixin definition, except that we use Pointers.Virtual this time (passing an additional table_id argument) and we call the virtual_schema macro.

The primary limitation of a virtual is that you cannot put extra fields into one. This also means that belongs_to is not generally permitted because it results in adding a field. has_one and has_many work just fine as they do not cause the creation of fields in the schema.

This is not usually a problem, as extra fields can be put into mixins or multimixins as appropriate.

Under the hood, a virtual has a view (in this example, called bonfire_data_social_block). It looks like a table with just an id, but it's populated with all the ids of blocks that are not deleted. When the view is inserted into, a record is created in the pointers table for you transparently. When you delete from the view, the corresponding pointers entry is marked deleted for you.

+ end +end

It should look quite similar to a mixin definition, except that we use Pointers.Virtual this time (passing an additional table_id argument) and we call the virtual_schema macro.

The primary limitation of a virtual is that you cannot put extra fields into one. This also means that belongs_to is not generally permitted because it results in adding a field. has_one and has_many work just fine as they do not cause the creation of fields in the schema.

This is not usually a problem, as extra fields can be put into mixins or multimixins as appropriate.

Under the hood, a virtual has a view (in this example, called bonfire_data_social_block). It looks like a table with just an id, but it's populated with all the ids of blocks that are not deleted. When the view is inserted into, a record is created in the pointers table for you transparently. When you delete from the view, the corresponding pointers entry is marked deleted for you.

pointables

Pointables

-

The other, lesser used, type of object is called the Pointable. The major difference is that unlike the simple case of virtuals, pointables are not backed by views, but by tables.

When a record is inserted into a pointable table, a copy is made in the pointers table for you transparently. When you delete from the table, the the corresponding pointers entry is marked deleted for you. In these ways, they behave very much like virtuals. By having a table, however, we are free to add new fields.

Pointables pay for this flexibility by being slightly more expensive than virtuals:

  • Records must be inserted into/deleted from two tables (the pointable's table and the pointers table).
  • The pointable table needs its own primary key index.

Here is a definition of a pointable type (indicating an ActivityPub activity whose type we don't recognise, stored as a JSON blob):

defmodule Bonfire.Data.Social.APActivity do
+

The other, lesser used, type of object is called the Pointable. The major difference is that unlike the simple case of virtuals, pointables are not backed by views, but by tables.

When a record is inserted into a pointable table, a copy is made in the pointers table for you transparently. When you delete from the table, the the corresponding pointers entry is marked deleted for you. In these ways, they behave very much like virtuals. By having a table, however, we are free to add new fields.

Pointables pay for this flexibility by being slightly more expensive than virtuals:

  • Records must be inserted into/deleted from two tables (the pointable's table and the pointers table).
  • The pointable table needs its own primary key index.

Here is a definition of a pointable type (indicating an ActivityPub activity whose type we don't recognise, stored as a JSON blob):

defmodule Bonfire.Data.Social.APActivity do
 
   use Pointers.Pointable,
     otp_app: :bonfire_data_social,
     table_id: "30NF1REAPACTTAB1ENVMBER0NE",
     source: "bonfire_data_social_apactivity"
 
-  pointable_schema do
+  pointable_schema do
     field :json, :map
-  end
-end

The choice of using a pointable instead of a virtual combined with one or more mixins is ultimately up to you.

+ end +end

The choice of using a pointable instead of a virtual combined with one or more mixins is ultimately up to you.

writing-migrations

@@ -232,37 +232,37 @@

Virtuals

-

Most virtuals are incredibly simple to migrate for:

defmodule Bonfire.Data.Social.Post.Migration do
+

Most virtuals are incredibly simple to migrate for:

defmodule Bonfire.Data.Social.Post.Migration do
 
   import Pointers.Migration
   alias Bonfire.Data.Social.Post
 
-  def migrate_post(), do: migrate_virtual(Post)
+  def migrate_post(), do: migrate_virtual(Post)
 
-end

If you need to do more work, it can be a little trickier. Here's an example for block, which also creates a unique index on another table:

defmodule Bonfire.Data.Social.Block.Migration do
+end

If you need to do more work, it can be a little trickier. Here's an example for block, which also creates a unique index on another table:

defmodule Bonfire.Data.Social.Block.Migration do
 
   import Ecto.Migration
   import Pointers.Migration
   import Bonfire.Data.Edges.Edge.Migration
   alias Bonfire.Data.Social.Block
 
-  def migrate_block_view(), do: migrate_virtual(Block)
+  def migrate_block_view(), do: migrate_virtual(Block)
 
-  def migrate_block_unique_index(), do: migrate_type_unique_index(Block)
+  def migrate_block_unique_index(), do: migrate_type_unique_index(Block)
 
-  def migrate_block(dir \\ direction())
+  def migrate_block(dir \\ direction())
 
-  def migrate_block(:up) do
-    migrate_block_view()
-    migrate_block_unique_index()
-  end
+  def migrate_block(:up) do
+    migrate_block_view()
+    migrate_block_unique_index()
+  end
 
-  def migrate_block(:down) do
-    migrate_block_unique_index()
-    migrate_block_view()
-  end
+  def migrate_block(:down) do
+    migrate_block_unique_index()
+    migrate_block_view()
+  end
 
-end

Notice how we have to write our up and down versions separately to get the correct ordering of operations.

+end

Notice how we have to write our up and down versions separately to get the correct ordering of operations.

pointables-1

@@ -270,156 +270,156 @@

As of now, pointables are a little trickier to define flexibly than virtuals because we want to preserve the ability for the user to define extra fields in config. There are some questions about -how useful this is in practice, so we might go for a simpler option in future.

Example:

defmodule Bonfire.Data.Social.APActivity.Migration  do
+how useful this is in practice, so we might go for a simpler option in future.

Example:

defmodule Bonfire.Data.Social.APActivity.Migration  do
   @moduledoc false
   use Ecto.Migration
   import Pointers.Migration
   alias Bonfire.Data.Social.APActivity
 
-  defp make_apactivity_table(exprs) do
-    quote do
+  defp make_apactivity_table(exprs) do
+    quote do
       require Pointers.Migration
-      Pointers.Migration.create_pointable_table(Bonfire.Data.Social.APActivity) do
+      Pointers.Migration.create_pointable_table(Bonfire.Data.Social.APActivity) do
         Ecto.Migration.add :json, :jsonb
-        unquote_splicing(exprs)
-      end
-    end
-  end
-
-  defmacro create_apactivity_table, do: make_apactivity_table([])
-  defmacro create_apactivity_table([do: body]), do: make_apactivity_table(body)
-
-  def drop_apactivity_table(), do: drop_pointable_table(APActivity)
-
-  defp maa(:up), do: make_apactivity_table([])
-  defp maa(:down) do
-    quote do: Bonfire.Data.Social.APActivity.Migration.drop_apactivity_table()
-  end
-
-  defmacro migrate_apactivity() do
-    quote do
-      if Ecto.Migration.direction() == :up,
-        do: unquote(maa(:up)),
-        else: unquote(maa(:down))
-    end
-  end
-
-end

+ unquote_splicing(exprs) + end + end + end + + defmacro create_apactivity_table, do: make_apactivity_table([]) + defmacro create_apactivity_table([do: body]), do: make_apactivity_table(body) + + def drop_apactivity_table(), do: drop_pointable_table(APActivity) + + defp maa(:up), do: make_apactivity_table([]) + defp maa(:down) do + quote do: Bonfire.Data.Social.APActivity.Migration.drop_apactivity_table() + end + + defmacro migrate_apactivity() do + quote do + if Ecto.Migration.direction() == :up, + do: unquote(maa(:up)), + else: unquote(maa(:down)) + end + end + +end

mixins

Mixins

-

Mixins look much like pointables:

defmodule Bonfire.Data.Social.Profile.Migration do
+

Mixins look much like pointables:

defmodule Bonfire.Data.Social.Profile.Migration do
 
   import Pointers.Migration
   alias Bonfire.Data.Social.Profile
 
   # create_profile_table/{0,1}
 
-  defp make_profile_table(exprs) do
-    quote do
+  defp make_profile_table(exprs) do
+    quote do
       require Pointers.Migration
-      Pointers.Migration.create_mixin_table(Bonfire.Data.Social.Profile) do
+      Pointers.Migration.create_mixin_table(Bonfire.Data.Social.Profile) do
         Ecto.Migration.add :name, :text
         Ecto.Migration.add :summary, :text
         Ecto.Migration.add :website, :text
         Ecto.Migration.add :location, :text
-        Ecto.Migration.add :icon_id, strong_pointer(Bonfire.Files.Media)
-        Ecto.Migration.add :image_id, strong_pointer(Bonfire.Files.Media)
-        unquote_splicing(exprs)
-      end
-    end
-  end
+        Ecto.Migration.add :icon_id, strong_pointer(Bonfire.Files.Media)
+        Ecto.Migration.add :image_id, strong_pointer(Bonfire.Files.Media)
+        unquote_splicing(exprs)
+      end
+    end
+  end
 
-  defmacro create_profile_table(), do: make_profile_table([])
-  defmacro create_profile_table([do: {_, _, body}]), do: make_profile_table(body)
+  defmacro create_profile_table(), do: make_profile_table([])
+  defmacro create_profile_table([do: {_, _, body}]), do: make_profile_table(body)
 
   # drop_profile_table/0
 
-  def drop_profile_table(), do: drop_mixin_table(Profile)
+  def drop_profile_table(), do: drop_mixin_table(Profile)
 
   # migrate_profile/{0,1}
 
-  defp mp(:up), do: make_profile_table([])
+  defp mp(:up), do: make_profile_table([])
 
-  defp mp(:down) do
-    quote do
-      Bonfire.Data.Social.Profile.Migration.drop_profile_table()
-    end
-  end
+  defp mp(:down) do
+    quote do
+      Bonfire.Data.Social.Profile.Migration.drop_profile_table()
+    end
+  end
 
-  defmacro migrate_profile() do
-    quote do
-      if Ecto.Migration.direction() == :up,
-        do: unquote(mp(:up)),
-        else: unquote(mp(:down))
-    end
-  end
+  defmacro migrate_profile() do
+    quote do
+      if Ecto.Migration.direction() == :up,
+        do: unquote(mp(:up)),
+        else: unquote(mp(:down))
+    end
+  end
 
-end

+end

multimixins-1

Multimixins

-

Similar to mixins:

defmodule Bonfire.Data.Social.FeedPublish.Migration do
+

Similar to mixins:

defmodule Bonfire.Data.Social.FeedPublish.Migration do
 
   import Ecto.Migration
   import Pointers.Migration
   alias Bonfire.Data.Social.FeedPublish
 
-  @feed_publish_table FeedPublish.__schema__(:source)
+  @feed_publish_table FeedPublish.__schema__(:source)
 
   # create_feed_publish_table/{0,1}
 
-  defp make_feed_publish_table(exprs) do
-    quote do
+  defp make_feed_publish_table(exprs) do
+    quote do
       require Pointers.Migration
-      Pointers.Migration.create_mixin_table(Bonfire.Data.Social.FeedPublish) do
+      Pointers.Migration.create_mixin_table(Bonfire.Data.Social.FeedPublish) do
         Ecto.Migration.add :feed_id,
-          Pointers.Migration.strong_pointer(), primary_key: true
-        unquote_splicing(exprs)
-      end
-    end
-  end
-
-  defmacro create_feed_publish_table(), do: make_feed_publish_table([])
-  defmacro create_feed_publish_table([do: {_, _, body}]), do: make_feed_publish_table(body)
-
-  def drop_feed_publish_table(), do: drop_pointable_table(FeedPublish)
-
-  def migrate_feed_publish_feed_index(dir \\ direction(), opts \\ [])
-  def migrate_feed_publish_feed_index(:up, opts),
-    do: create_if_not_exists(index(@feed_publish_table, [:feed_id], opts))
-  def migrate_feed_publish_feed_index(:down, opts),
-    do: drop_if_exists(index(@feed_publish_table, [:feed_id], opts))
-
-  defp mf(:up) do
-    quote do
-      Bonfire.Data.Social.FeedPublish.Migration.create_feed_publish_table()
-      Bonfire.Data.Social.FeedPublish.Migration.migrate_feed_publish_feed_index()
-    end
-  end
-
-  defp mf(:down) do
-    quote do
-      Bonfire.Data.Social.FeedPublish.Migration.migrate_feed_publish_feed_index()
-      Bonfire.Data.Social.FeedPublish.Migration.drop_feed_publish_table()
-    end
-  end
-
-  defmacro migrate_feed_publish() do
-    quote do
-      if Ecto.Migration.direction() == :up,
-        do: unquote(mf(:up)),
-        else: unquote(mf(:down))
-    end
-  end
-
-  defmacro migrate_feed_publish(dir), do: mf(dir)
-
-end

+ Pointers.Migration.strong_pointer(), primary_key: true + unquote_splicing(exprs) + end + end + end + + defmacro create_feed_publish_table(), do: make_feed_publish_table([]) + defmacro create_feed_publish_table([do: {_, _, body}]), do: make_feed_publish_table(body) + + def drop_feed_publish_table(), do: drop_pointable_table(FeedPublish) + + def migrate_feed_publish_feed_index(dir \\ direction(), opts \\ []) + def migrate_feed_publish_feed_index(:up, opts), + do: create_if_not_exists(index(@feed_publish_table, [:feed_id], opts)) + def migrate_feed_publish_feed_index(:down, opts), + do: drop_if_exists(index(@feed_publish_table, [:feed_id], opts)) + + defp mf(:up) do + quote do + Bonfire.Data.Social.FeedPublish.Migration.create_feed_publish_table() + Bonfire.Data.Social.FeedPublish.Migration.migrate_feed_publish_feed_index() + end + end + + defp mf(:down) do + quote do + Bonfire.Data.Social.FeedPublish.Migration.migrate_feed_publish_feed_index() + Bonfire.Data.Social.FeedPublish.Migration.drop_feed_publish_table() + end + end + + defmacro migrate_feed_publish() do + quote do + if Ecto.Migration.direction() == :up, + do: unquote(mf(:up)), + else: unquote(mf(:down)) + end + end + + defmacro migrate_feed_publish(dir), do: mf(dir) + +end

more-examples

diff --git a/deploy.html b/deploy.html index 049b7d93756..c8cff28cb52 100644 --- a/deploy.html +++ b/deploy.html @@ -161,13 +161,13 @@

-

The app needs these environment variables to be configured in order to work.

  • FLAVOUR should reflect your chosen flavour
  • HOSTNAME (your domain name, eg: bonfire.example.com)
  • PUBLIC_PORT (usually 443)
  • MAIL_DOMAIN and MAIL_KEY and related keys to configure transactional email, for example set MAIL_BACKEND=mailgun and sign up at Mailgun and then configure the domain name and key (you may also need to set MAIL_BASE_URI if your domain is not setup in EU, as the default MAIL_BASE_URI is set as https://api.eu.mailgun.net/v3).
  • SMTP is supported as well, through the following env vars
    MAIL_SERVER (smtp domain of the mail server)
    -MAIL_DOMAIN (the bit after the @ in your email)
    +

    The app needs these environment variables to be configured in order to work.

    • FLAVOUR should reflect your chosen flavour
    • HOSTNAME (your domain name, eg: bonfire.example.com)
    • PUBLIC_PORT (usually 443)
    • MAIL_DOMAIN and MAIL_KEY and related keys to configure transactional email, for example set MAIL_BACKEND=mailgun and sign up at Mailgun and then configure the domain name and key (you may also need to set MAIL_BASE_URI if your domain is not setup in EU, as the default MAIL_BASE_URI is set as https://api.eu.mailgun.net/v3).
    • SMTP is supported as well, through the following env vars
      MAIL_SERVER (smtp domain of the mail server)
      +MAIL_DOMAIN (the bit after the @ in your email)
       MAIL_USER
       MAIL_PASSWORD
       MAIL_FROM
      -MAIL_PORT (optional)
      -MAIL_SSL (optional)
    • UPLOADS_S3_BUCKET and the related API key and secret for uploads. WARNING: If you want to store uploads in an object storage rather than directly on your server (which you probably want, to not run out of space), you need to configure that up front, otherwise URLs will break if you change it later. See config/runtime.exs for extra variables to set if you're not using the default service and region (which is Scaleway Paris).

    +MAIL_PORT (optional) +MAIL_SSL (optional)

  • UPLOADS_S3_BUCKET and the related API key and secret for uploads. WARNING: If you want to store uploads in an object storage rather than directly on your server (which you probably want, to not run out of space), you need to configure that up front, otherwise URLs will break if you change it later. See config/runtime.exs for extra variables to set if you're not using the default service and region (which is Scaleway Paris).

secret-keys-for-which-you-should-put-random-secrets

@@ -348,14 +348,14 @@

Dependencies

  • Postgres (or Postgis) version 12 or newer
  • < Troubleshooting

-

Some common issues that may arise during deployment and our suggestions for resolving them.

WebSocket connections not establishing behind a reverse proxy

If you are running Bonfire behind your own reverse proxy (e.g. nginx), you might experience issues with WebSocket connections not establishing. WebSocket connections require specific configuration to work, in nginx the following configuration is necessary for websockets to work:

location /live/websocket {
+

Some common issues that may arise during deployment and our suggestions for resolving them.

WebSocket connections not establishing behind a reverse proxy

If you are running Bonfire behind your own reverse proxy (e.g. nginx), you might experience issues with WebSocket connections not establishing. WebSocket connections require specific configuration to work, in nginx the following configuration is necessary for websockets to work:

location /live/websocket {
     proxy_pass http://127.0.0.1:4000;
     
     # these configurations are necessary to proxy WebSocket requests
     proxy_http_version 1.1;
     proxy_set_header Upgrade $http_upgrade;
     proxy_set_header Connection "upgrade";
-}
+
}
diff --git a/extension-activity_pub.html b/extension-activity_pub.html index 5ec7d10bd6d..67476a7b9cb 100644 --- a/extension-activity_pub.html +++ b/extension-activity_pub.html @@ -117,49 +117,49 @@

Installation

-
  1. Add this library to your dependencies in mix.exs
defp deps do
-  [...]
-  {:activity_pub, git: "https://github.com/bonfire-networks/activity_pub.git", branch: "stable"} # branch can "stable", or "develop" for the bleeding edge
-end
  1. Create an adapter module. To start, one created at -lib/my_app/adapter.ex might look like
defmodule MyApp.Adapter do
+
  1. Add this library to your dependencies in mix.exs
defp deps do
+  [...]
+  {:activity_pub, git: "https://github.com/bonfire-networks/activity_pub.git", branch: "stable"} # branch can "stable", or "develop" for the bleeding edge
+end
  1. Create an adapter module. To start, one created at +lib/my_app/adapter.ex might look like
defmodule MyApp.Adapter do
   @moduledoc """
   Adapter functions delegated from the `ActivityPub` Library
   """
 
   @behaviour ActivityPub.Federator.Adapter
-end

Note that, due to the defined @behavior, Elixir will warn you that +end

Note that, due to the defined @behavior, Elixir will warn you that the required functions

  • base_url/0
  • get_actor_by_id/1
  • get_actor_by_username/1
  • get_follower_local_ids/1
  • get_following_local_ids/1
  • get_redirect_url/1
  • handle_activity/1
  • maybe_create_remote_actor/1
  • maybe_publish_object/1
  • update_local_actor/2
  • update_remote_actor/1

have not yet been implemented though you will be able to start your app. Defining these allows ActivityPub to handle ActivityPub HTTP and database calls and operations. An example of an implemented adaptor can be found here.

Then set it in config

config :activity_pub, :adapter, MyApp.Adapter
  1. Set your application repo in config
config :activity_pub, :repo, MyApp.Repo
  1. Create a new ecto migration and call ActivityPub.Migration.up/0 from it

  2. Inject AP routes to your router by adding use ActivityPub.Web.Router to your app's router module

  3. Copy the default AP config to your app's confix.exs

config :activity_pub, :mrf_simple,
-  media_removal: [],
-  media_nsfw: [],
-  report_removal: [],
-  accept: [],
-  avatar_removal: [],
-  banner_removal: []
+  media_removal: [],
+  media_nsfw: [],
+  report_removal: [],
+  accept: [],
+  avatar_removal: [],
+  banner_removal: []
 
 config :activity_pub, :instance,
   hostname: "example.com",
-  federation_publisher_modules: [ActivityPub.Federator.APPublisher],
+  federation_publisher_modules: [ActivityPub.Federator.APPublisher],
   federation_reachability_timeout_days: 7,
   federating: true,
-  rewrite_policy: []
+  rewrite_policy: []
 
 config :activity_pub, :http,
   proxy_url: nil,
   user_agent: "Your app name",
   send_user_agent: true,
-  adapter: [
-    ssl_options: [
+  adapter: [
+    ssl_options: [
       # Workaround for remote server certificate chain issues
       partial_chain: &:hackney_connect.partial_chain/1,
       # We don't support TLS v1.3 yet
-      versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"]
-    ]
-  ]
  1. Change the hostname value in the instance config block to your instance's hostname

  2. If you don't already have Oban set up, follow the Oban installation intructions and add the AP queues:

config :my_app, Oban, queues: [federator_incoming: 50, federator_outgoing: 50, remote_fetcher: 20]

Now you should be able to compile and run your app and move over to integration.

+ versions: [:tlsv1, :"tlsv1.1", :"tlsv1.2"] + ] + ]
  1. Change the hostname value in the instance config block to your instance's hostname

  2. If you don't already have Oban set up, follow the Oban installation intructions and add the AP queues:

config :my_app, Oban, queues: [federator_incoming: 50, federator_outgoing: 50, remote_fetcher: 20]

Now you should be able to compile and run your app and move over to integration.

diff --git a/extension-arrows.html b/extension-arrows.html index 269c4cdab17..6d1a77795b3 100644 --- a/extension-arrows.html +++ b/extension-arrows.html @@ -117,48 +117,48 @@

Installation

-

The package can be installed by adding arrows to your list of dependencies in mix.exs: -->

def deps do
-  [
-    {:arrows, "~> 0.1.0"}
-  ]
-end

Or via git:

def deps do
-  [
-    {:arrows, git: "https://github.com/bonfire-networks/arrows", branch: "main"}
-  ]
-end

+

The package can be installed by adding arrows to your list of dependencies in mix.exs: -->

def deps do
+  [
+    {:arrows, "~> 0.1.0"}
+  ]
+end

Or via git:

def deps do
+  [
+    {:arrows, git: "https://github.com/bonfire-networks/arrows", branch: "main"}
+  ]
+end

documentation

Documentation

The Elixir |> ("pipe") operator is one of the things that seems to get people excited about elixir. Probably in part because you then don't have to keep coming up with function names. Unfortunately it's kind of limiting. -The moment you need to pipe a parameter into a position that isn't the first one, it breaks down and you have to drop out of the pipeline format or write a secondary function to handle it.

Not any more! By simply inserting ... where you would like the value to be inserted, Arrows will override where it is placed. This allows you to keep on piping while accommodating that function with the annoying argument order. Arrows was inspired by an existing library. Here is part of the test suite in lieu of examples:

defmodule ArrowsTest do
+The moment you need to pipe a parameter into a position that isn't the first one, it breaks down and you have to drop out of the pipeline format or write a secondary function to handle it.

Not any more! By simply inserting ... where you would like the value to be inserted, Arrows will override where it is placed. This allows you to keep on piping while accommodating that function with the annoying argument order. Arrows was inspired by an existing library. Here is part of the test suite in lieu of examples:

defmodule ArrowsTest do
   use ExUnit.Case
   use Arrows
 
-  def double(x), do: x * 2
-  def double_fst(x, _), do: x * 2
-  def double_snd(_, x), do: x * 2
-  def add_snd_thd(_, x, y), do: x + y
-
-  test "|>" do
-    assert 4 == (2 |> double)
-    assert 4 == (2 |> double())
-    assert 4 == (2 |> double(...))
-    assert 8 == (2 |> double(double(...)))
-    assert 4 == (2 |> double_fst(1))
-    assert 4 == (2 |> double_fst(..., 1))
-    assert 8 == (2 |> double_fst(double(...), 1))
-    assert 4 == (2 |> double_snd(1, ...))
-    assert 8 == (2 |> double_snd(1, double(...)))
-    assert 3 == (2 |> add_snd_thd(1, ..., 1))
-    assert 4 == (2 |> add_snd_thd(1, ..., ...))
-    assert 6 == (2 |> add_snd_thd(1, ..., double(...)))
-    for x <- [:yes, 2, nil, false] do
-      assert {:ok, x} == (x |> {:ok, ...})
-    end
-  end
-end

A few little extra features you might notice here:

  • You can move the parameter into a subexpression, as in 2 |> double_fst(double(...), 1) where + def double(x), do: x * 2 + def double_fst(x, _), do: x * 2 + def double_snd(_, x), do: x * 2 + def add_snd_thd(_, x, y), do: x + y + + test "|>" do + assert 4 == (2 |> double) + assert 4 == (2 |> double()) + assert 4 == (2 |> double(...)) + assert 8 == (2 |> double(double(...))) + assert 4 == (2 |> double_fst(1)) + assert 4 == (2 |> double_fst(..., 1)) + assert 8 == (2 |> double_fst(double(...), 1)) + assert 4 == (2 |> double_snd(1, ...)) + assert 8 == (2 |> double_snd(1, double(...))) + assert 3 == (2 |> add_snd_thd(1, ..., 1)) + assert 4 == (2 |> add_snd_thd(1, ..., ...)) + assert 6 == (2 |> add_snd_thd(1, ..., double(...))) + for x <- [:yes, 2, nil, false] do + assert {:ok, x} == (x |> {:ok, ...}) + end + end +end

A few little extra features you might notice here:

  • You can move the parameter into a subexpression, as in 2 |> double_fst(double(...), 1) where double will be called before the parameter is passed to double_fst.
  • You can use ... multiple times, substituting it in multiple places.
  • The right hand side need not even be a function call, you can use any expression with ....

ok-pipe

diff --git a/extension-bonfire_data_activity_pub.html b/extension-bonfire_data_activity_pub.html index 2a590d438ed..6ab479338c4 100644 --- a/extension-bonfire_data_activity_pub.html +++ b/extension-bonfire_data_activity_pub.html @@ -117,7 +117,7 @@

Copyright and License

-
Copyright (c) 2020 James Laver, bonfire_data_activity_pub Contributors
+
Copyright (c) 2020 James Laver, bonfire_data_activity_pub Contributors
 
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/extension-bonfire_data_assort.html b/extension-bonfire_data_assort.html
index 9c38187fb67..81f4496db27 100644
--- a/extension-bonfire_data_assort.html
+++ b/extension-bonfire_data_assort.html
@@ -117,7 +117,7 @@ 

Copyright and License

-
Copyright (c) 2020 Bonfire Contributors
+
Copyright (c) 2020 Bonfire Contributors
 
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/extension-bonfire_data_identity.html b/extension-bonfire_data_identity.html
index caa7b86f64c..cc1f1974a9f 100644
--- a/extension-bonfire_data_identity.html
+++ b/extension-bonfire_data_identity.html
@@ -117,7 +117,7 @@ 

Copyright and License

-
Copyright (c) 2020 James Laver, bonfire_data_identity Contributors
+
Copyright (c) 2020 James Laver, bonfire_data_identity Contributors
 
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/extension-bonfire_data_shared_user.html b/extension-bonfire_data_shared_user.html
index 25fb054cd75..190f19eb685 100644
--- a/extension-bonfire_data_shared_user.html
+++ b/extension-bonfire_data_shared_user.html
@@ -117,7 +117,7 @@ 
-
Copyright (c) 2020 Bonfire Contributors
+
Copyright (c) 2020 Bonfire Contributors
 
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/extension-bonfire_data_social.html b/extension-bonfire_data_social.html
index 0fc6dd20e8b..9472f218483 100644
--- a/extension-bonfire_data_social.html
+++ b/extension-bonfire_data_social.html
@@ -117,7 +117,7 @@ 

Copyright and License

-
Copyright (c) 2020 James Laver, bonfire_data_social Contributors
+
Copyright (c) 2020 James Laver, bonfire_data_social Contributors
 
 This Source Code Form is subject to the terms of the Mozilla Public
 License, v. 2.0. If a copy of the MPL was not distributed with this
diff --git a/extension-ecto_sparkles.html b/extension-ecto_sparkles.html
index c9e1836d333..8c84d20b5e1 100644
--- a/extension-ecto_sparkles.html
+++ b/extension-ecto_sparkles.html
@@ -124,22 +124,22 @@ 

Examples using just Ecto

  query
-  |> join(:left, [o, activity: activity], assoc(:object), as: :object)
-  |> preload([l, activity: activity, object: object], activity: {activity, [object: object]})

Ecto requires calling Query.join/4, Query.assoc/3 and Query.preload/2. Here's another example:

  Invoice
-  |> join(:left, [i], assoc(i, :customer), as: :customer)
-  |> join(:left, [i], assoc(i, :lines), as: :lines)
-  |> preload([lines: v, customers: c], lines: v, customer: c)
-  |> Repo.all()

+ |> join(:left, [o, activity: activity], assoc(:object), as: :object) + |> preload([l, activity: activity, object: object], activity: {activity, [object: object]})

Ecto requires calling Query.join/4, Query.assoc/3 and Query.preload/2. Here's another example:

  Invoice
+  |> join(:left, [i], assoc(i, :customer), as: :customer)
+  |> join(:left, [i], assoc(i, :lines), as: :lines)
+  |> preload([lines: v, customers: c], lines: v, customer: c)
+  |> Repo.all()

example-using-join_preload

Example using join_preload

With join_preload, you can accomplish this with just one line of code.

  query
-  |> join_preload([:activity, :object])
  Invoice
-  |> join_preload(:customer)
-  |> join_preload(:lines)
-  |> Repo.all()

As a bonus, join_preload automatically makes use of reusable_join + |> join_preload([:activity, :object])

  Invoice
+  |> join_preload(:customer)
+  |> join_preload(:lines)
+  |> Repo.all()

As a bonus, join_preload automatically makes use of reusable_join so calling it multiple times for the same association has no ill effects.

reusable_join-documentation

@@ -161,8 +161,8 @@

Creating reusable joins

query
-|> reusable_join(:left, [t1], t2 in "other_table", on: t1.id == t2.id, as: :other_a)
-|> reusable_join(:left, [t1], t2 in "other_table", on: t1.id == t2.id, as: :other_b)

Usage

-

Example Schema:

defmodule My.Schema do
+

Example Schema:

defmodule My.Schema do
   use Ecto.Schema
-  import Flexto, only: [flex_schema: 1]
+  import Flexto, only: [flex_schema: 1]
 
-  schema "my_table" do
+  schema "my_table" do
     field :name, :string # just normal schema things
-    flex_schema(:my_app) # boom! give me the stuff
-  end
-end

Example configuration

config :my_app, My.Schema,
-  belongs_to: [
+    flex_schema(:my_app) # boom! give me the stuff
+  end
+end

Example configuration

config :my_app, My.Schema,
+  belongs_to: [
     foo: Foo,                   # belongs_to :foo, Foo
-    bar: {Bar, type: :integer}, # belongs_to :bar, Bar, type: :integer
-  ],
-  field: [
+    bar: {Bar, type: :integer}, # belongs_to :bar, Bar, type: :integer
+  ],
+  field: [
     foo: :string,                # field :foo, :string
-    bar: {:integer, default: 4}, # field :foo, :integer, default: 4
-  ],
-  has_one: [
+    bar: {:integer, default: 4}, # field :foo, :integer, default: 4
+  ],
+  has_one: [
     foo: Foo,                             # has_one :foo, Foo
-    bar: {Bar, foreign_key: :the_bar_id}, # has_one :bar, Bar, foreign_key: :the_bar_id
-  ]
-  has_many: [
+    bar: {Bar, foreign_key: :the_bar_id}, # has_one :bar, Bar, foreign_key: :the_bar_id
+  ]
+  has_many: [
     foo: Foo,                             # has_many :foo, Foo
-    bar: {Bar, foreign_key: :the_bar_id}, # has_many :bar, Bar, foreign_key: :the_bar_id
-  ]
-  many_to_many: [
+    bar: {Bar, foreign_key: :the_bar_id}, # has_many :bar, Bar, foreign_key: :the_bar_id
+  ]
+  many_to_many: [
     foo: Foo,                         # many_to_many :foo, Foo
-    bar: {Bar, join_through: FooBar}, # many_to_many :bar, Bar, :join_through: FooBar
-  ]

This one won't work very well because we define foo and bar 5 + bar: {Bar, join_through: FooBar}, # many_to_many :bar, Bar, :join_through: FooBar + ]

This one won't work very well because we define foo and bar 5 times each, but I think you get the point.

Reading of configuration is done during compile time. The relations will be baked in during compilation, thus:

  • Do not expect this to work in runtime config.
  • You will need to rebuild all dependencies which use this macro when you change their configuration.

Usage

-

Add to your deps:

{:grumble, "~> 0.1.0"}

Simple example:

import Grumble
+

Add to your deps:

{:grumble, "~> 0.1.0"}

Simple example:

import Grumble
 alias Grumble.PP
 
-IO.puts(PP.to_string(
-  query(
-    params: [community_id: type!(:string)],
-    fields: [
-      field(
+IO.puts(PP.to_string(
+  query(
+    params: [community_id: type!(:string)],
+    fields: [
+      field(
         :community,
-        args: [community_id: var(:community_id)],
-        fields: [:id, :name]
-      )
-    ]
-  )
-))

Output:

query($communityId: String!) {
-  community(communityId: $communityId) {
+        args: [community_id: var(:community_id)],
+        fields: [:id, :name]
+      )
+    ]
+  )
+))

Output:

query($communityId: String!) {
+  community(communityId: $communityId) {
     name
     id
-  }
-}

+ } +}

guide

diff --git a/extension-paginator.html b/extension-paginator.html index c561abc88d6..233b9ac416c 100644 --- a/extension-paginator.html +++ b/extension-paginator.html @@ -148,17 +148,17 @@

Getting started

-
defmodule MyApp.Repo do
+
defmodule MyApp.Repo do
   use Ecto.Repo,
     otp_app: :my_app,
     adapter: Ecto.Adapters.Postgres
 
   use Paginator
-end
+end
 
-query = from(p in Post, order_by: [asc: p.inserted_at, asc: p.id])
+query = from(p in Post, order_by: [asc: p.inserted_at, asc: p.id])
 
-page = MyApp.Repo.paginate(query, cursor_fields: [:inserted_at, :id], limit: 50)
+page = MyApp.Repo.paginate(query, cursor_fields: [:inserted_at, :id], limit: 50)
 
 # `page.edges` contains all the entries for this page.
 # `page.page_info` contains the meta-data associated with this page (cursors, limit, total count)

@@ -167,42 +167,42 @@

Install

-

Add paginator to your list of dependencies in mix.exs:

def deps do
-  [{:paginator, "~> 1.0.4"}]
-end

+

Add paginator to your list of dependencies in mix.exs:

def deps do
+  [{:paginator, "~> 1.0.4"}]
+end

usage

Usage

-
  1. Add Paginator to your repo.

     defmodule MyApp.Repo do
    +
    1. Add Paginator to your repo.

       defmodule MyApp.Repo do
          use Ecto.Repo,
            otp_app: :my_app,
            adapter: Ecto.Adapters.Postgres
       
          use Paginator
      - end
    2. Use the paginate function to paginate your queries.

       query = from(p in Post, order_by: [asc: p.inserted_at, asc: p.id])
      + end
    3. Use the paginate function to paginate your queries.

       query = from(p in Post, order_by: [asc: p.inserted_at, asc: p.id])
       
        # return the first 50 posts
      - %{edges: edges, page_info: page_info} = Repo.paginate(query, cursor_fields: [:inserted_at, :id], limit: 50)
      + %{edges: edges, page_info: page_info} = Repo.paginate(query, cursor_fields: [:inserted_at, :id], limit: 50)
       
        # assign the `after` cursor to a variable
        cursor_after = page_info.end_cursor
       
        # return the next 50 posts
      - %{edges: edges, page_info: page_info} = Repo.paginate(query, after: cursor_after, cursor_fields: [{:inserted_at, :asc}, {:id, :asc}], limit: 50)
      + %{edges: edges, page_info: page_info} = Repo.paginate(query, after: cursor_after, cursor_fields: [{:inserted_at, :asc}, {:id, :asc}], limit: 50)
       
        # assign the `before` cursor to a variable
        cursor_before = page_info.start_cursor
       
        # return the previous 50 posts (if no post was created in between it should be the same list as in our first call to `paginate`)
      - %{edges: edges, page_info: page_info} = Repo.paginate(query, before: cursor_before, cursor_fields: [:inserted_at, :id], limit: 50)
      + %{edges: edges, page_info: page_info} = Repo.paginate(query, before: cursor_before, cursor_fields: [:inserted_at, :id], limit: 50)
       
        # return total count
        # NOTE: this will issue a separate `SELECT COUNT(*) FROM table` query to the database.
      - %{edges: edges, page_info: page_info} = Repo.paginate(query, include_total_count: true, cursor_fields: [:inserted_at, :id], limit: 50)
      + %{edges: edges, page_info: page_info} = Repo.paginate(query, include_total_count: true, cursor_fields: [:inserted_at, :id], limit: 50)
       
      - IO.puts "total count: #{page_info.total_count}"

    + IO.puts "total count: #{page_info.total_count}"

security-considerations

@@ -225,7 +225,7 @@

# If your cursor fields are: [:inserted_at, :id]
 # Add the following in a migration
 
-create index("posts", [:inserted_at, :id])

+create index("posts", [:inserted_at, :id])

caveats

diff --git a/extension-pointers.html b/extension-pointers.html index b8da38485b2..610d58c19cc 100644 --- a/extension-pointers.html +++ b/extension-pointers.html @@ -136,19 +136,19 @@

Aside from the hex dependency, you will also need to write a simple migration to set up the database before you can start writing your -regular migrations:

defmodule MyApp.Repo.Migrations.InitPointers  do
+regular migrations:

defmodule MyApp.Repo.Migrations.InitPointers  do
   @moduledoc false
   use Ecto.Migration
   import Pointers.Migration
 
-  def up(), do: inits(:up)
-  def down(), do: inits(:down)
+  def up(), do: inits(:up)
+  def down(), do: inits(:down)
 
-  defp inits(dir) do
-    init_pointers_ulid_extra(dir) # this one is optional but recommended
-    init_pointers(dir) # this one is not optional
-  end
-end

+ defp inits(dir) do + init_pointers_ulid_extra(dir) # this one is optional but recommended + init_pointers(dir) # this one is not optional + end +end

defining-a-pointable-type

@@ -159,37 +159,37 @@

Crockford's Base32. They should be easy to identify in a printout and might be silly.

There is a helper function, synthesise!/1 in Pointers.ULID to assist with this process - give it a 26-character long binary of ascii -alphanumerics and it will give you the closest ULID that matches back.

Let's look at a simple schema:

defmodule MyApp.Greeting do
+alphanumerics and it will give you the closest ULID that matches back.

Let's look at a simple schema:

defmodule MyApp.Greeting do
   use Pointers.Pointable,
     otp_app: :my_app,
     source: "myapp_greeting",
     table_id: "GREET1NGSFR0MD0CEXAMP1E000"
 
-  pointable_schema do
+  pointable_schema do
     field :greeting, :string
-  end
-end

To declare a pointable schema, we start by using Pointers.Pointable, + end +end

To declare a pointable schema, we start by using Pointers.Pointable, providing the name of our otp application, the source table's name in the database and our chosen sentinel ULID.

We then call pointable_schema and define any fields we wish to put directly in the table. For the most part, pointable_schema is like Ecto's schema macro, except you do not provide the table name and let it handle the primary key.

If for some reason you wished to turn autogeneration off, you could pass autogenerate: false to the options provided when using -Pointers.Pointable.

Now let's define the migration for our schema:

defmodule MyApp.Repo.Migrations.Greeting  do
+Pointers.Pointable.

Now let's define the migration for our schema:

defmodule MyApp.Repo.Migrations.Greeting  do
   @moduledoc false
   use Ecto.Migration
   import Pointers.Migration
 
-  def up() do
-    create_pointable_table(:greeting, "GREET1NGSFR0MD0CEXAMP1E000") do
+  def up() do
+    create_pointable_table(:greeting, "GREET1NGSFR0MD0CEXAMP1E000") do
       add :greeting, :text, null: false
-    end
-  end
+    end
+  end
 
-  def down() do
-    drop_pointable_table(:greeting, "GREET1NGSFR0MD0CEXAMP1E000")
-  end
-end

As you can see, it's pretty similar to defining a regular migration, + def down() do + drop_pointable_table(:greeting, "GREET1NGSFR0MD0CEXAMP1E000") + end +end

As you can see, it's pretty similar to defining a regular migration, except you use create_pointable_table and drop_pointable_table. Notice that our sentinel ULID makes an appearance again here. It's very important that these match what we @@ -202,16 +202,16 @@

Ecto does not know anything about our scheme, so unless we specifically want something to reference one of the pointed tables, we typically belongs_to with Pointers.Pointer. The table in which we -do this does not itself need to be pointable.

defmodule MyApp.Foo do
+do this does not itself need to be pointable.

defmodule MyApp.Foo do
 
   use Ecto.Schema
   alias Pointers.Pointer
 
   # regular ecto table, not pointable!
-  schema "hello" do
+  schema "hello" do
     belongs_to :pointer, Pointer # who knows what it points to?
-  end
-end

You may choose to reference a specific schema rather than Pointer if it + end +end

You may choose to reference a specific schema rather than Pointer if it will only point to a single table. If you do this, you must ensure that the referenced record exists in that table in the normal way. There may be some performance benefit, we didn't benchmark it.

The migration is slightly more complex, we have to decide what type of @@ -219,18 +219,18 @@

points to is deleted.
  • A weak pointer is nullable and is nilified when the object it points to is deleted.
  • An unbreakable pointer will raise when you attempt to delete the object it points to.
  • TypeNullable?On Delete
    StrongNoCascade
    WeakYesSet Null
    UnbreakableNoRaise

    In this case we will use a strong pointer, because we want it to be -deleted if the pointed object is deleted.

    defmodule MyApp.Repo.Migrations.Hello  do
    +deleted if the pointed object is deleted.

    defmodule MyApp.Repo.Migrations.Hello  do
       @moduledoc false
       use Ecto.Migration
       import Pointers.Migration
     
    -  def change() do
    -    create_if_not_exists table(:hello) do
    -      add :pointer, strong_pointer(), null: false
    +  def change() do
    +    create_if_not_exists table(:hello) do
    +      add :pointer, strong_pointer(), null: false
           add :greeting, :text, null: false
    -    end
    -  end
    -end

    If you are pointing to a specific table instead of pointer, + end + end +end

    If you are pointing to a specific table instead of pointer, strong_pointer/1 allows you to pass the name of that module (strong_pointer/0 calls this with Pointers.Pointer).

    @@ -258,38 +258,38 @@

    know which table they are to work with them! The solution to this is what we are calling 'mixin tables' for convenience.

    A mixin table has a Pointer primary key along with any other fields you wish to store in this mixin. By moving fields out to mixin tables, -you gain knowledge of the table name to which you need to join.

    An example mixin schema:

    defmodule My.Creator  do
    +you gain knowledge of the table name to which you need to join.

    An example mixin schema:

    defmodule My.Creator  do
       use Pointers.Mixin,
         otp_app: :my_app,
         source: "creator"
     
    -  mixin_schema do
    +  mixin_schema do
         belongs_to :creator, My.User
    -  end
    -end

    Mixin tables are not themselves pointable, so there is no need to -specify a table id as when defining a pointable schema.

    The migration for this is slightly more complicated:

    defmodule My.Creator.Migration do
    +  end
    +end

    Mixin tables are not themselves pointable, so there is no need to +specify a table id as when defining a pointable schema.

    The migration for this is slightly more complicated:

    defmodule My.Creator.Migration do
     
       import Ecto.Migration
       import Pointers.Migration
     
    -  defp creator_table(), do: My.Creator.__schema__(:source)
    -  defp user_table(), do: My.User.__schema__(:source)
    +  defp creator_table(), do: My.Creator.__schema__(:source)
    +  defp user_table(), do: My.User.__schema__(:source)
     
    -  def migrate_creator(index_opts \\ []),
    -    do: migrate_creator(index_opts, direction())
    +  def migrate_creator(index_opts \\ []),
    +    do: migrate_creator(index_opts, direction())
     
    -  defp migrate_creator(index_opts, :up) do
    -    create_mixin_table(creator_table()) do
    -      add :creator_id, strong_pointer(user_table()), null: false 
    -    end
    -    create_if_not_exists(unique_index(creator_table(), [:creator_id], index_opts))
    -  end
    +  defp migrate_creator(index_opts, :up) do
    +    create_mixin_table(creator_table()) do
    +      add :creator_id, strong_pointer(user_table()), null: false 
    +    end
    +    create_if_not_exists(unique_index(creator_table(), [:creator_id], index_opts))
    +  end
     
    -  defp migrate_creator(index_opts, :down) do
    -    drop_if_exists(unique_index(creator_table(), [:creator_id], index_opts))
    -    drop_mixin_table(creator_table())
    -  end
    -end

    + defp migrate_creator(index_opts, :down) do + drop_if_exists(unique_index(creator_table(), [:creator_id], index_opts)) + drop_mixin_table(creator_table()) + end +end

    virtual-pointables-virtuals

    diff --git a/extension-pointers_ulid.html b/extension-pointers_ulid.html index 95b12104cbb..419b7d79f39 100644 --- a/extension-pointers_ulid.html +++ b/extension-pointers_ulid.html @@ -120,7 +120,7 @@

    Installation

    -
    {:pointers_ulid, git: "https://github.com/bonfire-networks/pointers_ulid", branch: "main"}

    Usage

    -

    Installation:

    {:zest, "~> 0.1.2"}

    Example (taken from our test suite):

    defmodule MyTest do
    +

    Installation:

    {:zest, "~> 0.1.2"}

    Example (taken from our test suite):

    defmodule MyTest do
       use ExUnit.Case
       import Zest
       
    -  test "scope fails spectacularly" do
    -    scope [this: %{is: :a}, test: :case] do
    -      scope [error: :this_should_not_show] do
    -      end
    -      scope [the: :order, must: :be_correct] do
    -        scope [to: :pass], assert(true == false)
    -      end
    -    end
    -  end
    -
    -end

    Output:

    Zest Context:
    -* this: %{is: :a}
    +  test "scope fails spectacularly" do
    +    scope [this: %{is: :a}, test: :case] do
    +      scope [error: :this_should_not_show] do
    +      end
    +      scope [the: :order, must: :be_correct] do
    +        scope [to: :pass], assert(true == false)
    +      end
    +    end
    +  end
    +
    +end

    Output:

    Zest Context:
    +* this: %{is: :a}
     * test: :case
     * the: :order
     * must: :be_correct
     * to: :pass
     
     
    -  1) test scope fails spectacularly (ZestTest)
    +  1) test scope fails spectacularly (ZestTest)
          test/zest_test.exs:7
          Assertion with == failed
          code:  assert true == false
          left:  true
          right: false
          stacktrace:
    -       (zest 0.1.0) lib/zest.ex:52: Zest.in_scope/2
    -       (zest 0.1.0) lib/zest.ex:47: anonymous fn/1 in Zest.in_scope/2
    -       (zest 0.1.0) lib/zest.ex:113: Zest.intercept/2
    -       test/zest_test.exs:8: (test)

    + (zest 0.1.0) lib/zest.ex:52: Zest.in_scope/2 + (zest 0.1.0) lib/zest.ex:47: anonymous fn/1 in Zest.in_scope/2 + (zest 0.1.0) lib/zest.ex:113: Zest.intercept/2 + test/zest_test.exs:8: (test)

    contributing

    diff --git a/graphql.html b/graphql.html index cd341e177ea..8829f29211b 100644 --- a/graphql.html +++ b/graphql.html @@ -127,10 +127,10 @@

    }

    Let's break this apart:

    • query {} is how you retrieve information from GraphQL.
    • greetings is a field within the query.
    • greetings takes a limit argument, a positive integer.
    • greetings has two fields, greeting and to.
    • to has one field, name.

    This query is asking for a list of (up to) 10 greetings and the people they are for. Notice that the result of both greetings and to are map/object structures with their own fields and that if the type has -multiple fields, we can select more than one field.

    Here is some possible data we could get returned

    %{greetings: [
    -    %{greeting: "hello", to: %{ name: "dear reader"}}, # english
    -    %{greeting: "hallo", to: %{ name: "beste lezer"}}, # dutch
    -  ]}

    Where is the magic? Typically an object type will reside in its own +multiple fields, we can select more than one field.

    Here is some possible data we could get returned

    %{greetings: [
    +    %{greeting: "hello", to: %{ name: "dear reader"}}, # english
    +    %{greeting: "hallo", to: %{ name: "beste lezer"}}, # dutch
    +  ]}

    Where is the magic? Typically an object type will reside in its own table in the database, so this query is actually querying two tables in one go. In fact, given a supporting schema, you can nest queries arbitrarily and the backend will figure out how to run them.

    The fact that you can represent arbitrarily complex queries puts quite @@ -142,59 +142,59 @@

    Absinthe Introduction

    Every field is filled by a resolver. Let's take our existing query -and define a schema for it in Absinthe's query DSL:

    defmodule MyApp.Schema do
    +and define a schema for it in Absinthe's query DSL:

    defmodule MyApp.Schema do
       # the schema macro language
       use Absinthe.Schema.Notation
       # where we will actually resolve the fields
       alias MyApp.Resolver
     
       # Our user object is pretty simple, just a name
    -  object :user do
    -    field :name, non_null(:string)
    -  end
    +  object :user do
    +    field :name, non_null(:string)
    +  end
     
       # This one is slightly more complicated, we have that nested `to`
    -  object :greeting do
    +  object :greeting do
         # the easy one
    -    field :greeting, non_null(:string)
    +    field :greeting, non_null(:string)
         # the hard one. `edge` is the term for when we cross an object boundary.
    -    field :to, non_null(:user), do: resolve(&Resolver.to_edge/3)
    -  end
    +    field :to, non_null(:user), do: resolve(&Resolver.to_edge/3)
    +  end
     
       # something to put our top level queries in, because they're just fields too!
    -  object :queries do
    -    field :greetings, non_null(list_of(non_null(:string))) do
    +  object :queries do
    +    field :greetings, non_null(list_of(non_null(:string))) do
           arg :limit, :integer # optional
           resolve &Resolver.greetings/2 # we need to manually process this one
    -    end
    -  end
    +    end
    +  end
     
    -end

    There are a couple of interesting things about this:

    • Sprinklings of not_null to require that values be present (if you +end

    There are a couple of interesting things about this:

    • Sprinklings of not_null to require that values be present (if you don't return them, absinthe will get upset).
    • Only two fields have explicit resolvers. Anything else will default to a map key lookup (which is more often than not what you want).
    • greeting.to_edge has a /3 resolver and queries.greetings a /2 resolver.

    To understand the last one (and partially the middle one), we must understand how resolution works and what a parent is. The best way of -doing that is probably to look at the resolver code:

    defmodule MyApp.Resolver do
    +doing that is probably to look at the resolver code:

    defmodule MyApp.Resolver do
     
       # For purposes of this, we will just fake the data out
    -  defp greetings_data() do
    -    [ %{greeting: "hello", to: %{ name: "dear reader"}}, # english
    -      %{greeting: "hallo", to: %{ name: "beste lezer"}}, # dutch
    -    ]
    -  end
    +  defp greetings_data() do
    +    [ %{greeting: "hello", to: %{ name: "dear reader"}}, # english
    +      %{greeting: "hallo", to: %{ name: "beste lezer"}}, # dutch
    +    ]
    +  end
     
       # the /2 resolver takes only arguments (which in this case is just limit)
       # and an info (which we'll explain later)
    -  def greetings(%{limit: limit}, _info) when is_integer(limit) and limit > 0 do
    -    {:ok, Enum.take(greetings_data(), limit)} # absinthe expects an ok/error tuple
    -  end
    -  def greetings(_args, _info), do: {:ok, greetings_data()} # no limit
    +  def greetings(%{limit: limit}, _info) when is_integer(limit) and limit > 0 do
    +    {:ok, Enum.take(greetings_data(), limit)} # absinthe expects an ok/error tuple
    +  end
    +  def greetings(_args, _info), do: {:ok, greetings_data()} # no limit
     
       # the /3 resolver takes an additional parent argument in first position.
       # `parent` here will be the `greeting` we are resolving `to` for.
    -  def to_edge(parent, args, info), do: Map.get(parent, :to)
    +  def to_edge(parent, args, info), do: Map.get(parent, :to)
     
    -end

    The keen-eyed amongst you may have noticed I said the default resolver +end

    The keen-eyed amongst you may have noticed I said the default resolver is a map lookup and our to_edge/3 is a map lookup too, so technically we didn't need to write it. But then you wouldn't have an example of a /3 resolver! In most of the app, these will be querying diff --git a/hacking.html b/hacking.html index e13cb1905db..e49d21218fe 100644 --- a/hacking.html +++ b/hacking.html @@ -261,7 +261,7 @@

    Example:

    ** (DBConnection.ConnectionError) tcp recv: closed (the connection was closed by the pool, possibly due to a timeout or because the pool has been terminated)

    In this case, the seeds were unable to complete because a query took too long to execute on your machine. You can configure the timeout to be larger in the dev environment:

    1. Open config/dev.exs in your editor.
    2. Find the database configuration (search for Bonfire.Common.Repo).
    3. Add timeout: 60_000 to the list of options:
    config :bonfire, Bonfire.Common.Repo,
       timeout: 60_000,
    -  [...]
    +
    [...]
    diff --git a/mrf.html b/mrf.html index b3b13c02d91..ea36df43718 100644 --- a/mrf.html +++ b/mrf.html @@ -119,7 +119,7 @@

    Using SimplePolicy

    SimplePolicy is capable of handling most common admin tasks.

    To use SimplePolicy, you must enable it. Do so by adding the following to your :instance config object, so that it looks like this:

    config :bonfire, :instance,
    -  [...]
    +  [...]
       rewrite_policy: ActivityPub.MRF.SimplePolicy

    Once SimplePolicy is enabled, you can configure various groups in the :mrf_simple config object. These groups are:

    • media_removal: Servers in this group will have media stripped from incoming messages.
    • media_nsfw: Servers in this group will have the #nsfw tag and sensitive setting injected into incoming messages which contain media.
    • reject: Servers in this group will have their messages rejected.
    • report_removal: Servers in this group will have their reports (flags) rejected.

    Servers should be configured as lists.

    example

    @@ -127,13 +127,13 @@

    Example

    This example will enable SimplePolicy, block media from illegalporn.biz, mark media as NSFW from porn.biz and porn.business, reject messages from spam.com and block reports (flags) from troll.mob:

    config :activity_pub, :instance,
    -  rewrite_policy: [ActivityPub.MRF.SimplePolicy]
    +  rewrite_policy: [ActivityPub.MRF.SimplePolicy]
     
     config :activity_pub, :mrf_simple,
    -  media_removal: ["illegalporn.biz"],
    -  media_nsfw: ["porn.biz", "porn.business"],
    -  reject: ["spam.com"],
    -  report_removal: ["troll.mob"]
    +  media_removal: ["illegalporn.biz"],
    +  media_nsfw: ["porn.biz", "porn.business"],
    +  reject: ["spam.com"],
    +  report_removal: ["troll.mob"]
     

    use-with-care

    @@ -148,18 +148,18 @@

    As discussed above, the MRF system is a modular system that supports pluggable policies. This means that an admin may write a custom MRF policy in Elixir or any other language that runs on the Erlang VM, by specifying the module name in the rewrite_policy config setting.

    For example, here is a sample policy module which rewrites all messages to "new message content":

    # This is a sample MRF policy which rewrites all Notes to have "new message
     # content."
    -defmodule Site.RewritePolicy do
    +defmodule Site.RewritePolicy do
       @behavior ActivityPub.MRF
     
       # Catch messages which contain Note objects with actual data to filter.
       # Capture the object as `object`, the message content as `content` and the
       # entire activity itself as `activity`.
       @impl true
    -  def filter(%{"type" => "Create", "object" => %{"type" => "Note", "content" => content} = object} = message)
    -      when is_binary(content) do
    +  def filter(%{"type" => "Create", "object" => %{"type" => "Note", "content" => content} = object} = message)
    +      when is_binary(content) do
         # Subject / CW is stored as summary instead of `name` like other AS2 objects
         # because of Mastodon doing it that way.
    -    summary = object["summary"]
    +    summary = object["summary"]
     
         # edits go here.
         content = "new message content"
    @@ -167,21 +167,21 @@ 

    # Assemble the mutated object. object = object - |> Map.put("content", content) - |> Map.put("summary", summary) + |> Map.put("content", content) + |> Map.put("summary", summary) # Assemble the mutated activity. - {:ok, Map.put(activity, "object", object)} - end + {:ok, Map.put(activity, "object", object)} + end # Let all other messages through without modifying them. @impl true - def filter(message), do: {:ok, message} -end

    If you save this file as lib/site/mrf/rewrite_policy.ex, it will be included when you next rebuild Bonfire. You can enable it in the configuration like so:

    config :activity_pub, :instance,
    -  rewrite_policy: [
    +  def filter(message), do: {:ok, message}
    +end

    If you save this file as lib/site/mrf/rewrite_policy.ex, it will be included when you next rebuild Bonfire. You can enable it in the configuration like so:

    config :activity_pub, :instance,
    +  rewrite_policy: [
         ActivityPub.MRF.SimplePolicy,
         Site.RewritePolicy
    -  ]
    + ]