envs

package
v1.7.9 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 18, 2022 License: AGPL-3.0 Imports: 13 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DateFormatYearMonthDay DateFormat = "YYYY-MM-DD"
	DateFormatMonthDayYear DateFormat = "MM-DD-YYYY"
	DateFormatDayMonthYear DateFormat = "DD-MM-YYYY"

	TimeFormatHourMinute           TimeFormat = "tt:mm"
	TimeFormatHourMinuteAmPm       TimeFormat = "h:mm aa"
	TimeFormatHourMinuteSecond     TimeFormat = "tt:mm:ss"
	TimeFormatHourMinuteSecondAmPm TimeFormat = "h:mm:ss aa"
)

standard date and time formats

View Source
const (
	LocationPathSeparator = ">"
)

Variables

View Source
var DefaultNumberFormat = &NumberFormat{DecimalSymbol: `.`, DigitGroupingSymbol: `,`}

DefaultNumberFormat is the default number formatting, e.g. 1,234.567

View Source
var NilCountry = Country("")

NilCountry represents our nil, or unknown country

View Source
var NilLanguage = Language("")

NilLanguage represents our nil, or unknown language

View Source
var NilLocale = Locale{}
View Source
var ZeroDateTime = time.Time{}

ZeroDateTime is our uninitialized datetime value

Functions

func DateFromString

func DateFromString(env Environment, str string) (dates.Date, error)

DateFromString returns a date constructed from the passed in string, or an error if we are unable to extract one

func DateTimeFromString

func DateTimeFromString(env Environment, str string, fillTime bool) (time.Time, error)

DateTimeFromString returns a datetime constructed from the passed in string, or an error if we are unable to extract one

func IsPossibleLocationPath

func IsPossibleLocationPath(str string) bool

IsPossibleLocationPath returns whether the given string could be a location path

func TimeFromString

func TimeFromString(str string) (dates.TimeOfDay, error)

TimeFromString returns a time of day constructed from the passed in string, or an error if we are unable to extract one

Types

type Country

type Country string

Country is a ISO 3166-1 alpha-2 country code

func DeriveCountryFromTel

func DeriveCountryFromTel(number string) Country

DeriveCountryFromTel attempts to derive a country code (e.g. RW) from a phone number

type DateFormat

type DateFormat string

DateFormat a date format string

func (DateFormat) String

func (df DateFormat) String() string

type Environment

type Environment interface {
	DateFormat() DateFormat
	TimeFormat() TimeFormat
	Timezone() *time.Location
	AllowedLanguages() []Language
	DefaultCountry() Country
	NumberFormat() *NumberFormat
	RedactionPolicy() RedactionPolicy
	MaxValueLength() int

	DefaultLanguage() Language
	DefaultLocale() Locale

	LocationResolver() LocationResolver

	// Convenience method to get the current time in the env timezone
	Now() time.Time

	Equal(Environment) bool
}

Environment defines the environment that the Excellent function is running in, this includes the timezone the user is in as well as the preferred date and time formats.

func ReadEnvironment

func ReadEnvironment(data json.RawMessage) (Environment, error)

ReadEnvironment reads an environment from the given JSON

type EnvironmentBuilder

type EnvironmentBuilder struct {
	// contains filtered or unexported fields
}

EnvironmentBuilder is a builder for environments

func NewBuilder

func NewBuilder() *EnvironmentBuilder

NewEnvironmentBuilder creates a new environment builder

func (*EnvironmentBuilder) Build

func (b *EnvironmentBuilder) Build() Environment

Build returns the final environment

func (*EnvironmentBuilder) WithAllowedLanguages

func (b *EnvironmentBuilder) WithAllowedLanguages(allowedLanguages []Language) *EnvironmentBuilder

func (*EnvironmentBuilder) WithDateFormat

func (b *EnvironmentBuilder) WithDateFormat(dateFormat DateFormat) *EnvironmentBuilder

WithDateFormat sets the date format

func (*EnvironmentBuilder) WithDefaultCountry

func (b *EnvironmentBuilder) WithDefaultCountry(defaultCountry Country) *EnvironmentBuilder

func (*EnvironmentBuilder) WithMaxValueLength

func (b *EnvironmentBuilder) WithMaxValueLength(maxValueLength int) *EnvironmentBuilder

func (*EnvironmentBuilder) WithNumberFormat

func (b *EnvironmentBuilder) WithNumberFormat(numberFormat *NumberFormat) *EnvironmentBuilder

