envs

package
v0.91.1 Latest Latest
Warning

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

Go to latest
Published: Jun 11, 2020 License: AGPL-3.0 Imports: 14 Imported by: 35

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

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 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 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

func ToGoDateFormat

func ToGoDateFormat(format string, mode FormattingMode) (string, error)

ToGoDateFormat converts the passed in format to a GoLang format string.

If mode is DateOnlyFormatting or DateTimeFormatting, the following sequences are accepted:

`YY`        - last two digits of year 0-99
`YYYY`      - four digits of your 0000-9999
`M`         - month 1-12
`MM`        - month 01-12
`D`         - day of month, 1-31
`DD`        - day of month, zero padded 0-31

If mode is TimeOnlyFormatting or DateTimeFormatting, the following sequences are accepted:

`h`         - hour of the day 1-12
`hh`        - hour of the day 01-12
`tt`        - twenty four hour of the day 00-23
`m`         - minute 0-59
`mm`        - minute 00-59
`s`         - second 0-59
`ss`        - second 00-59
`fff`       - milliseconds
`ffffff`    - microseconds
`fffffffff` - nanoseconds
`aa`        - am or pm
`AA`        - AM or PM
`Z`         - hour and minute offset from UTC, or Z for UTC
`ZZZ`       - hour and minute offset from UTC

ignored chars: ' ', ':', ',', 'T', '-', '_', '/'

Types

type Country

type Country string

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

func DeriveCountryFromTel added in v0.77.0

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
	DefaultLanguage() Language
	AllowedLanguages() []Language
	DefaultCountry() Country
	NumberFormat() *NumberFormat
	RedactionPolicy() RedactionPolicy
	MaxValueLength() int

	DefaultLocale() Locale

	// 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 added in v0.54.0

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) WithDefaultLanguage

func (b *EnvironmentBuilder) WithDefaultLanguage(defaultLanguage Language) *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 FormattingMode

type FormattingMode int

FormattingMode describe a mode of formatting dates, times, datetimes

const (
	DateOnlyFormatting FormattingMode = iota
	TimeOnlyFormatting
	DateTimeFormatting
)

supported formatting modes

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 added in v0.89.0

type Locale struct {
	Language Language
	Country  Country
}

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

func NewLocale added in v0.89.0

func NewLocale(language Language, country Country) Locale

NewLocale creates a new locale

func (Locale) ToISO639_2 added in v0.89.0

func (l Locale) ToISO639_2() string

ToISO639_2 returns the ISO 639-2 code

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