From 9bdcb445b231c4e9500a8ba33c1e76aa45bd2efa Mon Sep 17 00:00:00 2001
From: aerosol
Date: Thu, 14 Dec 2023 13:22:10 +0000
Subject: [PATCH] deploy: 6639d6af63c864de14dc78dd38b34d026e60b439
---
.build | 6 +-
404.html | 2 +-
Mix.Tasks.CancelSubscription.html | 2 +-
Mix.Tasks.CleanClickhouse.html | 2 +-
Mix.Tasks.CreateFreeSubscription.html | 2 +-
Mix.Tasks.DownloadCountryDatabase.html | 2 +-
Mix.Tasks.GenerateReferrerFavicons.html | 2 +-
Mix.Tasks.PullSandboxSubscription.html | 2 +-
Mix.Tasks.SendPageview.html | 2 +-
ObanErrorReporter.html | 2 +-
Plausible.AsyncInsertRepo.html | 18 +-
Plausible.Auth.ApiKey.html | 2 +-
Plausible.Auth.ApiKeyAdmin.html | 2 +-
Plausible.Auth.EmailActivationCode.html | 2 +-
Plausible.Auth.EmailVerification.html | 2 +-
Plausible.Auth.GracePeriod.html | 2 +-
Plausible.Auth.Invitation.html | 2 +-
Plausible.Auth.Password.html | 2 +-
Plausible.Auth.TOTP.EncryptedBinary.html | 2 +-
Plausible.Auth.TOTP.RecoveryCode.html | 2 +-
Plausible.Auth.TOTP.Vault.html | 2 +-
Plausible.Auth.TOTP.html | 2 +-
Plausible.Auth.Token.html | 2 +-
Plausible.Auth.User.html | 2 +-
Plausible.Auth.UserAdmin.html | 2 +-
Plausible.Auth.html | 2 +-
Plausible.Billing.Ecto.Feature.html | 2 +-
Plausible.Billing.Ecto.FeatureList.html | 2 +-
Plausible.Billing.Ecto.Limit.html | 2 +-
Plausible.Billing.EnterprisePlan.html | 2 +-
Plausible.Billing.EnterprisePlanAdmin.html | 2 +-
Plausible.Billing.Feature.html | 2 +-
Plausible.Billing.PaddleApi.html | 2 +-
Plausible.Billing.Plans.html | 2 +-
Plausible.Billing.Quota.html | 2 +-
Plausible.Billing.SiteLocker.html | 2 +-
Plausible.Billing.Subscription.Status.html | 2 +-
Plausible.Billing.html | 2 +-
Plausible.ChangesetHelpers.html | 2 +-
Plausible.Cldr.AcceptLanguage.html | 250 ++++++-------
Plausible.Cldr.Currency.html | 126 +++----
Plausible.Cldr.Locale.html | 50 +--
Plausible.Cldr.Number.Cardinal.html | 20 +-
Plausible.Cldr.Number.Format.html | 50 +--
Plausible.Cldr.Number.Formatter.Decimal.html | 2 +-
Plausible.Cldr.Number.Ordinal.html | 20 +-
Plausible.Cldr.Number.PluralRule.Range.html | 2 +-
Plausible.Cldr.Number.Symbol.html | 16 +-
Plausible.Cldr.Number.System.html | 56 +--
Plausible.Cldr.Number.Transliterate.html | 22 +-
Plausible.Cldr.Number.html | 178 +++++-----
Plausible.Cldr.Rbnf.NumberSystem.html | 14 +-
Plausible.Cldr.Rbnf.Ordinal.html | 18 +-
Plausible.Cldr.Rbnf.Spellout.html | 14 +-
Plausible.Cldr.html | 138 ++++----
Plausible.ClickhouseEventV2.html | 2 +-
Plausible.ClickhouseRepo.html | 18 +-
Plausible.ClickhouseSessionV2.BoolUInt8.html | 2 +-
Plausible.ClickhouseSessionV2.html | 2 +-
Plausible.ConfigHelpers.html | 2 +-
Plausible.DataCase.html | 2 +-
Plausible.DataMigration.NumericIDs.html | 2 +-
Plausible.DataMigration.Repo.html | 18 +-
Plausible.DataMigration.html | 2 +-
Plausible.DebugReplayInfo.html | 2 +-
Plausible.Ecto.EventName.html | 2 +-
Plausible.Event.WriteBuffer.html | 332 ------------------
Plausible.Factory.html | 2 +-
Plausible.Funnel.Const.html | 2 +-
Plausible.Funnel.Step.html | 2 +-
Plausible.Funnel.html | 2 +-
Plausible.Funnels.html | 2 +-
Plausible.Geo.html | 66 ++--
Plausible.Goal.Revenue.html | 2 +-
Plausible.Goal.html | 2 +-
Plausible.Goals.html | 2 +-
Plausible.Google.Api.Mock.html | 2 +-
Plausible.Google.Api.html | 2 +-
Plausible.Google.Buffer.html | 2 +-
Plausible.Google.HTTP.html | 2 +-
Plausible.Google.ReportRequest.html | 2 +-
Plausible.HTTPClient.Interface.html | 2 +-
Plausible.HTTPClient.Non200Error.html | 2 +-
Plausible.HTTPClient.html | 2 +-
Plausible.Helpers.JSON.html | 2 +-
Plausible.ImportDeletionRepo.html | 18 +-
Plausible.Imported.html | 2 +-
Plausible.IngestRepo.html | 18 +-
Plausible.Ingestion.Counters.Buffer.html | 2 +-
Plausible.Ingestion.Counters.Record.html | 2 +-
...e.Ingestion.Counters.TelemetryHandler.html | 2 +-
Plausible.Ingestion.Counters.html | 2 +-
Plausible.Ingestion.Event.Revenue.html | 2 +-
Plausible.Ingestion.Event.html | 2 +-
Plausible.Ingestion.Request.Revenue.html | 2 +-
Plausible.Ingestion.Request.html | 2 +-
Plausible.Mailer.html | 2 +-
Plausible.OpenTelemetry.Sampler.html | 2 +-
Plausible.PaddleApi.Mock.html | 2 +-
Plausible.Pagination.html | 2 +-
Plausible.Plugins.API.CustomProps.html | 2 +-
Plausible.Plugins.API.Goals.html | 2 +-
Plausible.Plugins.API.SharedLinks.html | 2 +-
Plausible.Plugins.API.Token.html | 2 +-
Plausible.Plugins.API.Tokens.html | 2 +-
...sible.PromEx.Plugins.PlausibleMetrics.html | 2 +-
Plausible.PromEx.html | 2 +-
Plausible.Props.html | 2 +-
Plausible.Purge.html | 2 +-
Plausible.RateLimit.html | 2 +-
Plausible.Release.html | 2 +-
Plausible.Repo.html | 2 +-
Plausible.Sentry.Client.html | 2 +-
Plausible.SentryFilter.html | 2 +-
Plausible.Session.CacheStore.html | 2 +-
Plausible.Session.Salts.html | 2 +-
Plausible.Session.WriteBuffer.html | 332 ------------------
Plausible.Site.Cache.Warmer.All.html | 2 +-
...ble.Site.Cache.Warmer.RecentlyUpdated.html | 2 +-
Plausible.Site.Cache.Warmer.html | 2 +-
Plausible.Site.Cache.html | 2 +-
Plausible.Site.Domain.html | 2 +-
Plausible.Site.GateKeeper.html | 2 +-
Plausible.Site.GoogleAuth.html | 2 +-
Plausible.Site.ImportedData.html | 2 +-
Plausible.Site.Membership.html | 2 +-
...ble.Site.Memberships.AcceptInvitation.html | 2 +-
...ble.Site.Memberships.CreateInvitation.html | 2 +-
...ble.Site.Memberships.RejectInvitation.html | 2 +-
...ble.Site.Memberships.RemoveInvitation.html | 2 +-
Plausible.Site.Memberships.html | 2 +-
Plausible.Site.MonthlyReport.html | 2 +-
Plausible.Site.Removal.html | 2 +-
Plausible.Site.SharedLink.html | 2 +-
Plausible.Site.SpikeNotification.html | 2 +-
Plausible.Site.UserPreference.html | 2 +-
Plausible.Site.WeeklyReport.html | 2 +-
Plausible.Site.html | 2 +-
Plausible.SiteAdmin.html | 2 +-
Plausible.Sites.html | 2 +-
Plausible.Stats.Aggregate.html | 2 +-
Plausible.Stats.Base.html | 2 +-
Plausible.Stats.Breakdown.html | 2 +-
Plausible.Stats.Clickhouse.html | 2 +-
Plausible.Stats.Compare.html | 2 +-
Plausible.Stats.Comparisons.html | 2 +-
Plausible.Stats.CurrentVisitors.html | 2 +-
Plausible.Stats.CustomProps.html | 2 +-
Plausible.Stats.FilterParser.html | 14 +-
Plausible.Stats.FilterSuggestions.html | 2 +-
Plausible.Stats.Filters.html | 2 +-
Plausible.Stats.Fragments.html | 2 +-
Plausible.Stats.Funnel.html | 2 +-
Plausible.Stats.Goal.Revenue.html | 2 +-
Plausible.Stats.Imported.html | 2 +-
Plausible.Stats.Interval.html | 2 +-
Plausible.Stats.Props.html | 2 +-
Plausible.Stats.Query.html | 2 +-
Plausible.Stats.Sampling.html | 2 +-
Plausible.Stats.Timeseries.html | 2 +-
Plausible.Stats.Util.html | 2 +-
Plausible.Stats.html | 2 +-
Plausible.Test.Support.HTML.html | 2 +-
Plausible.Test.Support.HTTPMocker.html | 2 +-
Plausible.TestUtils.html | 2 +-
Plausible.Themes.html | 2 +-
Plausible.Timezones.html | 2 +-
Plausible.Users.html | 2 +-
Plausible.Workers.CheckUsage.html | 2 +-
Plausible.Workers.CleanInvitations.html | 2 +-
...Workers.ExpireDomainChangeTransitions.html | 2 +-
Plausible.Workers.ImportGoogleAnalytics.html | 2 +-
Plausible.Workers.LockSites.html | 2 +-
Plausible.Workers.NotifyAnnualRenewal.html | 2 +-
Plausible.Workers.RotateSalts.html | 2 +-
Plausible.Workers.ScheduleEmailReports.html | 2 +-
Plausible.Workers.SendCheckStatsEmails.html | 2 +-
Plausible.Workers.SendEmailReport.html | 2 +-
Plausible.Workers.SendSiteSetupEmails.html | 2 +-
Plausible.Workers.SendTrialNotifications.html | 2 +-
Plausible.Workers.SpikeNotifier.html | 2 +-
Plausible.epub | Bin 599622 -> 596988 bytes
Plausible.html | 2 +-
PlausibleWeb.AdminController.html | 2 +-
PlausibleWeb.Api.ExternalController.html | 2 +-
PlausibleWeb.Api.ExternalSitesController.html | 2 +-
PlausibleWeb.Api.ExternalStatsController.html | 2 +-
PlausibleWeb.Api.Helpers.html | 2 +-
PlausibleWeb.Api.InternalController.html | 2 +-
PlausibleWeb.Api.PaddleController.html | 2 +-
PlausibleWeb.Api.StatsController.html | 18 +-
PlausibleWeb.AuthController.html | 2 +-
PlausibleWeb.AuthPlug.html | 2 +-
PlausibleWeb.AuthView.html | 2 +-
PlausibleWeb.AuthorizeSiteAccess.html | 2 +-
PlausibleWeb.AuthorizeSitesApiPlug.html | 2 +-
PlausibleWeb.AuthorizeStatsApiPlug.html | 2 +-
PlausibleWeb.AvatarController.html | 2 +-
PlausibleWeb.BillingController.html | 2 +-
PlausibleWeb.BillingView.html | 2 +-
PlausibleWeb.CRMAuthPlug.html | 2 +-
PlausibleWeb.Captcha.html | 2 +-
PlausibleWeb.Components.Generic.html | 2 +-
PlausibleWeb.Components.Google.html | 2 +-
PlausibleWeb.Components.Settings.html | 2 +-
PlausibleWeb.Components.Site.Feature.html | 2 +-
PlausibleWeb.Components.TwoFactor.html | 2 +-
PlausibleWeb.ConnCase.html | 2 +-
PlausibleWeb.ControllerHelpers.html | 2 +-
PlausibleWeb.Controllers.API.Revenue.html | 2 +-
PlausibleWeb.Dogfood.html | 2 +-
PlausibleWeb.Email.html | 2 +-
PlausibleWeb.EmailView.html | 2 +-
PlausibleWeb.Endpoint.html | 2 +-
PlausibleWeb.ErrorHelpers.html | 2 +-
PlausibleWeb.ErrorReportController.html | 2 +-
PlausibleWeb.ErrorView.html | 2 +-
PlausibleWeb.Favicon.html | 2 +-
PlausibleWeb.FirstLaunchPlug.Test.html | 2 +-
PlausibleWeb.FirstLaunchPlug.html | 2 +-
PlausibleWeb.FormHelpers.html | 2 +-
PlausibleWeb.InvitationController.html | 2 +-
PlausibleWeb.LastSeenPlug.html | 2 +-
PlausibleWeb.LayoutView.JWT.html | 2 +-
PlausibleWeb.LayoutView.html | 2 +-
PlausibleWeb.Live.ChoosePlan.html | 2 +-
...Live.Components.ComboBox.StaticSearch.html | 2 +-
PlausibleWeb.Live.Components.ComboBox.html | 2 +-
PlausibleWeb.Live.Components.Form.html | 2 +-
PlausibleWeb.Live.Components.Pagination.html | 2 +-
PlausibleWeb.Live.Components.Visitors.html | 2 +-
PlausibleWeb.Live.Flash.html | 2 +-
PlausibleWeb.Live.FunnelSettings.Form.html | 2 +-
PlausibleWeb.Live.FunnelSettings.List.html | 2 +-
PlausibleWeb.Live.FunnelSettings.html | 2 +-
PlausibleWeb.Live.GoalSettings.Form.html | 2 +-
PlausibleWeb.Live.GoalSettings.List.html | 2 +-
PlausibleWeb.Live.GoalSettings.html | 2 +-
PlausibleWeb.Live.Plugins.API.Settings.html | 2 +-
PlausibleWeb.Live.Plugins.API.TokenForm.html | 2 +-
PlausibleWeb.Live.PropsSettings.Form.html | 2 +-
PlausibleWeb.Live.PropsSettings.List.html | 2 +-
PlausibleWeb.Live.PropsSettings.html | 2 +-
PlausibleWeb.Live.RegisterForm.html | 2 +-
PlausibleWeb.Live.ResetPasswordForm.html | 2 +-
PlausibleWeb.Live.Sites.html | 2 +-
PlausibleWeb.MJML.WeeklyReport.html | 2 +-
PlausibleWeb.PageController.html | 2 +-
PlausibleWeb.PageView.html | 2 +-
...b.Plugins.API.Controllers.CustomProps.html | 2 +-
...ibleWeb.Plugins.API.Controllers.Goals.html | 2 +-
...b.Plugins.API.Controllers.SharedLinks.html | 2 +-
PlausibleWeb.Plugins.API.Errors.html | 2 +-
PlausibleWeb.Plugins.API.Router.html | 2 +-
...API.Schemas.CustomProp.DisableRequest.html | 2 +-
....API.Schemas.CustomProp.EnableRequest.html | 2 +-
...s.API.Schemas.CustomProp.ListResponse.html | 2 +-
...bleWeb.Plugins.API.Schemas.CustomProp.html | 2 +-
PlausibleWeb.Plugins.API.Schemas.Error.html | 2 +-
...chemas.Goal.CreateRequest.CustomEvent.html | 2 +-
...I.Schemas.Goal.CreateRequest.Pageview.html | 2 +-
...PI.Schemas.Goal.CreateRequest.Revenue.html | 2 +-
...lugins.API.Schemas.Goal.CreateRequest.html | 2 +-
....Plugins.API.Schemas.Goal.CustomEvent.html | 2 +-
...ns.API.Schemas.Goal.DeleteBulkRequest.html | 2 +-
...Plugins.API.Schemas.Goal.ListResponse.html | 2 +-
...Web.Plugins.API.Schemas.Goal.Pageview.html | 2 +-
...eWeb.Plugins.API.Schemas.Goal.Revenue.html | 2 +-
...ibleWeb.Plugins.API.Schemas.Goal.Type.html | 2 +-
PlausibleWeb.Plugins.API.Schemas.Goal.html | 2 +-
PlausibleWeb.Plugins.API.Schemas.Link.html | 2 +-
...sibleWeb.Plugins.API.Schemas.NotFound.html | 2 +-
...lugins.API.Schemas.PaginationMetadata.html | 2 +-
...b.Plugins.API.Schemas.PaymentRequired.html | 2 +-
....API.Schemas.SharedLink.CreateRequest.html | 2 +-
...s.API.Schemas.SharedLink.ListResponse.html | 2 +-
...bleWeb.Plugins.API.Schemas.SharedLink.html | 2 +-
...eWeb.Plugins.API.Schemas.Unauthorized.html | 2 +-
...ugins.API.Schemas.UnprocessableEntity.html | 2 +-
PlausibleWeb.Plugins.API.Spec.html | 2 +-
...sibleWeb.Plugins.API.Views.CustomProp.html | 2 +-
PlausibleWeb.Plugins.API.Views.Error.html | 2 +-
PlausibleWeb.Plugins.API.Views.Goal.html | 2 +-
...sibleWeb.Plugins.API.Views.Pagination.html | 2 +-
...sibleWeb.Plugins.API.Views.SharedLink.html | 2 +-
PlausibleWeb.Plugins.API.html | 2 +-
PlausibleWeb.PluginsAPICase.html | 2 +-
PlausibleWeb.Plugs.AuthorizePluginsAPI.html | 2 +-
...bleWeb.Plugs.MaybeDisableRegistration.html | 2 +-
PlausibleWeb.Plugs.NoRobots.html | 2 +-
PlausibleWeb.RefInspector.html | 2 +-
PlausibleWeb.RemoteIp.html | 2 +-
PlausibleWeb.RequireAccountPlug.html | 2 +-
PlausibleWeb.RequireLoggedOutPlug.html | 2 +-
PlausibleWeb.Router.html | 2 +-
PlausibleWeb.SessionTimeoutPlug.html | 2 +-
PlausibleWeb.Site.MembershipController.html | 2 +-
PlausibleWeb.Site.MembershipView.html | 2 +-
PlausibleWeb.SiteController.html | 2 +-
PlausibleWeb.SiteView.html | 2 +-
PlausibleWeb.StatsController.html | 2 +-
PlausibleWeb.StatsView.html | 2 +-
PlausibleWeb.Tracker.html | 2 +-
PlausibleWeb.TwoFactor.Session.html | 2 +-
PlausibleWeb.UnsubscribeController.html | 2 +-
PlausibleWeb.UnsubscribeView.html | 2 +-
PlausibleWeb.html | 2 +-
account-locking.html | 2 +-
api-reference.html | 16 +-
contributing.html | 2 +-
dist/search_data-09827771.js | 1 -
dist/search_data-24EB78F8.js | 1 +
dist/sidebar_items-439016AE.js | 1 +
dist/sidebar_items-DE3AC244.js | 1 -
readme.html | 2 +-
search.html | 4 +-
316 files changed, 871 insertions(+), 1551 deletions(-)
delete mode 100644 Plausible.Event.WriteBuffer.html
delete mode 100644 Plausible.Session.WriteBuffer.html
delete mode 100644 dist/search_data-09827771.js
create mode 100644 dist/search_data-24EB78F8.js
create mode 100644 dist/sidebar_items-439016AE.js
delete mode 100644 dist/sidebar_items-DE3AC244.js
diff --git a/.build b/.build
index f22694cae..541946381 100644
--- a/.build
+++ b/.build
@@ -63,7 +63,6 @@ Plausible.DataMigration.Repo.html
Plausible.DataMigration.html
Plausible.DebugReplayInfo.html
Plausible.Ecto.EventName.html
-Plausible.Event.WriteBuffer.html
Plausible.Factory.html
Plausible.Funnel.Const.html
Plausible.Funnel.Step.html
@@ -113,7 +112,6 @@ Plausible.Sentry.Client.html
Plausible.SentryFilter.html
Plausible.Session.CacheStore.html
Plausible.Session.Salts.html
-Plausible.Session.WriteBuffer.html
Plausible.Site.Cache.Warmer.All.html
Plausible.Site.Cache.Warmer.RecentlyUpdated.html
Plausible.Site.Cache.Warmer.html
@@ -334,8 +332,8 @@ dist/merriweather-latin-ext-300-normal-K6L27CZ5.woff2
dist/merriweather-vietnamese-300-italic-EHHNZPUO.woff2
dist/merriweather-vietnamese-300-normal-U376L4Z4.woff2
dist/remixicon-NKANDIL5.woff2
-dist/search_data-09827771.js
-dist/sidebar_items-DE3AC244.js
+dist/search_data-24EB78F8.js
+dist/sidebar_items-439016AE.js
index.html
readme.html
search.html
diff --git a/404.html b/404.html
index 732f9ba98..d1acc2029 100644
--- a/404.html
+++ b/404.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Mix.Tasks.CancelSubscription.html b/Mix.Tasks.CancelSubscription.html
index bc69f1ed4..8f11a8c78 100644
--- a/Mix.Tasks.CancelSubscription.html
+++ b/Mix.Tasks.CancelSubscription.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Mix.Tasks.CleanClickhouse.html b/Mix.Tasks.CleanClickhouse.html
index aff14002f..7390aa5d7 100644
--- a/Mix.Tasks.CleanClickhouse.html
+++ b/Mix.Tasks.CleanClickhouse.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Mix.Tasks.CreateFreeSubscription.html b/Mix.Tasks.CreateFreeSubscription.html
index 6d1a8de52..6dc1abbe1 100644
--- a/Mix.Tasks.CreateFreeSubscription.html
+++ b/Mix.Tasks.CreateFreeSubscription.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Mix.Tasks.DownloadCountryDatabase.html b/Mix.Tasks.DownloadCountryDatabase.html
index b3578cbe5..8758618fc 100644
--- a/Mix.Tasks.DownloadCountryDatabase.html
+++ b/Mix.Tasks.DownloadCountryDatabase.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Mix.Tasks.GenerateReferrerFavicons.html b/Mix.Tasks.GenerateReferrerFavicons.html
index b198cc0b5..f2f65f376 100644
--- a/Mix.Tasks.GenerateReferrerFavicons.html
+++ b/Mix.Tasks.GenerateReferrerFavicons.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Mix.Tasks.PullSandboxSubscription.html b/Mix.Tasks.PullSandboxSubscription.html
index 93871f6ce..c86a7a304 100644
--- a/Mix.Tasks.PullSandboxSubscription.html
+++ b/Mix.Tasks.PullSandboxSubscription.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Mix.Tasks.SendPageview.html b/Mix.Tasks.SendPageview.html
index 8c98adfb7..b809a702e 100644
--- a/Mix.Tasks.SendPageview.html
+++ b/Mix.Tasks.SendPageview.html
@@ -13,7 +13,7 @@
-
+
diff --git a/ObanErrorReporter.html b/ObanErrorReporter.html
index 4d85444da..5f7eb7c99 100644
--- a/ObanErrorReporter.html
+++ b/ObanErrorReporter.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.AsyncInsertRepo.html b/Plausible.AsyncInsertRepo.html
index 2b2e8ae7a..45cfde5e9 100644
--- a/Plausible.AsyncInsertRepo.html
+++ b/Plausible.AsyncInsertRepo.html
@@ -13,7 +13,7 @@
-
+
@@ -1114,23 +1114,23 @@ pool to disconnect within the given interval.
See
-Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
+Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
- defmodule Demo do
+ defmodule Demo do
use Ecto.Schema
@primary_key false
- schema "ecto_ch_demo" do
+ schema "ecto_ch_demo" do
field :a , Ch , type : "UInt64"
field :b , :string
- end
- end
+ end
+ end
- rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
- { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
+ rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
+ { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
# schemaless
- { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
+ { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
diff --git a/Plausible.Auth.ApiKey.html b/Plausible.Auth.ApiKey.html
index 1051f6788..8934b6f8e 100644
--- a/Plausible.Auth.ApiKey.html
+++ b/Plausible.Auth.ApiKey.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.ApiKeyAdmin.html b/Plausible.Auth.ApiKeyAdmin.html
index 63c21130d..132bb7e34 100644
--- a/Plausible.Auth.ApiKeyAdmin.html
+++ b/Plausible.Auth.ApiKeyAdmin.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.EmailActivationCode.html b/Plausible.Auth.EmailActivationCode.html
index 98e12b5b6..d7366f66b 100644
--- a/Plausible.Auth.EmailActivationCode.html
+++ b/Plausible.Auth.EmailActivationCode.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.EmailVerification.html b/Plausible.Auth.EmailVerification.html
index 6106f2157..413f84589 100644
--- a/Plausible.Auth.EmailVerification.html
+++ b/Plausible.Auth.EmailVerification.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.GracePeriod.html b/Plausible.Auth.GracePeriod.html
index 1f591a444..1579606a6 100644
--- a/Plausible.Auth.GracePeriod.html
+++ b/Plausible.Auth.GracePeriod.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.Invitation.html b/Plausible.Auth.Invitation.html
index e30bf49aa..3bb2ac3a5 100644
--- a/Plausible.Auth.Invitation.html
+++ b/Plausible.Auth.Invitation.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.Password.html b/Plausible.Auth.Password.html
index b762ee27d..94350f3b6 100644
--- a/Plausible.Auth.Password.html
+++ b/Plausible.Auth.Password.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.TOTP.EncryptedBinary.html b/Plausible.Auth.TOTP.EncryptedBinary.html
index 6d32bd50e..5e40600a4 100644
--- a/Plausible.Auth.TOTP.EncryptedBinary.html
+++ b/Plausible.Auth.TOTP.EncryptedBinary.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.TOTP.RecoveryCode.html b/Plausible.Auth.TOTP.RecoveryCode.html
index ae72a9cec..b2a38c1ee 100644
--- a/Plausible.Auth.TOTP.RecoveryCode.html
+++ b/Plausible.Auth.TOTP.RecoveryCode.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.TOTP.Vault.html b/Plausible.Auth.TOTP.Vault.html
index ff597b189..6a760d354 100644
--- a/Plausible.Auth.TOTP.Vault.html
+++ b/Plausible.Auth.TOTP.Vault.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.TOTP.html b/Plausible.Auth.TOTP.html
index 737df720a..50cd0e417 100644
--- a/Plausible.Auth.TOTP.html
+++ b/Plausible.Auth.TOTP.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.Token.html b/Plausible.Auth.Token.html
index 4f4fa50f5..f39051dda 100644
--- a/Plausible.Auth.Token.html
+++ b/Plausible.Auth.Token.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.User.html b/Plausible.Auth.User.html
index 2c7e5cbd2..4aad39018 100644
--- a/Plausible.Auth.User.html
+++ b/Plausible.Auth.User.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.UserAdmin.html b/Plausible.Auth.UserAdmin.html
index 607ca66d2..198cd7ba5 100644
--- a/Plausible.Auth.UserAdmin.html
+++ b/Plausible.Auth.UserAdmin.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Auth.html b/Plausible.Auth.html
index 45fc78093..85fc68769 100644
--- a/Plausible.Auth.html
+++ b/Plausible.Auth.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.Ecto.Feature.html b/Plausible.Billing.Ecto.Feature.html
index 38c069459..07b66f425 100644
--- a/Plausible.Billing.Ecto.Feature.html
+++ b/Plausible.Billing.Ecto.Feature.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.Ecto.FeatureList.html b/Plausible.Billing.Ecto.FeatureList.html
index 57ee5f010..cb288d54a 100644
--- a/Plausible.Billing.Ecto.FeatureList.html
+++ b/Plausible.Billing.Ecto.FeatureList.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.Ecto.Limit.html b/Plausible.Billing.Ecto.Limit.html
index dc286e4bc..ca7b536d0 100644
--- a/Plausible.Billing.Ecto.Limit.html
+++ b/Plausible.Billing.Ecto.Limit.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.EnterprisePlan.html b/Plausible.Billing.EnterprisePlan.html
index dd6a3a25d..dfa7bcef1 100644
--- a/Plausible.Billing.EnterprisePlan.html
+++ b/Plausible.Billing.EnterprisePlan.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.EnterprisePlanAdmin.html b/Plausible.Billing.EnterprisePlanAdmin.html
index e7a7158a3..c1f07e62e 100644
--- a/Plausible.Billing.EnterprisePlanAdmin.html
+++ b/Plausible.Billing.EnterprisePlanAdmin.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.Feature.html b/Plausible.Billing.Feature.html
index 51b63edb3..33fa6e9a0 100644
--- a/Plausible.Billing.Feature.html
+++ b/Plausible.Billing.Feature.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.PaddleApi.html b/Plausible.Billing.PaddleApi.html
index 244e703aa..8a129f923 100644
--- a/Plausible.Billing.PaddleApi.html
+++ b/Plausible.Billing.PaddleApi.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.Plans.html b/Plausible.Billing.Plans.html
index 0635fff18..50dece933 100644
--- a/Plausible.Billing.Plans.html
+++ b/Plausible.Billing.Plans.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.Quota.html b/Plausible.Billing.Quota.html
index 6832066b6..17ff27f17 100644
--- a/Plausible.Billing.Quota.html
+++ b/Plausible.Billing.Quota.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.SiteLocker.html b/Plausible.Billing.SiteLocker.html
index c69818653..41425e1c9 100644
--- a/Plausible.Billing.SiteLocker.html
+++ b/Plausible.Billing.SiteLocker.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.Subscription.Status.html b/Plausible.Billing.Subscription.Status.html
index 29b7d4050..f4384117d 100644
--- a/Plausible.Billing.Subscription.Status.html
+++ b/Plausible.Billing.Subscription.Status.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Billing.html b/Plausible.Billing.html
index e10ac08e0..fc95f2728 100644
--- a/Plausible.Billing.html
+++ b/Plausible.Billing.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.ChangesetHelpers.html b/Plausible.ChangesetHelpers.html
index f2b303831..b55865eba 100644
--- a/Plausible.ChangesetHelpers.html
+++ b/Plausible.ChangesetHelpers.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Cldr.AcceptLanguage.html b/Plausible.Cldr.AcceptLanguage.html
index 400a65701..584a80a48 100644
--- a/Plausible.Cldr.AcceptLanguage.html
+++ b/Plausible.Cldr.AcceptLanguage.html
@@ -13,7 +13,7 @@
-
+
@@ -119,7 +119,7 @@ Plausible
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 * 8 ALPHA * ( "-" 1 * 8 ALPHA ) ) | "*" )
Each language-range MAY be given an associated quality value which represents an
+ language - range = ( ( 1 * 8 ALPHA * ( "-" 1 * 8 ALPHA ) ) | "*" )
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."
@@ -232,54 +232,54 @@ a configured iex> Plausible.Cldr.AcceptLanguage . best_match ( "da;q=0.1,zh-TW;q=0.3" , TestBackend.Cldr )
- { :ok ,
- % Cldr.LanguageTag {
+iex> Plausible.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> Plausible.Cldr.AcceptLanguage . best_match ( "da;q=0.1,zh-TW;q=0.3" , TestBackend.Cldr )
- { :ok ,
- % Cldr.LanguageTag {
+ iex> Plausible.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> Plausible.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> Plausible.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> Plausible.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" } }
+ iex> Plausible.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" } }
@@ -340,95 +340,95 @@ wuth an error tuple for each invalid tag added at the end of the list.
-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 : [ ]
- } }
- ] }
+ transform : %{ } ,
+ language_variants : [ ]
+ } }
+ ] }
- iex> Plausible.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> Plausible.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> Plausible.Cldr.AcceptLanguage . parse ( "da,zh-TW;q=0.3,invalid_tag" )
- { :ok ,
- [
- { 1.0 ,
- % Cldr.LanguageTag {
+ iex> Plausible.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" } }
+ ] }
@@ -473,92 +473,92 @@ wuth an error tuple for each invalid tag added at the end of the list.
-iex> Plausible.Cldr.AcceptLanguage . parse! ( "da,zh-TW;q=0.3" )
- [
- { 1.0 ,
- % Cldr.LanguageTag {
+iex> Plausible.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 : [ ]
+ } }
+ ]
Plausible.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> Plausible.Cldr.AcceptLanguage . parse! ( "da,zh-TW;q=0.3,invalid_tag" )
- [
- { 1.0 ,
- % Cldr.LanguageTag {
+ iex> Plausible.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/Plausible.Cldr.Currency.html b/Plausible.Cldr.Currency.html
index c2136dd28..f0271673b 100644
--- a/Plausible.Cldr.Currency.html
+++ b/Plausible.Cldr.Currency.html
@@ -13,7 +13,7 @@
-
+
@@ -390,11 +390,11 @@ The default is :all
. See 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 ,
@@ -404,12 +404,12 @@ The default is :all
. See 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 ,
@@ -419,7 +419,7 @@ The default is :all
. See symbol : "SUR" ,
tender : true ,
to : nil
- } ,
+ } ,
...
} }
@@ -470,11 +470,11 @@ The default is :all
. See 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 ,
@@ -484,12 +484,12 @@ The default is :all
. See 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 ,
@@ -499,7 +499,7 @@ The default is :all
. See symbol : "SUR" ,
tender : true ,
to : nil
- } ,
+ } ,
...
}
@@ -557,13 +557,13 @@ or a
-iex> Plausible.Cldr.Currency . currency_for_code ( "AUD" )
- { :ok ,
- % Cldr.Currency {
+iex> Plausible.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" ,
@@ -571,15 +571,15 @@ or a rounding : 0 ,
symbol : "A$" ,
tender : true
- } }
+ } }
- iex> Plausible.Cldr.Currency . currency_for_code ( "THB" )
- { :ok ,
- % Cldr.Currency {
+ iex> Plausible.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" ,
@@ -587,7 +587,7 @@ or a rounding : 0 ,
symbol : "THB" ,
tender : true
- } }
+ } }
@@ -646,12 +646,12 @@ or a
-iex> Plausible.Cldr.Currency . currency_for_code! ( "AUD" )
- % Cldr.Currency {
+iex> Plausible.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" ,
@@ -659,14 +659,14 @@ or a rounding : 0 ,
symbol : "A$" ,
tender : true
- }
+ }
- iex> Plausible.Cldr.Currency . currency_for_code! ( "THB" )
- % Cldr.Currency {
+ iex> Plausible.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" ,
@@ -674,7 +674,7 @@ or a rounding : 0 ,
symbol : "THB" ,
tender : true
- }
+ }
@@ -715,11 +715,11 @@ or a
-iex> { :ok , locale } = Plausible.Cldr . validate_locale "en"
+iex> { :ok , locale } = Plausible.Cldr . validate_locale "en"
iex> Plausible.Cldr.Currency . currency_from_locale locale
:USD
- iex> { :ok , locale } = Plausible.Cldr . validate_locale "en-AU"
+ iex> { :ok , locale } = Plausible.Cldr . validate_locale "en-AU"
iex> Plausible.Cldr.Currency . currency_from_locale locale
:AUD
@@ -768,13 +768,13 @@ or a
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] }
+ }
+ }
@@ -834,8 +834,8 @@ The default is :all
. See MyApp.Cldr.Currency . currency_strings "en"
- => { :ok ,
- %{
+ => { :ok ,
+ %{
"mexican silver pesos" => :MXP ,
"sudanese dinar" => :SDD ,
"bad" => :BAD ,
@@ -845,7 +845,7 @@ The default is :all
. See "guyanaese dollars" => :GYD ,
"equatorial guinean ekwele" => :GQE ,
...
- } }
+ } }
}
@@ -1004,7 +1004,7 @@ mapping is returned for that territory.iex> Plausible.Cldr.Currency . current_territory_currencies ( )
+iex> Plausible.Cldr.Currency . current_territory_currencies ( )
@@ -1097,10 +1097,10 @@ currency codeiex> Plausible.Cldr.Currency . known_currency_code "AUD"
- { :ok , :AUD }
+ { :ok , :AUD }
iex> Plausible.Cldr.Currency . known_currency_code "GGG"
- { :error , { Cldr.UnknownCurrencyError , "The currency \" GGG \" is invalid" } }
+{ :error , { Cldr.UnknownCurrencyError , "The currency \" GGG \" is invalid" } }
@@ -1247,14 +1247,14 @@ such as 0.05
. Optional.iex> Plausible.Cldr.Currency . new ( :XAE , name : "Custom Name" , digits : 0 )
- { :ok ,
- % Cldr.Currency {
+iex> Plausible.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 ,
@@ -1264,11 +1264,11 @@ such as 0.05
. Optional.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> Plausible.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> Plausible.Cldr.Currency . new ( :XAE , name : "XAE" , digits : 0 )
+ { :error , { Cldr.CurrencyAlreadyDefined , "Currency :XAE is already defined." } }
@@ -1327,19 +1327,19 @@ default is Plaus
iex> Plausible.Cldr.Currency . pluralize 1 , :USD
- { :ok , "US dollar" }
+ { :ok , "US dollar" }
iex> Plausible.Cldr.Currency . pluralize 3 , :USD
- { :ok , "US dollars" }
+ { :ok , "US dollars" }
iex> Plausible.Cldr.Currency . pluralize 12 , :USD , locale : "zh"
- { :ok , "美元" }
+ { :ok , "美元" }
iex> Plausible.Cldr.Currency . pluralize 12 , :USD , locale : "fr"
- { :ok , "dollars des États-Unis" }
+ { :ok , "dollars des États-Unis" }
iex> Plausible.Cldr.Currency . pluralize 1 , :USD , locale : "fr"
- { :ok , "dollar des États-Unis" }
+{ :ok , "dollar des États-Unis" }
diff --git a/Plausible.Cldr.Locale.html b/Plausible.Cldr.Locale.html
index 48494fb1d..cafe0c001 100644
--- a/Plausible.Cldr.Locale.html
+++ b/Plausible.Cldr.Locale.html
@@ -13,7 +13,7 @@
-
+
@@ -297,16 +297,16 @@ this specific locale..iex> Plausible.Cldr.Locale . fallback_locale_names ( :"fr-CA" )
- { :ok , [ :"fr-CA" , :fr , :und ] }
+iex> Plausible.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> Plausible.Cldr.Locale . fallback_locale_names ( :nb )
- { :ok , [ :nb , :no , :und ] }
+ iex> Plausible.Cldr.Locale . fallback_locale_names ( :nb )
+ { :ok , [ :nb , :no , :und ] }
@@ -360,20 +360,20 @@ this specific locale.Plausible.Cldr.Locale . fallback_locales ( :"fr-CA" )
- => { :ok ,
- [ # Cldr.LanguageTag < fr - CA [ validated ] > , # Cldr.LanguageTag < fr [ validated ] > ,
- # Cldr.LanguageTag < und [ validated ] > ] }
+Plausible.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.
- Plausible.Cldr.Locale . fallback_locales ( :nb ) )
- => { :ok ,
- [ # Cldr.LanguageTag < nb [ validated ] > , # Cldr.LanguageTag < no [ validated ] > ,
- # Cldr.LanguageTag < und [ validated ] > ] }
+ Plausible.Cldr.Locale . fallback_locales ( :nb ) )
+ => { :ok ,
+ [ # Cldr.LanguageTag < nb [ validated ] > , # Cldr.LanguageTag < no [ validated ] > ,
+ # Cldr.LanguageTag < und [ validated ] > ] }
@@ -504,15 +504,15 @@ generic top-level domain names.iex> Plausible.Cldr.Locale . locale_from_host "a.b.com.au"
- Elixir.Plausible.Cldr . validate_locale ( :"en-AU" )
+ Elixir.Plausible.Cldr . validate_locale ( :"en-AU" )
- iex> Plausible.Cldr.Locale . locale_from_host ( "a.b.com.tv" )
- { :error ,
- { Cldr.UnknownLocaleError , "No locale was identified for territory \" tv \" " } }
+ iex> Plausible.Cldr.Locale . locale_from_host ( "a.b.com.tv" )
+ { :error ,
+ { Cldr.UnknownLocaleError , "No locale was identified for territory \" tv \" " } }
- iex> Plausible.Cldr.Locale . locale_from_host ( "a.b.com" )
- { :error ,
- { Cldr.UnknownLocaleError , "No locale was identified for territory \" com \" " } }
+iex> Plausible.Cldr.Locale . locale_from_host ( "a.b.com" )
+ { :error ,
+ { Cldr.UnknownLocaleError , "No locale was identified for territory \" com \" " } }
@@ -654,12 +654,12 @@ be a territory.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/Plausible.Cldr.Number.Cardinal.html b/Plausible.Cldr.Number.Cardinal.html
index 01cf7eab0..ca1363948 100644
--- a/Plausible.Cldr.Number.Cardinal.html
+++ b/Plausible.Cldr.Number.Cardinal.html
@@ -13,7 +13,7 @@
-
+
@@ -426,31 +426,31 @@ The valid substitution keys are :zero
, iex> Plausible.Cldr.Number.Cardinal . pluralize 1 , "en" , %{ one : "one" }
+iex> Plausible.Cldr.Number.Cardinal . pluralize 1 , "en" , %{ one : "one" }
"one"
- iex> Plausible.Cldr.Number.Cardinal . pluralize 2 , "en" , %{ one : "one" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize 2 , "en" , %{ one : "one" }
nil
- iex> Plausible.Cldr.Number.Cardinal . pluralize 2 , "en" , %{ one : "one" , two : "two" , other : "other" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize 2 , "en" , %{ one : "one" , two : "two" , other : "other" }
"other"
- iex> Plausible.Cldr.Number.Cardinal . pluralize 22 , "en" , %{ one : "one" , two : "two" , other : "other" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize 22 , "en" , %{ one : "one" , two : "two" , other : "other" }
"other"
- iex> Plausible.Cldr.Number.Cardinal . pluralize Decimal . new ( 1 ) , "en" , %{ one : "one" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize Decimal . new ( 1 ) , "en" , %{ one : "one" }
"one"
- iex> Plausible.Cldr.Number.Cardinal . pluralize Decimal . new ( 2 ) , "en" , %{ one : "one" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize Decimal . new ( 2 ) , "en" , %{ one : "one" }
nil
- iex> Plausible.Cldr.Number.Cardinal . pluralize Decimal . new ( 2 ) , "en" , %{ one : "one" , two : "two" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize Decimal . new ( 2 ) , "en" , %{ one : "one" , two : "two" }
nil
- iex> Plausible.Cldr.Number.Cardinal . pluralize 1 .. 10 , "ar" , %{ one : "one" , few : "few" , other : "other" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize 1 .. 10 , "ar" , %{ one : "one" , few : "few" , other : "other" }
"few"
- iex> Plausible.Cldr.Number.Cardinal . pluralize 1 .. 10 , "en" , %{ one : "one" , few : "few" , other : "other" }
+ iex> Plausible.Cldr.Number.Cardinal . pluralize 1 .. 10 , "en" , %{ one : "one" , few : "few" , other : "other" }
"other"
diff --git a/Plausible.Cldr.Number.Format.html b/Plausible.Cldr.Number.Format.html
index 866472ff5..c9232fc05 100644
--- a/Plausible.Cldr.Number.Format.html
+++ b/Plausible.Cldr.Number.Format.html
@@ -13,7 +13,7 @@
-
+
@@ -439,7 +439,7 @@ to precompile all the known formats at compile time.
-iex> Plausible.Cldr.Number.Format . default_grouping_for ( :en )
- { :ok , %{ fraction : %{ first : 0 , rest : 0 } , integer : %{ first : 3 , rest : 3 } } }
+iex> Plausible.Cldr.Number.Format . default_grouping_for ( :en )
+ { :ok , %{ fraction : %{ first : 0 , rest : 0 } , integer : %{ first : 3 , rest : 3 } } }
-iex> Plausible.Cldr.Number.Format . default_grouping_for! ( :en )
- %{ fraction : %{ first : 0 , rest : 0 } , integer : %{ first : 3 , rest : 3 } }
+iex> Plausible.Cldr.Number.Format . default_grouping_for! ( :en )
+ %{ fraction : %{ first : 0 , rest : 0 } , integer : %{ first : 3 , rest : 3 } }
@@ -772,8 +772,8 @@ is Plausible.Cld
Examples
-iex> Plausible.Cldr.Number.Format . minimum_grouping_digits_for ( "en" )
- { :ok , 1 }
+iex> Plausible.Cldr.Number.Format . minimum_grouping_digits_for ( "en" )
+ { :ok , 1 }
@@ -825,7 +825,7 @@ is Plausible.Cld
Examples
-iex> Plausible.Cldr.Number.Format . minimum_grouping_digits_for! ( "en" )
+iex> Plausible.Cldr.Number.Format . minimum_grouping_digits_for! ( "en" )
1
diff --git a/Plausible.Cldr.Number.Formatter.Decimal.html b/Plausible.Cldr.Number.Formatter.Decimal.html
index 693e6a861..a093e1f9e 100644
--- a/Plausible.Cldr.Number.Formatter.Decimal.html
+++ b/Plausible.Cldr.Number.Formatter.Decimal.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Cldr.Number.Ordinal.html b/Plausible.Cldr.Number.Ordinal.html
index 879e3793c..4f73ecefc 100644
--- a/Plausible.Cldr.Number.Ordinal.html
+++ b/Plausible.Cldr.Number.Ordinal.html
@@ -13,7 +13,7 @@
-
+
@@ -429,31 +429,31 @@ The valid substitution keys are :zero
, iex> Plausible.Cldr.Number.Ordinal . pluralize 1 , :en , %{ one : "one" }
+iex> Plausible.Cldr.Number.Ordinal . pluralize 1 , :en , %{ one : "one" }
"one"
- iex> Plausible.Cldr.Number.Ordinal . pluralize 2 , :en , %{ one : "one" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize 2 , :en , %{ one : "one" }
nil
- iex> Plausible.Cldr.Number.Ordinal . pluralize 2 , :en , %{ one : "one" , two : "two" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize 2 , :en , %{ one : "one" , two : "two" }
"two"
- iex> Plausible.Cldr.Number.Ordinal . pluralize 22 , :en , %{ one : "one" , two : "two" , other : "other" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize 22 , :en , %{ one : "one" , two : "two" , other : "other" }
"two"
- iex> Plausible.Cldr.Number.Ordinal . pluralize Decimal . new ( 1 ) , :en , %{ one : "one" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize Decimal . new ( 1 ) , :en , %{ one : "one" }
"one"
- iex> Plausible.Cldr.Number.Ordinal . pluralize Decimal . new ( 2 ) , :en , %{ one : "one" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize Decimal . new ( 2 ) , :en , %{ one : "one" }
nil
- iex> Plausible.Cldr.Number.Ordinal . pluralize Decimal . new ( 2 ) , :en , %{ one : "one" , two : "two" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize Decimal . new ( 2 ) , :en , %{ one : "one" , two : "two" }
"two"
- iex> Plausible.Cldr.Number.Ordinal . pluralize 1 .. 10 , "ar" , %{ one : "one" , few : "few" , other : "other" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize 1 .. 10 , "ar" , %{ one : "one" , few : "few" , other : "other" }
"other"
- iex> Plausible.Cldr.Number.Ordinal . pluralize 1 .. 10 , "en" , %{ one : "one" , few : "few" , other : "other" }
+ iex> Plausible.Cldr.Number.Ordinal . pluralize 1 .. 10 , "en" , %{ one : "one" , few : "few" , other : "other" }
"other"
diff --git a/Plausible.Cldr.Number.PluralRule.Range.html b/Plausible.Cldr.Number.PluralRule.Range.html
index f9c1ae857..685f5b35d 100644
--- a/Plausible.Cldr.Number.PluralRule.Range.html
+++ b/Plausible.Cldr.Number.PluralRule.Range.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Cldr.Number.Symbol.html b/Plausible.Cldr.Number.Symbol.html
index 746e3ba2d..197aeff8d 100644
--- a/Plausible.Cldr.Number.Symbol.html
+++ b/Plausible.Cldr.Number.Symbol.html
@@ -13,7 +13,7 @@
-
+
@@ -349,9 +349,9 @@ is Plausible.Cld
Example:
-iex> Plausible.Cldr.Number.Symbol . number_symbols_for ( :th )
- { :ok , %{
- latn : % Cldr.Number.Symbol {
+iex> Plausible.Cldr.Number.Symbol . number_symbols_for ( :th )
+ { :ok , %{
+ latn : % Cldr.Number.Symbol {
decimal : "." ,
exponential : "E" ,
group : "," ,
@@ -364,8 +364,8 @@ is Plausible.Cld
plus_sign : "+" ,
superscripting_exponent : "×" ,
time_separator : ":"
- } ,
- thai : % Cldr.Number.Symbol {
+ } ,
+ thai : % Cldr.Number.Symbol {
decimal : "." ,
exponential : "E" ,
group : "," ,
@@ -378,8 +378,8 @@ is Plausible.Cld
plus_sign : "+" ,
superscripting_exponent : "×" ,
time_separator : ":"
- }
- } }
+ }
+ } }
diff --git a/Plausible.Cldr.Number.System.html b/Plausible.Cldr.Number.System.html
index 3a24cbf36..3cedc7f0c 100644
--- a/Plausible.Cldr.Number.System.html
+++ b/Plausible.Cldr.Number.System.html
@@ -13,7 +13,7 @@
-
+
@@ -288,23 +288,23 @@ it is returned as is.iex> Plausible.Cldr.Number.System . number_system_for "th" , :latn
- { :ok , %{ digits : "0123456789" , type : :numeric } }
+ { :ok , %{ digits : "0123456789" , type : :numeric } }
iex> Plausible.Cldr.Number.System . number_system_for "en" , :default
- { :ok , %{ digits : "0123456789" , type : :numeric } }
+ { :ok , %{ digits : "0123456789" , type : :numeric } }
iex> Plausible.Cldr.Number.System . number_system_for "he" , :traditional
- { :ok , %{ rules : "hebrew" , type : :algorithmic } }
+ { :ok , %{ rules : "hebrew" , type : :algorithmic } }
iex> Plausible.Cldr.Number.System . number_system_for "en" , :native
- { :ok , %{ digits : "0123456789" , type : :numeric } }
+ { :ok , %{ digits : "0123456789" , type : :numeric } }
iex> Plausible.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}" }
+ }
@@ -480,13 +480,13 @@ or a
iex> Plausible.Cldr.Number.System . number_systems_for "en"
- { :ok , %{ default : :latn , native : :latn } }
+ { :ok , %{ default : :latn , native : :latn } }
iex> Plausible.Cldr.Number.System . number_systems_for "th"
- { :ok , %{ default : :latn , native : :thai } }
+ { :ok , %{ default : :latn , native : :thai } }
iex> Plausible.Cldr.Number.System . number_systems_for "zz"
- { :error , { Cldr.InvalidLanguageError , "The language \" zz \" is invalid" } }
+{ :error , { Cldr.InvalidLanguageError , "The language \" zz \" is invalid" } }
@@ -584,20 +584,20 @@ actual system name.ex > Plausible.Cldr.Number.System . system_name_from ( :default , "en" )
- { :ok , :latn }
+ex > Plausible.Cldr.Number.System . system_name_from ( :default , "en" )
+ { :ok , :latn }
- iex> Plausible.Cldr.Number.System . system_name_from ( "latn" , "en" )
- { :ok , :latn }
+ iex> Plausible.Cldr.Number.System . system_name_from ( "latn" , "en" )
+ { :ok , :latn }
- iex> Plausible.Cldr.Number.System . system_name_from ( :native , "en" )
- { :ok , :latn }
+ iex> Plausible.Cldr.Number.System . system_name_from ( :native , "en" )
+ { :ok , :latn }
- iex> Plausible.Cldr.Number.System . system_name_from ( :nope , "en" )
- {
+ iex> Plausible.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.
@@ -644,16 +644,16 @@ is recommended.iex> Plausible.Cldr.Number.System . to_system 123456 , :hebr
- { :ok , "קכ״ג׳תנ״ו" }
+ { :ok , "קכ״ג׳תנ״ו" }
iex> Plausible.Cldr.Number.System . to_system 123 , :hans
- { :ok , "一百二十三" }
+ { :ok , "一百二十三" }
iex> Plausible.Cldr.Number.System . to_system 123 , :hant
- { :ok , "一百二十三" }
+ { :ok , "一百二十三" }
iex> Plausible.Cldr.Number.System . to_system 123 , :hansfin
- { :ok , "壹佰贰拾叁" }
+{ :ok , "壹佰贰拾叁" }
diff --git a/Plausible.Cldr.Number.Transliterate.html b/Plausible.Cldr.Number.Transliterate.html
index db2954b22..0203344d9 100644
--- a/Plausible.Cldr.Number.Transliterate.html
+++ b/Plausible.Cldr.Number.Transliterate.html
@@ -13,7 +13,7 @@
-
+
@@ -133,12 +133,12 @@ digits between number systems. For example from :arabic to :latn. Since genera
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.
@@ -252,22 +252,22 @@ and
-iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" )
+iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" )
"123556"
- iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123,556.000" , "fr" , :default )
+ iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123,556.000" , "fr" , :default )
"123 556,000"
- iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" , "th" , :default )
+ iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" , "th" , :default )
"123556"
- iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" , "th" , "thai" )
+ iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" , "th" , "thai" )
"๑๒๓๕๕๖"
- iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" , "th" , :native )
+ iex> Plausible.Cldr.Number.Transliterate . transliterate ( "123556" , "th" , :native )
"๑๒๓๕๕๖"
- iex> Plausible.Cldr.Number.Transliterate . transliterate ( "Some number is: 123556" , "th" , "thai" )
+ iex> Plausible.Cldr.Number.Transliterate . transliterate ( "Some number is: 123556" , "th" , "thai" )
"Some number is: ๑๒๓๕๕๖"
diff --git a/Plausible.Cldr.Number.html b/Plausible.Cldr.Number.html
index f447fd2cc..4691f0661 100644
--- a/Plausible.Cldr.Number.html
+++ b/Plausible.Cldr.Number.html
@@ -13,7 +13,7 @@
-
+
@@ -412,19 +412,19 @@ using the Elixir standard library functions.
-iex> Plausible.Cldr.Number . parse ( "+1.000,34" , locale : "de" )
- { :ok , 1000.34 }
+iex> Plausible.Cldr.Number . parse ( "+1.000,34" , locale : "de" )
+ { :ok , 1000.34 }
- iex> Plausible.Cldr.Number . parse ( "-1_000_000.34" )
- { :ok , - 1000000.34 }
+ iex> Plausible.Cldr.Number . parse ( "-1_000_000.34" )
+ { :ok , - 1000000.34 }
- iex> Plausible.Cldr.Number . parse ( "1.000" , locale : "de" , number : :integer )
- { :ok , 1000 }
+ iex> Plausible.Cldr.Number . parse ( "1.000" , locale : "de" , number : :integer )
+ { :ok , 1000 }
- iex> Plausible.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> Plausible.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" } }
@@ -496,17 +496,17 @@ financial instruments.
-iex> Plausible.Cldr.Number . scan ( "100 US dollars" )
+iex> Plausible.Cldr.Number . scan ( "100 US dollars" )
...> |> Plausible.Cldr.Number . resolve_currencies
- [ 100 , :USD ]
+ [ 100 , :USD ]
- iex> Plausible.Cldr.Number . scan ( "100 eurosports" )
- ...> |> Plausible.Cldr.Number . resolve_currencies ( fuzzy : 0.75 )
- [ 100 , :EUR ]
+ iex> Plausible.Cldr.Number . scan ( "100 eurosports" )
+ ...> |> Plausible.Cldr.Number . resolve_currencies ( fuzzy : 0.75 )
+ [ 100 , :EUR ]
- iex> Plausible.Cldr.Number . scan ( "100 dollars des États-Unis" )
- ...> |> Plausible.Cldr.Number . resolve_currencies ( locale : "fr" )
- [ 100 , :USD ]
+ iex> Plausible.Cldr.Number . scan ( "100 dollars des États-Unis" )
+ ...> |> Plausible.Cldr.Number . resolve_currencies ( locale : "fr" )
+ [ 100 , :USD ]
@@ -583,19 +583,19 @@ financial instruments.iex> Plausible.Cldr.Number . resolve_currency ( "US dollars" )
- [ :USD ]
+iex> Plausible.Cldr.Number . resolve_currency ( "US dollars" )
+ [ :USD ]
- iex> Plausible.Cldr.Number . resolve_currency ( "100 eurosports" , fuzzy : 0.75 )
- [ :EUR ]
+ iex> Plausible.Cldr.Number . resolve_currency ( "100 eurosports" , fuzzy : 0.75 )
+ [ :EUR ]
- iex> Plausible.Cldr.Number . resolve_currency ( "dollars des États-Unis" , locale : "fr" )
- [ :USD ]
+ iex> Plausible.Cldr.Number . resolve_currency ( "dollars des États-Unis" , locale : "fr" )
+ [ :USD ]
- iex> Plausible.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> Plausible.Cldr.Number . resolve_currency ( "not a known currency" , locale : "fr" )
+ { :error ,
+ { Cldr.UnknownCurrencyError ,
+ "The currency \" not a known currency \" is unknown or not supported" } }
@@ -659,13 +659,13 @@ The default is options[:backend].get_locale()
iex> Plausible.Cldr.Number . resolve_per "11%"
- [ "11" , :percent ]
+ [ "11" , :percent ]
iex> Plausible.Cldr.Number . resolve_per "% of linguists"
- [ :percent , " of linguists" ]
+ [ :percent , " of linguists" ]
iex> Plausible.Cldr.Number . resolve_per "% of linguists %"
- [ :percent , " of linguists " , :percent ]
+[ :percent , " of linguists " , :percent ]
@@ -722,9 +722,9 @@ The default is options[:backend].get_locale()
Examples
-iex> Plausible.Cldr.Number . scan ( "100%" )
- ...> |> Plausible.Cldr.Number . resolve_pers ( )
- [ 100 , :percent ]
+iex> Plausible.Cldr.Number . scan ( "100%" )
+ ...> |> Plausible.Cldr.Number . resolve_pers ( )
+ [ 100 , :percent ]
@@ -784,20 +784,20 @@ and any options provided are passed to that function.iex> Plausible.Cldr.Number . scan ( "£1_000_000.34" )
- [ "£" , 1000000.34 ]
+iex> Plausible.Cldr.Number . scan ( "£1_000_000.34" )
+ [ "£" , 1000000.34 ]
- iex> Plausible.Cldr.Number . scan ( "I want £1_000_000 dollars" )
- [ "I want £" , 1000000 , " dollars" ]
+ iex> Plausible.Cldr.Number . scan ( "I want £1_000_000 dollars" )
+ [ "I want £" , 1000000 , " dollars" ]
- iex> Plausible.Cldr.Number . scan ( "The prize is 23" )
- [ "The prize is " , 23 ]
+ iex> Plausible.Cldr.Number . scan ( "The prize is 23" )
+ [ "The prize is " , 23 ]
- iex> Plausible.Cldr.Number . scan ( "The lottery number is 23 for the next draw" )
- [ "The lottery number is " , 23 , " for the next draw" ]
+ iex> Plausible.Cldr.Number . scan ( "The lottery number is 23 for the next draw" )
+ [ "The lottery number is " , 23 , " for the next draw" ]
- iex> Plausible.Cldr.Number . scan ( "The loss is -1.000 euros" , locale : "de" , number : :integer )
- [ "The loss is " , - 1000 , " euros" ]
+ iex> Plausible.Cldr.Number . scan ( "The loss is -1.000 euros" , locale : "de" , number : :integer )
+ [ "The loss is " , - 1000 , " euros" ]
@@ -844,7 +844,7 @@ options.iex> Plausible.Cldr.Number . to_approx_string 1234
- { :ok , "~1,234" }
+{ :ok , "~1,234" }
@@ -891,7 +891,7 @@ options.iex> Plausible.Cldr.Number . to_at_least_string 1234
- { :ok , "1,234+" }
+{ :ok , "1,234+" }
@@ -938,7 +938,7 @@ options.iex> Plausible.Cldr.Number . to_at_most_string 1234
- { :ok , "≤1,234" }
+{ :ok , "≤1,234" }
@@ -985,7 +985,7 @@ options.
iex> Plausible.Cldr.Number . to_range_string 1234 .. 5678
- { :ok , "1,234–5,678" }
+{ :ok , "1,234–5,678" }
@@ -1104,21 +1104,21 @@ extensions.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.
@@ -1139,80 +1139,80 @@ inserted in the final formatted number.
iex> Plausible.Cldr.Number . to_string 12345
- { :ok , "12,345" }
+ { :ok , "12,345" }
iex> Plausible.Cldr.Number . to_string 12345 , locale : "fr"
- { :ok , "12 345" }
+ { :ok , "12 345" }
iex> Plausible.Cldr.Number . to_string 1345.32 , currency : :EUR , locale : "es" , minimum_grouping_digits : 1
- { :ok , "1.345,32 €" }
+ { :ok , "1.345,32 €" }
iex> Plausible.Cldr.Number . to_string 1345.32 , currency : :EUR , locale : "es"
- { :ok , "1345,32 €" }
+ { :ok , "1345,32 €" }
iex> Plausible.Cldr.Number . to_string 12345 , locale : "fr" , currency : "USD"
- { :ok , "12 345,00 $US" }
+ { :ok , "12 345,00 $US" }
iex> Plausible.Cldr.Number . to_string 12345 , format : "#E0"
- { :ok , "1.2345E4" }
+ { :ok , "1.2345E4" }
iex> Plausible.Cldr.Number . to_string 12345 , format : :accounting , currency : "THB"
- { :ok , "THB 12,345.00" }
+ { :ok , "THB 12,345.00" }
iex> Plausible.Cldr.Number . to_string - 12345 , format : :accounting , currency : "THB"
- { :ok , "(THB 12,345.00)" }
+ { :ok , "(THB 12,345.00)" }
iex> Plausible.Cldr.Number . to_string 12345 , format : :accounting , currency : "THB" ,
...> locale : "th"
- { :ok , "฿12,345.00" }
+ { :ok , "฿12,345.00" }
iex> Plausible.Cldr.Number . to_string 12345 , format : :accounting , currency : "THB" ,
...> locale : "th" , number_system : :native
- { :ok , "฿๑๒,๓๔๕.๐๐" }
+ { :ok , "฿๑๒,๓๔๕.๐๐" }
iex> Plausible.Cldr.Number . to_string 1244.30 , format : :long
- { :ok , "1 thousand" }
+ { :ok , "1 thousand" }
iex> Plausible.Cldr.Number . to_string 1244.30 , format : :long , currency : "USD"
- { :ok , "1,244 US dollars" }
+ { :ok , "1,244 US dollars" }
iex> Plausible.Cldr.Number . to_string 1244.30 , format : :short
- { :ok , "1K" }
+ { :ok , "1K" }
iex> Plausible.Cldr.Number . to_string 1244.30 , format : :short , currency : "EUR"
- { :ok , "€1K" }
+ { :ok , "€1K" }
iex> Plausible.Cldr.Number . to_string 1234 , format : :spellout
- { :ok , "one thousand two hundred thirty-four" }
+ { :ok , "one thousand two hundred thirty-four" }
iex> Plausible.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> Plausible.Cldr.Number . to_string 1989 , format : :spellout_year
- { :ok , "nineteen eighty-nine" }
+ { :ok , "nineteen eighty-nine" }
iex> Plausible.Cldr.Number . to_string 123 , format : :ordinal
- { :ok , "123rd" }
+ { :ok , "123rd" }
iex> Plausible.Cldr.Number . to_string 123 , format : :roman
- { :ok , "CXXIII" }
+ { :ok , "CXXIII" }
iex> Plausible.Cldr.Number . to_string 123 , locale : "th-u-nu-thai"
- { :ok , "๑๒๓" }
+{ :ok , "๑๒๓" }
Errors
An error tuple {:error, reason}
will be returned if an error is detected.
-The two most likely causes of an error return are:
A format cannot be compiled. In this case the error tuple will look like: iex> Plausible.Cldr.Number . to_string ( 12345 , format : "0#" )
- { :error , { Cldr.FormatCompileError ,
- "Decimal format compiler: syntax error before: \" # \" " } }
The format style requested is not defined for the locale
and
+The two most likely causes of an error return are:A format cannot be compiled. In this case the error tuple will look like: iex> Plausible.Cldr.Number . to_string ( 12345 , format : "0#" )
+ { :error , { Cldr.FormatCompileError ,
+ "Decimal format compiler: syntax error before: \" # \" " } }
The format style requested is not defined for the locale
and
number_system
. This happens typically when the number system is
:algorithmic
rather than the more common :numeric
. In this case the error
-return looks like: iex> Plausible.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" } }
+return looks like: iex> Plausible.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" } }
@@ -1316,17 +1316,17 @@ returned by iex> Plausible.Cldr.Number . validate_number_system "en" , :latn
- { :ok , :latn }
+ { :ok , :latn }
iex> Plausible.Cldr.Number . validate_number_system "en" , :default
- { :ok , :latn }
+ { :ok , :latn }
iex> Plausible.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> Plausible.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/Plausible.Cldr.Rbnf.NumberSystem.html b/Plausible.Cldr.Rbnf.NumberSystem.html
index 83f680a2f..27808bf31 100644
--- a/Plausible.Cldr.Rbnf.NumberSystem.html
+++ b/Plausible.Cldr.Rbnf.NumberSystem.html
@@ -13,7 +13,7 @@
-
+
@@ -116,9 +116,9 @@ Plausible
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> Plausible.Cldr.Rbnf.NumberSystem . rule_sets ( :und )
- ...> |> Enum . sort ( )
- [
+defined in the Unicode CLDR data repository. Available rules are identified by:iex> Plausible.Cldr.Rbnf.NumberSystem . rule_sets ( :und )
+ ...> |> Enum . sort ( )
+ [
:armenian_lower ,
:armenian_upper ,
:cyrillic_lower ,
@@ -132,9 +132,9 @@ defined in the Unicode CLDR data repository. Available rules are identified by:
:roman_upper ,
:tamil ,
:zz_default
- ]
A rule can then be invoked on an available rule_set. For example
iex> Plausible.Cldr.Rbnf.NumberSystem . roman_upper ( 123 , :und )
- "CXXIII"
This particular call is equivalent to the call through the public API of:
iex> Plausible.Cldr.Number . to_string ( 123 , format : :roman )
- { :ok , "CXXIII" }
+ ]
A rule can then be invoked on an available rule_set. For example
iex> Plausible.Cldr.Rbnf.NumberSystem . roman_upper ( 123 , :und )
+ "CXXIII"
This particular call is equivalent to the call through the public API of:
iex> Plausible.Cldr.Number . to_string ( 123 , format : :roman )
+ { :ok , "CXXIII" }
diff --git a/Plausible.Cldr.Rbnf.Ordinal.html b/Plausible.Cldr.Rbnf.Ordinal.html
index c1cf094ef..40fd642bb 100644
--- a/Plausible.Cldr.Rbnf.Ordinal.html
+++ b/Plausible.Cldr.Rbnf.Ordinal.html
@@ -13,7 +13,7 @@
-
+
@@ -116,20 +116,20 @@ Plausible
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> Plausible.Cldr.Rbnf.Ordinal . rule_sets ( :en )
- [ :digits_ordinal ]
+defined in the Unicode CLDR data repository. Available rules are identified by:iex> Plausible.Cldr.Rbnf.Ordinal . rule_sets ( :en )
+ [ :digits_ordinal ]
- iex> Plausible.Cldr.Rbnf.Ordinal . rule_sets ( "fr" )
- ...> |> Enum . sort ( )
- [
+ iex> Plausible.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> Plausible.Cldr.Rbnf.Ordinal . digits_ordinal ( 123 , :en )
- "123rd"
This call is equivalent to the call through the public API of:
iex> Plausible.Cldr.Number . to_string ( 123 , format : :ordinal )
- { :ok , "123rd" }
+ ]
A rule can then be invoked on an available rule_set. For example
iex> Plausible.Cldr.Rbnf.Ordinal . digits_ordinal ( 123 , :en )
+ "123rd"
This call is equivalent to the call through the public API of:
iex> Plausible.Cldr.Number . to_string ( 123 , format : :ordinal )
+ { :ok , "123rd" }
diff --git a/Plausible.Cldr.Rbnf.Spellout.html b/Plausible.Cldr.Rbnf.Spellout.html
index 43c89059f..0d6865e58 100644
--- a/Plausible.Cldr.Rbnf.Spellout.html
+++ b/Plausible.Cldr.Rbnf.Spellout.html
@@ -13,7 +13,7 @@
-
+
@@ -116,9 +116,9 @@ Plausible
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> Plausible.Cldr.Rbnf.Spellout . rule_sets ( "en" )
- ...> |> Enum . sort ( )
- [
+defined in the Unicode CLDR data repository. Available rules are identified by:iex> Plausible.Cldr.Rbnf.Spellout . rule_sets ( "en" )
+ ...> |> Enum . sort ( )
+ [
:spellout_cardinal ,
:spellout_cardinal_verbose ,
:spellout_numbering ,
@@ -126,9 +126,9 @@ defined in the Unicode CLDR data repository. Available rules are identified by:
:spellout_numbering_year ,
:spellout_ordinal ,
:spellout_ordinal_verbose
- ]
A rule can then be invoked on an available rule_set. For example:
iex> Plausible.Cldr.Rbnf.Spellout . spellout_ordinal ( 123 , "en" )
- "one hundred twenty-third"
This call is equivalent to the call through the public API of:
iex> Plausible.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> Plausible.Cldr.Rbnf.Spellout . spellout_ordinal ( 123 , "en" )
+ "one hundred twenty-third"
This call is equivalent to the call through the public API of:
iex> Plausible.Cldr.Number . to_string ( 123 , format : :spellout )
+ { :ok , "one hundred twenty-three" }
diff --git a/Plausible.Cldr.html b/Plausible.Cldr.html
index 05a4fa0ae..c7cd54019 100644
--- a/Plausible.Cldr.html
+++ b/Plausible.Cldr.html
@@ -13,7 +13,7 @@
-
+
@@ -518,24 +518,24 @@ Functions
Example
-iex> Plausible.Cldr . default_locale ( )
- % Cldr.LanguageTag {
+iex> Plausible.Cldr . default_locale ( )
+ % Cldr.LanguageTag {
backend : Plausible.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 : [ ]
+ }
@@ -570,7 +570,7 @@ does not specify one and none can be inferred.iex> Plausible.Cldr . default_territory ( )
+iex> Plausible.Cldr . default_territory ( )
:"001"
@@ -633,13 +633,13 @@ is inserted between words or sentences. The valid options are
iex> Plausible.Cldr . ellipsis "And furthermore"
"And furthermore…"
- iex> Plausible.Cldr . ellipsis [ "And furthermore" , "there is much to be done" ] , locale : :ja
+ iex> Plausible.Cldr . ellipsis [ "And furthermore" , "there is much to be done" ] , locale : :ja
"And furthermore…there is much to be done"
iex> Plausible.Cldr . ellipsis "And furthermore" , format : :word
"And furthermore …"
- iex> Plausible.Cldr . ellipsis [ "And furthermore" , "there is much to be done" ] , locale : :ja , format : :word
+ iex> Plausible.Cldr . ellipsis [ "And furthermore" , "there is much to be done" ] , locale : :ja , format : :word
"And furthermore … there is much to be done"
@@ -675,23 +675,23 @@ take an optional locale parameter for which a locale is not supplied.
-iex> Plausible.Cldr . put_locale ( "pl" )
+iex> Plausible.Cldr . put_locale ( "pl" )
iex> Plausible.Cldr . get_locale
- % Cldr.LanguageTag {
+ % Cldr.LanguageTag {
backend : Elixir.Plausible.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 : [ ]
+ }
@@ -824,10 +824,10 @@ name is configured and available in Gettext.iex> Plausible.Cldr . known_gettext_locale_name? ( "en" )
+iex> Plausible.Cldr . known_gettext_locale_name? ( "en" )
true
- iex> Plausible.Cldr . known_gettext_locale_name? ( "!!" )
+ iex> Plausible.Cldr . known_gettext_locale_name? ( "!!" )
false
@@ -946,10 +946,10 @@ name is configured and available in Cldr.iex> Plausible.Cldr . known_locale_name? ( :en )
+iex> Plausible.Cldr . known_locale_name? ( :en )
true
- iex> Plausible.Cldr . known_locale_name? ( :"!!" )
+ iex> Plausible.Cldr . known_locale_name? ( :"!!" )
false
@@ -1004,7 +1004,7 @@ in this module or in
iex> Plausible.Cldr . known_number_system_types
- [ :default , :finance , :native , :traditional ]
+[ :default , :finance , :native , :traditional ]
@@ -1115,10 +1115,10 @@ rules based number formats (RBNF).iex> Plausible.Cldr . known_rbnf_locale_name? ( :en )
+iex> Plausible.Cldr . known_rbnf_locale_name? ( :en )
true
- iex> Plausible.Cldr . known_rbnf_locale_name? ( :"!!" )
+ iex> Plausible.Cldr . known_rbnf_locale_name? ( :"!!" )
false
@@ -1239,29 +1239,29 @@ of a language tag.
Examples
-iex> Plausible.Cldr . put_locale ( "en" )
- { :ok ,
- % Cldr.LanguageTag {
+iex> Plausible.Cldr . put_locale ( "en" )
+ { :ok ,
+ % Cldr.LanguageTag {
backend : Plausible.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> Plausible.Cldr . put_locale ( "invalid-locale!" )
- { :error , { Cldr.LanguageTag.ParseError ,
- "Expected a BCP47 language tag. Could not parse the remaining \" ! \" starting at position 15" } }
+ iex> Plausible.Cldr . put_locale ( "invalid-locale!" )
+ { :error , { Cldr.LanguageTag.ParseError ,
+ "Expected a BCP47 language tag. Could not parse the remaining \" ! \" starting at position 15" } }
@@ -1444,47 +1444,47 @@ of a language tag.iex> Plausible.Cldr . validate_locale ( :en )
- { :ok ,
- % Cldr.LanguageTag {
+iex> Plausible.Cldr . validate_locale ( :en )
+ { :ok ,
+ % Cldr.LanguageTag {
backend : Plausible.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> Plausible.Cldr . validate_locale Plausible.Cldr . default_locale ( )
- { :ok ,
- % Cldr.LanguageTag {
+ iex> Plausible.Cldr . validate_locale Plausible.Cldr . default_locale ( )
+ { :ok ,
+ % Cldr.LanguageTag {
backend : Plausible.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> Plausible.Cldr . validate_locale ( "zzz" )
- { :error , { Cldr.InvalidLanguageError , "The language \" zzz \" is invalid" } }
+ iex> Plausible.Cldr . validate_locale ( "zzz" )
+ { :error , { Cldr.InvalidLanguageError , "The language \" zzz \" is invalid" } }
@@ -1555,22 +1555,22 @@ of a language tag.iex> Plausible.Cldr . validate_number_system_type :default
- { :ok , :default }
+ { :ok , :default }
iex> Plausible.Cldr . validate_number_system_type :traditional
- { :ok , :traditional }
+ { :ok , :traditional }
iex> Plausible.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> Plausible.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/Plausible.ClickhouseEventV2.html b/Plausible.ClickhouseEventV2.html
index 6223d1e3f..c78b83c28 100644
--- a/Plausible.ClickhouseEventV2.html
+++ b/Plausible.ClickhouseEventV2.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.ClickhouseRepo.html b/Plausible.ClickhouseRepo.html
index 17e484263..679f60286 100644
--- a/Plausible.ClickhouseRepo.html
+++ b/Plausible.ClickhouseRepo.html
@@ -13,7 +13,7 @@
-
+
@@ -816,23 +816,23 @@ pool to disconnect within the given interval.See
-Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
+Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
- defmodule Demo do
+ defmodule Demo do
use Ecto.Schema
@primary_key false
- schema "ecto_ch_demo" do
+ schema "ecto_ch_demo" do
field :a , Ch , type : "UInt64"
field :b , :string
- end
- end
+ end
+ end
- rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
- { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
+ rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
+ { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
# schemaless
- { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
+ { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
diff --git a/Plausible.ClickhouseSessionV2.BoolUInt8.html b/Plausible.ClickhouseSessionV2.BoolUInt8.html
index e784618b5..42013944f 100644
--- a/Plausible.ClickhouseSessionV2.BoolUInt8.html
+++ b/Plausible.ClickhouseSessionV2.BoolUInt8.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.ClickhouseSessionV2.html b/Plausible.ClickhouseSessionV2.html
index e825448e1..81540e450 100644
--- a/Plausible.ClickhouseSessionV2.html
+++ b/Plausible.ClickhouseSessionV2.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.ConfigHelpers.html b/Plausible.ConfigHelpers.html
index 7e044ca84..3d661e2f2 100644
--- a/Plausible.ConfigHelpers.html
+++ b/Plausible.ConfigHelpers.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.DataCase.html b/Plausible.DataCase.html
index a3323e831..b275137fe 100644
--- a/Plausible.DataCase.html
+++ b/Plausible.DataCase.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.DataMigration.NumericIDs.html b/Plausible.DataMigration.NumericIDs.html
index d8f5bab5b..80d3c6a6f 100644
--- a/Plausible.DataMigration.NumericIDs.html
+++ b/Plausible.DataMigration.NumericIDs.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.DataMigration.Repo.html b/Plausible.DataMigration.Repo.html
index 78f852a82..daf22e89a 100644
--- a/Plausible.DataMigration.Repo.html
+++ b/Plausible.DataMigration.Repo.html
@@ -13,7 +13,7 @@
-
+
@@ -1123,23 +1123,23 @@ pool to disconnect within the given interval.See
-Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
+Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
- defmodule Demo do
+ defmodule Demo do
use Ecto.Schema
@primary_key false
- schema "ecto_ch_demo" do
+ schema "ecto_ch_demo" do
field :a , Ch , type : "UInt64"
field :b , :string
- end
- end
+ end
+ end
- rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
- { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
+ rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
+ { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
# schemaless
- { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
+ { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
diff --git a/Plausible.DataMigration.html b/Plausible.DataMigration.html
index e1ec9f011..c26df09b0 100644
--- a/Plausible.DataMigration.html
+++ b/Plausible.DataMigration.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.DebugReplayInfo.html b/Plausible.DebugReplayInfo.html
index 8c3d5a709..4bcc94261 100644
--- a/Plausible.DebugReplayInfo.html
+++ b/Plausible.DebugReplayInfo.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ecto.EventName.html b/Plausible.Ecto.EventName.html
index c47597b41..2044ec9c3 100644
--- a/Plausible.Ecto.EventName.html
+++ b/Plausible.Ecto.EventName.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Event.WriteBuffer.html b/Plausible.Event.WriteBuffer.html
deleted file mode 100644
index 8684bbf0f..000000000
--- a/Plausible.Event.WriteBuffer.html
+++ /dev/null
@@ -1,332 +0,0 @@
-
-
-
-
-
-
-
-
-
- Plausible.Event.WriteBuffer — Plausible v0.0.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Settings
-
-
-
-
-
- View Source
-
-
- Plausible.Event.WriteBuffer
- (Plausible v0.0.1)
-
-
-
-
-
-
-
-
-
- Summary
-
-
-
-
- Functions
-
-
-
-
-
-
Returns a specification to start this module under a supervisor.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Functions
-
-
-
-
-
-
-
-
-
-Returns a specification to start this module under a supervisor.
See Supervisor
.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Plausible.Factory.html b/Plausible.Factory.html
index f9cd36af6..721bd403c 100644
--- a/Plausible.Factory.html
+++ b/Plausible.Factory.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Funnel.Const.html b/Plausible.Funnel.Const.html
index 45b9bb20a..f681623d1 100644
--- a/Plausible.Funnel.Const.html
+++ b/Plausible.Funnel.Const.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Funnel.Step.html b/Plausible.Funnel.Step.html
index 936677653..6448415b4 100644
--- a/Plausible.Funnel.Step.html
+++ b/Plausible.Funnel.Step.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Funnel.html b/Plausible.Funnel.html
index b76611716..1caf08a6f 100644
--- a/Plausible.Funnel.html
+++ b/Plausible.Funnel.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Funnels.html b/Plausible.Funnels.html
index 602f7aace..73b64532b 100644
--- a/Plausible.Funnels.html
+++ b/Plausible.Funnels.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Geo.html b/Plausible.Geo.html
index f9b3a2f9f..68e43f88e 100644
--- a/Plausible.Geo.html
+++ b/Plausible.Geo.html
@@ -13,7 +13,7 @@
-
+
@@ -231,8 +231,8 @@ Functions
Examples
- In the case of a DB-IP database:
iex> database_type ( )
- "DBIP-City-Lite"
In the case of a MaxMind database:
iex> database_type ( )
+ In the case of a DB-IP database:
iex> database_type ( )
+ "DBIP-City-Lite"
In the case of a MaxMind database:
iex> database_type ( )
"GeoLite2-City"
@@ -272,8 +272,8 @@ asynchronously.
- Loading from a local file:
iex> load_db ( path : "/etc/plausible/dbip-city.mmdb" )
- :ok
Downloading a MaxMind DB (this license key is no longer active):
iex> load_db ( license_key : "LNpsJCCKPis6XvBP" , edition : "GeoLite2-City" , async : true )
+ Loading from a local file:
iex> load_db ( path : "/etc/plausible/dbip-city.mmdb" )
+ :ok
Downloading a MaxMind DB (this license key is no longer active):
iex> load_db ( license_key : "LNpsJCCKPis6XvBP" , edition : "GeoLite2-City" , async : true )
:ok
@@ -302,21 +302,21 @@ asynchronously.
-iex> lookup ( "8.7.6.5" )
- %{
- "city" => %{
+iex> lookup ( "8.7.6.5" )
+ %{
+ "city" => %{
"geoname_id" => 5349755 ,
- "names" => %{
+ "names" => %{
"de" => "Fontana" ,
"en" => "Fontana" ,
"ja" => "フォンタナ" ,
"ru" => "Фонтана"
- }
- } ,
- "continent" => %{
+ }
+ } ,
+ "continent" => %{
"code" => "NA" ,
"geoname_id" => 6255149 ,
- "names" => %{
+ "names" => %{
"de" => "Nordamerika" ,
"en" => "North America" ,
"es" => "Norteamérica" ,
@@ -325,12 +325,12 @@ asynchronously."pt-BR" => "América do Norte" ,
"ru" => "Северная Америка" ,
"zh-CN" => "北美洲"
- }
- } ,
- "country" => %{
+ }
+ } ,
+ "country" => %{
"geoname_id" => 6252001 ,
"iso_code" => "US" ,
- "names" => %{
+ "names" => %{
"de" => "Vereinigte Staaten" ,
"en" => "United States" ,
"es" => "Estados Unidos" ,
@@ -339,20 +339,20 @@ asynchronously."pt-BR" => "EUA" ,
"ru" => "США" ,
"zh-CN" => "美国"
- }
- } ,
- "location" => %{
+ }
+ } ,
+ "location" => %{
"accuracy_radius" => 50 ,
"latitude" => 34.1211 ,
"longitude" => - 117.4362 ,
"metro_code" => 803 ,
"time_zone" => "America/Los_Angeles"
- } ,
- "postal" => %{ "code" => "92336" } ,
- "registered_country" => %{
+ } ,
+ "postal" => %{ "code" => "92336" } ,
+ "registered_country" => %{
"geoname_id" => 6252001 ,
"iso_code" => "US" ,
- "names" => %{
+ "names" => %{
"de" => "Vereinigte Staaten" ,
"en" => "United States" ,
"es" => "Estados Unidos" ,
@@ -361,13 +361,13 @@ asynchronously."pt-BR" => "EUA" ,
"ru" => "США" ,
"zh-CN" => "美国"
- }
- } ,
- "subdivisions" => [
- %{
+ }
+ } ,
+ "subdivisions" => [
+ %{
"geoname_id" => 5332921 ,
"iso_code" => "CA" ,
- "names" => %{
+ "names" => %{
"de" => "Kalifornien" ,
"en" => "California" ,
"es" => "California" ,
@@ -376,10 +376,10 @@ asynchronously."pt-BR" => "Califórnia" ,
"ru" => "Калифорния" ,
"zh-CN" => "加州"
- }
- }
- ]
- }
+ }
+ }
+ ]
+ }
diff --git a/Plausible.Goal.Revenue.html b/Plausible.Goal.Revenue.html
index ee75420ff..2277557c4 100644
--- a/Plausible.Goal.Revenue.html
+++ b/Plausible.Goal.Revenue.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Goal.html b/Plausible.Goal.html
index 24e3103ba..d4e587793 100644
--- a/Plausible.Goal.html
+++ b/Plausible.Goal.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Goals.html b/Plausible.Goals.html
index a94281be9..9289b9e27 100644
--- a/Plausible.Goals.html
+++ b/Plausible.Goals.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Google.Api.Mock.html b/Plausible.Google.Api.Mock.html
index 1ac327d6c..736b6fec0 100644
--- a/Plausible.Google.Api.Mock.html
+++ b/Plausible.Google.Api.Mock.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Google.Api.html b/Plausible.Google.Api.html
index 032f3381b..0897bee55 100644
--- a/Plausible.Google.Api.html
+++ b/Plausible.Google.Api.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Google.Buffer.html b/Plausible.Google.Buffer.html
index 62eb02598..6a00ba8c2 100644
--- a/Plausible.Google.Buffer.html
+++ b/Plausible.Google.Buffer.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Google.HTTP.html b/Plausible.Google.HTTP.html
index 201758743..559f356a6 100644
--- a/Plausible.Google.HTTP.html
+++ b/Plausible.Google.HTTP.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Google.ReportRequest.html b/Plausible.Google.ReportRequest.html
index 79d0b222e..ad4a71f04 100644
--- a/Plausible.Google.ReportRequest.html
+++ b/Plausible.Google.ReportRequest.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.HTTPClient.Interface.html b/Plausible.HTTPClient.Interface.html
index e6719f735..f475a5808 100644
--- a/Plausible.HTTPClient.Interface.html
+++ b/Plausible.HTTPClient.Interface.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.HTTPClient.Non200Error.html b/Plausible.HTTPClient.Non200Error.html
index 2dddba6b4..06c4d05ac 100644
--- a/Plausible.HTTPClient.Non200Error.html
+++ b/Plausible.HTTPClient.Non200Error.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.HTTPClient.html b/Plausible.HTTPClient.html
index fdd798764..3e7056c78 100644
--- a/Plausible.HTTPClient.html
+++ b/Plausible.HTTPClient.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Helpers.JSON.html b/Plausible.Helpers.JSON.html
index 36d1adb3a..13d04d515 100644
--- a/Plausible.Helpers.JSON.html
+++ b/Plausible.Helpers.JSON.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.ImportDeletionRepo.html b/Plausible.ImportDeletionRepo.html
index 1cd1fa4c9..e74f7c6be 100644
--- a/Plausible.ImportDeletionRepo.html
+++ b/Plausible.ImportDeletionRepo.html
@@ -13,7 +13,7 @@
-
+
@@ -1114,23 +1114,23 @@ pool to disconnect within the given interval.See
-Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
+Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
- defmodule Demo do
+ defmodule Demo do
use Ecto.Schema
@primary_key false
- schema "ecto_ch_demo" do
+ schema "ecto_ch_demo" do
field :a , Ch , type : "UInt64"
field :b , :string
- end
- end
+ end
+ end
- rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
- { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
+ rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
+ { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
# schemaless
- { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
+ { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
diff --git a/Plausible.Imported.html b/Plausible.Imported.html
index eb432adf6..94d4fe44b 100644
--- a/Plausible.Imported.html
+++ b/Plausible.Imported.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.IngestRepo.html b/Plausible.IngestRepo.html
index ef39e73e5..4d94f9568 100644
--- a/Plausible.IngestRepo.html
+++ b/Plausible.IngestRepo.html
@@ -13,7 +13,7 @@
-
+
@@ -1114,23 +1114,23 @@ pool to disconnect within the given interval.
See
-Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
+Similar to insert_all/2
but with the following differences:
accepts rows as streams or lists sends rows as a chunked request doesn't autogenerate ids or does any other preprocessing Example:
Repo . query! ( "create table ecto_ch_demo(a UInt64, b String) engine Null" )
- defmodule Demo do
+ defmodule Demo do
use Ecto.Schema
@primary_key false
- schema "ecto_ch_demo" do
+ schema "ecto_ch_demo" do
field :a , Ch , type : "UInt64"
field :b , :string
- end
- end
+ end
+ end
- rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
- { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
+ rows = Stream . map ( 1 .. 100_000 , fn i -> %{ a : i , b : to_string ( i ) } end )
+ { 100_000 , nil } = Repo . insert_stream ( Demo , rows )
# schemaless
- { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
+ { 100_000 , nil } = Repo . insert_stream ( "ecto_ch_demo" , rows , types : [ a : Ch.Types . u64 ( ) , b : :string ] )
diff --git a/Plausible.Ingestion.Counters.Buffer.html b/Plausible.Ingestion.Counters.Buffer.html
index 6e15e86df..32081ddbc 100644
--- a/Plausible.Ingestion.Counters.Buffer.html
+++ b/Plausible.Ingestion.Counters.Buffer.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ingestion.Counters.Record.html b/Plausible.Ingestion.Counters.Record.html
index 0019ecaf8..39443f487 100644
--- a/Plausible.Ingestion.Counters.Record.html
+++ b/Plausible.Ingestion.Counters.Record.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ingestion.Counters.TelemetryHandler.html b/Plausible.Ingestion.Counters.TelemetryHandler.html
index d3e7b13ff..a874b28a7 100644
--- a/Plausible.Ingestion.Counters.TelemetryHandler.html
+++ b/Plausible.Ingestion.Counters.TelemetryHandler.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ingestion.Counters.html b/Plausible.Ingestion.Counters.html
index ea81e3a2b..358210dc2 100644
--- a/Plausible.Ingestion.Counters.html
+++ b/Plausible.Ingestion.Counters.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ingestion.Event.Revenue.html b/Plausible.Ingestion.Event.Revenue.html
index e15fa07b2..d8683e48d 100644
--- a/Plausible.Ingestion.Event.Revenue.html
+++ b/Plausible.Ingestion.Event.Revenue.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ingestion.Event.html b/Plausible.Ingestion.Event.html
index 40efa91f1..ad0cdd50a 100644
--- a/Plausible.Ingestion.Event.html
+++ b/Plausible.Ingestion.Event.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ingestion.Request.Revenue.html b/Plausible.Ingestion.Request.Revenue.html
index 7a3752fa9..0e173f88a 100644
--- a/Plausible.Ingestion.Request.Revenue.html
+++ b/Plausible.Ingestion.Request.Revenue.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Ingestion.Request.html b/Plausible.Ingestion.Request.html
index 1a7c2f692..e78cb2d1f 100644
--- a/Plausible.Ingestion.Request.html
+++ b/Plausible.Ingestion.Request.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Mailer.html b/Plausible.Mailer.html
index 8167653ed..f545ad611 100644
--- a/Plausible.Mailer.html
+++ b/Plausible.Mailer.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.OpenTelemetry.Sampler.html b/Plausible.OpenTelemetry.Sampler.html
index 0d4af9ed1..0d94c6f37 100644
--- a/Plausible.OpenTelemetry.Sampler.html
+++ b/Plausible.OpenTelemetry.Sampler.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.PaddleApi.Mock.html b/Plausible.PaddleApi.Mock.html
index fafd90e79..b915fa6b3 100644
--- a/Plausible.PaddleApi.Mock.html
+++ b/Plausible.PaddleApi.Mock.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Pagination.html b/Plausible.Pagination.html
index 37a3ff51c..44c0a9927 100644
--- a/Plausible.Pagination.html
+++ b/Plausible.Pagination.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Plugins.API.CustomProps.html b/Plausible.Plugins.API.CustomProps.html
index d01ff8e28..603dbaa94 100644
--- a/Plausible.Plugins.API.CustomProps.html
+++ b/Plausible.Plugins.API.CustomProps.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Plugins.API.Goals.html b/Plausible.Plugins.API.Goals.html
index b86576f2c..1404e0731 100644
--- a/Plausible.Plugins.API.Goals.html
+++ b/Plausible.Plugins.API.Goals.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Plugins.API.SharedLinks.html b/Plausible.Plugins.API.SharedLinks.html
index f1a8afa2b..974859838 100644
--- a/Plausible.Plugins.API.SharedLinks.html
+++ b/Plausible.Plugins.API.SharedLinks.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Plugins.API.Token.html b/Plausible.Plugins.API.Token.html
index de32f1e0f..3ed00cb71 100644
--- a/Plausible.Plugins.API.Token.html
+++ b/Plausible.Plugins.API.Token.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Plugins.API.Tokens.html b/Plausible.Plugins.API.Tokens.html
index 4c5585e7c..316540307 100644
--- a/Plausible.Plugins.API.Tokens.html
+++ b/Plausible.Plugins.API.Tokens.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.PromEx.Plugins.PlausibleMetrics.html b/Plausible.PromEx.Plugins.PlausibleMetrics.html
index 3d47b4a27..8276bb265 100644
--- a/Plausible.PromEx.Plugins.PlausibleMetrics.html
+++ b/Plausible.PromEx.Plugins.PlausibleMetrics.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.PromEx.html b/Plausible.PromEx.html
index 0b34f72f8..79c1cfd9a 100644
--- a/Plausible.PromEx.html
+++ b/Plausible.PromEx.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Props.html b/Plausible.Props.html
index a31359258..44d8c491e 100644
--- a/Plausible.Props.html
+++ b/Plausible.Props.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Purge.html b/Plausible.Purge.html
index dbf107a77..1964a8716 100644
--- a/Plausible.Purge.html
+++ b/Plausible.Purge.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.RateLimit.html b/Plausible.RateLimit.html
index ccb3d08c8..f71505a13 100644
--- a/Plausible.RateLimit.html
+++ b/Plausible.RateLimit.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Release.html b/Plausible.Release.html
index 59d87b508..ace32ff98 100644
--- a/Plausible.Release.html
+++ b/Plausible.Release.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Repo.html b/Plausible.Repo.html
index 0ca2bffde..3526e3398 100644
--- a/Plausible.Repo.html
+++ b/Plausible.Repo.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Sentry.Client.html b/Plausible.Sentry.Client.html
index 186e41619..3c9a8134d 100644
--- a/Plausible.Sentry.Client.html
+++ b/Plausible.Sentry.Client.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.SentryFilter.html b/Plausible.SentryFilter.html
index ea0cfb3d8..61f4c286f 100644
--- a/Plausible.SentryFilter.html
+++ b/Plausible.SentryFilter.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Session.CacheStore.html b/Plausible.Session.CacheStore.html
index 5474f8c45..a9c7d96f8 100644
--- a/Plausible.Session.CacheStore.html
+++ b/Plausible.Session.CacheStore.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Session.Salts.html b/Plausible.Session.Salts.html
index dbf9b23be..552f2e403 100644
--- a/Plausible.Session.Salts.html
+++ b/Plausible.Session.Salts.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Session.WriteBuffer.html b/Plausible.Session.WriteBuffer.html
deleted file mode 100644
index e49d79f6f..000000000
--- a/Plausible.Session.WriteBuffer.html
+++ /dev/null
@@ -1,332 +0,0 @@
-
-
-
-
-
-
-
-
-
- Plausible.Session.WriteBuffer — Plausible v0.0.1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Settings
-
-
-
-
-
- View Source
-
-
- Plausible.Session.WriteBuffer
- (Plausible v0.0.1)
-
-
-
-
-
-
-
-
-
- Summary
-
-
-
-
- Functions
-
-
-
-
-
-
Returns a specification to start this module under a supervisor.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-Functions
-
-
-
-
-
-
-
-
-
-Returns a specification to start this module under a supervisor.
See Supervisor
.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/Plausible.Site.Cache.Warmer.All.html b/Plausible.Site.Cache.Warmer.All.html
index 65eb6fff7..e6ad567fd 100644
--- a/Plausible.Site.Cache.Warmer.All.html
+++ b/Plausible.Site.Cache.Warmer.All.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Cache.Warmer.RecentlyUpdated.html b/Plausible.Site.Cache.Warmer.RecentlyUpdated.html
index d4d219a07..62b9dd19c 100644
--- a/Plausible.Site.Cache.Warmer.RecentlyUpdated.html
+++ b/Plausible.Site.Cache.Warmer.RecentlyUpdated.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Cache.Warmer.html b/Plausible.Site.Cache.Warmer.html
index 3b47ad188..216d2b32f 100644
--- a/Plausible.Site.Cache.Warmer.html
+++ b/Plausible.Site.Cache.Warmer.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Cache.html b/Plausible.Site.Cache.html
index 2f82a9658..089fa5ef6 100644
--- a/Plausible.Site.Cache.html
+++ b/Plausible.Site.Cache.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Domain.html b/Plausible.Site.Domain.html
index 45ae6ed0a..303a6791f 100644
--- a/Plausible.Site.Domain.html
+++ b/Plausible.Site.Domain.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.GateKeeper.html b/Plausible.Site.GateKeeper.html
index ee54bce92..7d84d9f54 100644
--- a/Plausible.Site.GateKeeper.html
+++ b/Plausible.Site.GateKeeper.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.GoogleAuth.html b/Plausible.Site.GoogleAuth.html
index 982686871..04bdd898d 100644
--- a/Plausible.Site.GoogleAuth.html
+++ b/Plausible.Site.GoogleAuth.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.ImportedData.html b/Plausible.Site.ImportedData.html
index ce9f53d8f..878c7a425 100644
--- a/Plausible.Site.ImportedData.html
+++ b/Plausible.Site.ImportedData.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Membership.html b/Plausible.Site.Membership.html
index 800de96e5..e26cdb70f 100644
--- a/Plausible.Site.Membership.html
+++ b/Plausible.Site.Membership.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Memberships.AcceptInvitation.html b/Plausible.Site.Memberships.AcceptInvitation.html
index b26f10a04..264dfe1c4 100644
--- a/Plausible.Site.Memberships.AcceptInvitation.html
+++ b/Plausible.Site.Memberships.AcceptInvitation.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Memberships.CreateInvitation.html b/Plausible.Site.Memberships.CreateInvitation.html
index bacf42cf2..4209ffcc6 100644
--- a/Plausible.Site.Memberships.CreateInvitation.html
+++ b/Plausible.Site.Memberships.CreateInvitation.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Memberships.RejectInvitation.html b/Plausible.Site.Memberships.RejectInvitation.html
index c2d446e4d..6521c68b4 100644
--- a/Plausible.Site.Memberships.RejectInvitation.html
+++ b/Plausible.Site.Memberships.RejectInvitation.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Memberships.RemoveInvitation.html b/Plausible.Site.Memberships.RemoveInvitation.html
index 40f45b229..844d60192 100644
--- a/Plausible.Site.Memberships.RemoveInvitation.html
+++ b/Plausible.Site.Memberships.RemoveInvitation.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Memberships.html b/Plausible.Site.Memberships.html
index 3fee892ab..90695b6cb 100644
--- a/Plausible.Site.Memberships.html
+++ b/Plausible.Site.Memberships.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.MonthlyReport.html b/Plausible.Site.MonthlyReport.html
index d41bbc167..ceaffeaa0 100644
--- a/Plausible.Site.MonthlyReport.html
+++ b/Plausible.Site.MonthlyReport.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.Removal.html b/Plausible.Site.Removal.html
index 84573998b..737a29a30 100644
--- a/Plausible.Site.Removal.html
+++ b/Plausible.Site.Removal.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.SharedLink.html b/Plausible.Site.SharedLink.html
index 130878af2..9ed50a5c5 100644
--- a/Plausible.Site.SharedLink.html
+++ b/Plausible.Site.SharedLink.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.SpikeNotification.html b/Plausible.Site.SpikeNotification.html
index 1b7df0592..5db3cfd1a 100644
--- a/Plausible.Site.SpikeNotification.html
+++ b/Plausible.Site.SpikeNotification.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.UserPreference.html b/Plausible.Site.UserPreference.html
index 1c2e7e948..871d1e3fa 100644
--- a/Plausible.Site.UserPreference.html
+++ b/Plausible.Site.UserPreference.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.WeeklyReport.html b/Plausible.Site.WeeklyReport.html
index b5526e8f4..e7293e89b 100644
--- a/Plausible.Site.WeeklyReport.html
+++ b/Plausible.Site.WeeklyReport.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Site.html b/Plausible.Site.html
index 010b8eebb..a91dc54a9 100644
--- a/Plausible.Site.html
+++ b/Plausible.Site.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.SiteAdmin.html b/Plausible.SiteAdmin.html
index 78265841c..afc9ca49c 100644
--- a/Plausible.SiteAdmin.html
+++ b/Plausible.SiteAdmin.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Sites.html b/Plausible.Sites.html
index f7b4ae34e..c7ba85104 100644
--- a/Plausible.Sites.html
+++ b/Plausible.Sites.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Aggregate.html b/Plausible.Stats.Aggregate.html
index b38e59c4f..8564d2ffe 100644
--- a/Plausible.Stats.Aggregate.html
+++ b/Plausible.Stats.Aggregate.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Base.html b/Plausible.Stats.Base.html
index abbc1c22f..93d35986a 100644
--- a/Plausible.Stats.Base.html
+++ b/Plausible.Stats.Base.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Breakdown.html b/Plausible.Stats.Breakdown.html
index 162b913f7..0d939f431 100644
--- a/Plausible.Stats.Breakdown.html
+++ b/Plausible.Stats.Breakdown.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Clickhouse.html b/Plausible.Stats.Clickhouse.html
index 5bab7e145..285aa709e 100644
--- a/Plausible.Stats.Clickhouse.html
+++ b/Plausible.Stats.Clickhouse.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Compare.html b/Plausible.Stats.Compare.html
index 34fccbf02..3f2c9428a 100644
--- a/Plausible.Stats.Compare.html
+++ b/Plausible.Stats.Compare.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Comparisons.html b/Plausible.Stats.Comparisons.html
index 78e273b88..60a266d89 100644
--- a/Plausible.Stats.Comparisons.html
+++ b/Plausible.Stats.Comparisons.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.CurrentVisitors.html b/Plausible.Stats.CurrentVisitors.html
index 8c8e1aec4..a8ce61a34 100644
--- a/Plausible.Stats.CurrentVisitors.html
+++ b/Plausible.Stats.CurrentVisitors.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.CustomProps.html b/Plausible.Stats.CustomProps.html
index 4dd42f54b..132371916 100644
--- a/Plausible.Stats.CustomProps.html
+++ b/Plausible.Stats.CustomProps.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.FilterParser.html b/Plausible.Stats.FilterParser.html
index 7c8a43a92..541303a85 100644
--- a/Plausible.Stats.FilterParser.html
+++ b/Plausible.Stats.FilterParser.html
@@ -13,7 +13,7 @@
-
+
@@ -178,14 +178,14 @@ Functions
Examples:
-
iex> FilterParser . parse_filters ( "{ \" page \" : \" /blog/** \" }" )
- %{ "page" => "/blog/**" }
+iex> FilterParser . parse_filters ( "{ \" page \" : \" /blog/** \" }" )
+ %{ "page" => "/blog/**" }
- iex> FilterParser . parse_filters ( "visit:browser!=Chrome" )
- %{ "visit:browser" => { :is_not , "Chrome" } }
+ iex> FilterParser . parse_filters ( "visit:browser!=Chrome" )
+ %{ "visit:browser" => { :is_not , "Chrome" } }
- iex> FilterParser . parse_filters ( nil )
- %{ }
+ iex> FilterParser . parse_filters ( nil )
+ %{ }
diff --git a/Plausible.Stats.FilterSuggestions.html b/Plausible.Stats.FilterSuggestions.html
index 1a00dda88..51b72b55a 100644
--- a/Plausible.Stats.FilterSuggestions.html
+++ b/Plausible.Stats.FilterSuggestions.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Filters.html b/Plausible.Stats.Filters.html
index e02ed15cb..d17ec19f0 100644
--- a/Plausible.Stats.Filters.html
+++ b/Plausible.Stats.Filters.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Fragments.html b/Plausible.Stats.Fragments.html
index fdd608957..89b8aea9c 100644
--- a/Plausible.Stats.Fragments.html
+++ b/Plausible.Stats.Fragments.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Funnel.html b/Plausible.Stats.Funnel.html
index bee6aeb3f..29d8733cf 100644
--- a/Plausible.Stats.Funnel.html
+++ b/Plausible.Stats.Funnel.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Goal.Revenue.html b/Plausible.Stats.Goal.Revenue.html
index 8d7d728f2..5a4ec1ade 100644
--- a/Plausible.Stats.Goal.Revenue.html
+++ b/Plausible.Stats.Goal.Revenue.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Imported.html b/Plausible.Stats.Imported.html
index 6252f8bde..3b0298d24 100644
--- a/Plausible.Stats.Imported.html
+++ b/Plausible.Stats.Imported.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Interval.html b/Plausible.Stats.Interval.html
index 325dd900d..e7cd725d0 100644
--- a/Plausible.Stats.Interval.html
+++ b/Plausible.Stats.Interval.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Props.html b/Plausible.Stats.Props.html
index 5411a7290..985485a9e 100644
--- a/Plausible.Stats.Props.html
+++ b/Plausible.Stats.Props.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Query.html b/Plausible.Stats.Query.html
index e4d2c8023..a34e91040 100644
--- a/Plausible.Stats.Query.html
+++ b/Plausible.Stats.Query.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Sampling.html b/Plausible.Stats.Sampling.html
index cd1fa33f5..da37ab039 100644
--- a/Plausible.Stats.Sampling.html
+++ b/Plausible.Stats.Sampling.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Timeseries.html b/Plausible.Stats.Timeseries.html
index 8775cf57d..04f1564ab 100644
--- a/Plausible.Stats.Timeseries.html
+++ b/Plausible.Stats.Timeseries.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.Util.html b/Plausible.Stats.Util.html
index 1f8bcbda2..808419a04 100644
--- a/Plausible.Stats.Util.html
+++ b/Plausible.Stats.Util.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Stats.html b/Plausible.Stats.html
index 141ed1b37..1a21aa7c9 100644
--- a/Plausible.Stats.html
+++ b/Plausible.Stats.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Test.Support.HTML.html b/Plausible.Test.Support.HTML.html
index bcab6a948..4a425ae7f 100644
--- a/Plausible.Test.Support.HTML.html
+++ b/Plausible.Test.Support.HTML.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Test.Support.HTTPMocker.html b/Plausible.Test.Support.HTTPMocker.html
index 59835f154..616b5ad12 100644
--- a/Plausible.Test.Support.HTTPMocker.html
+++ b/Plausible.Test.Support.HTTPMocker.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.TestUtils.html b/Plausible.TestUtils.html
index eedaa5393..4e74033b3 100644
--- a/Plausible.TestUtils.html
+++ b/Plausible.TestUtils.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Themes.html b/Plausible.Themes.html
index 1bbec53f4..c1d756f69 100644
--- a/Plausible.Themes.html
+++ b/Plausible.Themes.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Timezones.html b/Plausible.Timezones.html
index 4e35ed3a7..abf8995ac 100644
--- a/Plausible.Timezones.html
+++ b/Plausible.Timezones.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Users.html b/Plausible.Users.html
index 81e26d785..5d49a478f 100644
--- a/Plausible.Users.html
+++ b/Plausible.Users.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.CheckUsage.html b/Plausible.Workers.CheckUsage.html
index f4f386351..26fe54deb 100644
--- a/Plausible.Workers.CheckUsage.html
+++ b/Plausible.Workers.CheckUsage.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.CleanInvitations.html b/Plausible.Workers.CleanInvitations.html
index 33e7b51ba..899f44c60 100644
--- a/Plausible.Workers.CleanInvitations.html
+++ b/Plausible.Workers.CleanInvitations.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.ExpireDomainChangeTransitions.html b/Plausible.Workers.ExpireDomainChangeTransitions.html
index cb24c6ac5..a3135cd2d 100644
--- a/Plausible.Workers.ExpireDomainChangeTransitions.html
+++ b/Plausible.Workers.ExpireDomainChangeTransitions.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.ImportGoogleAnalytics.html b/Plausible.Workers.ImportGoogleAnalytics.html
index c868f60e2..5c786014b 100644
--- a/Plausible.Workers.ImportGoogleAnalytics.html
+++ b/Plausible.Workers.ImportGoogleAnalytics.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.LockSites.html b/Plausible.Workers.LockSites.html
index 7e9be7337..e502947d2 100644
--- a/Plausible.Workers.LockSites.html
+++ b/Plausible.Workers.LockSites.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.NotifyAnnualRenewal.html b/Plausible.Workers.NotifyAnnualRenewal.html
index 145718328..cecfcb3aa 100644
--- a/Plausible.Workers.NotifyAnnualRenewal.html
+++ b/Plausible.Workers.NotifyAnnualRenewal.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.RotateSalts.html b/Plausible.Workers.RotateSalts.html
index 1346b8772..5eb2b9065 100644
--- a/Plausible.Workers.RotateSalts.html
+++ b/Plausible.Workers.RotateSalts.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.ScheduleEmailReports.html b/Plausible.Workers.ScheduleEmailReports.html
index 0af039d4d..4fc3e0ca5 100644
--- a/Plausible.Workers.ScheduleEmailReports.html
+++ b/Plausible.Workers.ScheduleEmailReports.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.SendCheckStatsEmails.html b/Plausible.Workers.SendCheckStatsEmails.html
index 34d27096b..a138b716b 100644
--- a/Plausible.Workers.SendCheckStatsEmails.html
+++ b/Plausible.Workers.SendCheckStatsEmails.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.SendEmailReport.html b/Plausible.Workers.SendEmailReport.html
index da0e87a75..de5eff929 100644
--- a/Plausible.Workers.SendEmailReport.html
+++ b/Plausible.Workers.SendEmailReport.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.SendSiteSetupEmails.html b/Plausible.Workers.SendSiteSetupEmails.html
index b412d1e0b..5ace6e360 100644
--- a/Plausible.Workers.SendSiteSetupEmails.html
+++ b/Plausible.Workers.SendSiteSetupEmails.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.SendTrialNotifications.html b/Plausible.Workers.SendTrialNotifications.html
index 4707fe70e..b979bc6df 100644
--- a/Plausible.Workers.SendTrialNotifications.html
+++ b/Plausible.Workers.SendTrialNotifications.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.Workers.SpikeNotifier.html b/Plausible.Workers.SpikeNotifier.html
index b8a584052..987e63f39 100644
--- a/Plausible.Workers.SpikeNotifier.html
+++ b/Plausible.Workers.SpikeNotifier.html
@@ -13,7 +13,7 @@
-
+
diff --git a/Plausible.epub b/Plausible.epub
index 7753dd16da3a9608912225e150df14f934938757..78e014d02893e4210ef43f3429d344a116c72a5b 100644
GIT binary patch
delta 124903
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