func (*EnvironmentBuilder) WithRedactionPolicy

func (b *EnvironmentBuilder) WithRedactionPolicy(redactionPolicy RedactionPolicy) *EnvironmentBuilder

func (*EnvironmentBuilder) WithTimeFormat

func (b *EnvironmentBuilder) WithTimeFormat(timeFormat TimeFormat) *EnvironmentBuilder

WithTimeFormat sets the time format

func (*EnvironmentBuilder) WithTimezone

func (b *EnvironmentBuilder) WithTimezone(timezone *time.Location) *EnvironmentBuilder

type Language

type Language string

Language is our internal representation of a language

func ParseLanguage

func ParseLanguage(lang string) (Language, error)

ParseLanguage returns a new Language for the passed in language string, or an error if not found

type Locale

type Locale struct {
	Language Language
	Country  Country
}

Locale is the combination of a language and country, e.g. US English, Brazilian Portuguese

func NewLocale

func NewLocale(language Language, country Country) Locale

NewLocale creates a new locale

func (Locale) ToBCP47

func (l Locale) ToBCP47() string

ToBCP47 returns the BCP47 code, e.g. en-US, pt, pt-BR

type Location

type Location struct {
	// contains filtered or unexported fields
}

Location represents a single Location

func NewLocation

func NewLocation(level LocationLevel, name string) *Location

NewLocation creates a new location object

func (*Location) Aliases

func (l *Location) Aliases() []string

Aliases gets the aliases of this location

func (*Location) Children

func (l *Location) Children() []*Location

Children gets the children of this location

func (*Location) Level

func (l *Location) Level() LocationLevel

Level gets the level of this location

func (*Location) Name

func (l *Location) Name() string

Name gets the name of this location

func (*Location) Parent

func (l *Location) Parent() *Location

Parent gets the parent of this location

func (*Location) Path

func (l *Location) Path() LocationPath

Path gets the full path of this location

func (*Location) String

func (l *Location) String() string

type LocationHierarchy

type LocationHierarchy struct {
	// contains filtered or unexported fields
}

LocationHierarchy is a hierarical tree of locations

func NewLocationHierarchy

func NewLocationHierarchy(root *Location, numLevels int) *LocationHierarchy

NewLocationHierarchy cretes a new location hierarchy

func ReadLocationHierarchy

func ReadLocationHierarchy(data json.RawMessage) (*LocationHierarchy, error)

ReadLocationHierarchy reads a location hierarchy from the given JSON

func (*LocationHierarchy) FindByName

func (h *LocationHierarchy) FindByName(name string, level LocationLevel, parent *Location) []*Location

FindByName looks for all locations in the hierarchy with the given level and name or alias

func (*LocationHierarchy) FindByPath

func (h *LocationHierarchy) FindByPath(path LocationPath) *Location

FindByPath looks for a location in the hierarchy with the given path

func (*LocationHierarchy) Root

func (h *LocationHierarchy) Root() *Location

Root gets the root location of this hierarchy (typically a country)

func (*LocationHierarchy) UnmarshalJSON

func (h *LocationHierarchy) UnmarshalJSON(data []byte) error

type LocationLevel

type LocationLevel int

LocationLevel is a numeric level, e.g. 0 = country, 1 = state

type LocationPath

type LocationPath string

LocationPath is a location described by a path Country > State ...

func NewLocationPath

func NewLocationPath(parts ...string) LocationPath

func (LocationPath) Name

func (p LocationPath) Name() string

Name returns the name of the location referenced

func (LocationPath) Normalize

func (p LocationPath) Normalize() LocationPath

Normalize normalizes this location path

type LocationResolver

type LocationResolver interface {
	FindLocations(string, LocationLevel, *Location) []*Location
	FindLocationsFuzzy(string, LocationLevel, *Location) []*Location
	LookupLocation(LocationPath) *Location
}

LocationResolver is used to resolve locations from names or hierarchical paths

type NumberFormat

type NumberFormat struct {
	DecimalSymbol       string `json:"decimal_symbol"`
	DigitGroupingSymbol string `json:"digit_grouping_symbol"`
}

NumberFormat describes how numbers should be parsed and formatted

type RedactionPolicy

type RedactionPolicy string
const (
	RedactionPolicyNone RedactionPolicy = "none"
	RedactionPolicyURNs RedactionPolicy = "urns"
)

type TimeFormat

type TimeFormat string

TimeFormat a time format string

func (TimeFormat) String

func (tf TimeFormat) String() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL