Module: Foxtail::Function
- Defined in:
- lib/foxtail/function.rb,
lib/foxtail/function/value.rb,
lib/foxtail/function/number.rb,
lib/foxtail/function/datetime.rb
Overview
Built-in formatting functions for FTL Uses ICU4X for number and datetime formatting
Defined Under Namespace
Classes: DateTime, Number, Value
Class Method Summary collapse
-
.defaults ⇒ Hash{String => #call}
Default functions available to all bundles.
-
.unwrap_options(options) ⇒ Hash
Unwrap option values that may be Function::Value instances.
-
.unwrap_value(value) ⇒ Array(Object, Hash)
Unwrap a Function::Value to get raw value and options.
Class Method Details
.defaults ⇒ Hash{String => #call}
Default functions available to all bundles
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/foxtail/function.rb', line 9 def self.defaults { "NUMBER" => ->(value, **) { # Unwrap value and merge options from nested function calls (like fluent.js) raw_value, = unwrap_value(value) = () Number[raw_value, .merge()] }, "DATETIME" => ->(value, **) { # Unwrap value and merge options from nested function calls (like fluent.js) raw_value, = unwrap_value(value) = () DateTime[raw_value, .merge()] } } end |
.unwrap_options(options) ⇒ Hash
Unwrap option values that may be Function::Value instances
40 41 42 43 44 |
# File 'lib/foxtail/function.rb', line 40 def self.() .transform_values do |v| v.is_a?(Value) ? v.value : v end end |
.unwrap_value(value) ⇒ Array(Object, Hash)
Unwrap a Function::Value to get raw value and options
29 30 31 32 33 34 35 |
# File 'lib/foxtail/function.rb', line 29 def self.unwrap_value(value) if value.is_a?(Value) [value.value, value.] else [value, {}] end end |