Module: Fino::Settings::Numeric
Defined Under Namespace
Modules: Unit
Instance Method Summary collapse
Instance Method Details
#unit ⇒ Object
115 116 117 118 119 |
# File 'lib/fino/settings/numeric.rb', line 115 def unit return unless (identifier = definition.[:unit]) @unit ||= Unit.for(identifier) end |
#value(**context) ⇒ Object
103 104 105 106 107 108 109 110 111 112 113 |
# File 'lib/fino/settings/numeric.rb', line 103 def value(**context) result = super return result unless (target_unit_identifier = context[:unit]) raise ArgumentError, "No unit defined for this setting" unless unit target_unit = Unit.for(target_unit_identifier) raise ArgumentError, "Cannot convert #{unit.name} to #{target_unit.name}" unless unit.convertible_to?(target_unit) result * unit.base_factor / target_unit.base_factor end |