module

RailsSettings::F

Class methods

d(v : Nil | Bool | Int32 | Int64 | Float64 | BigDecimal | String | Symbol) : FieldValue

Коэрсинг литералов из макроса field (default:, options). Оверлоады не пересекаются: скаляры / массивы / хеши.

d(v : Array(A)) : FieldValue forall A
d(v : Hash(K, V)) : FieldValue forall K, V
default(v : Nil | Bool | Int32 | Int64 | Float64 | BigDecimal | String | Symbol | Proc(FieldValue)) : DefaultArg
default(v : Array(A)) : DefaultArg forall A
default(v : Hash(K, V)) : DefaultArg forall K, V
lenient_to_f(s : String) : Float64
lenient_to_i(s : String) : Int64
number_prefix(s : String) : String
to_d(v : FieldValue) : BigDecimal
to_f(v : FieldValue) : Float64
to_i(v : FieldValue) : Int64

Ленивые преобразования в духе Ruby String#to_i / #to_f / .to_d: разбирают числовой префикс, при неудаче дают 0.

v(x : FieldValue) : FieldValue

identity для proc-дефолтов: -> { F.v(1 + 1) } ⇒ Proc(FieldValue) (.as нужен: иначе proc-литерал инферится как Proc(Int32) и не матчится на Proc(FieldValue))