Class: Lite::Measurements::Length
- Includes:
- Helpers::ConversionHelper, Helpers::ShiftHelper
- Defined in:
- lib/lite/measurements/length.rb
Constant Summary collapse
- CONVERTER =
0.0254
- IMPERICAL_UNITS =
{ inches: 1.0, feet: 12.0, yards: 36.0, miles: 63_360.0, nautical_miles: 72_913.386 }.freeze
- METRIC_UNITS =
{ micrometers: 0.000001, millimeters: 0.001, centimeters: 0.01, decimeters: 0.1, meters: 1.0, dekameters: 10.0, hectometers: 100.0, kilometers: 1_000.0 }.freeze
Instance Attribute Summary
Attributes inherited from Base
Instance Method Summary collapse
-
#convert(from:, to:) ⇒ Object
rubocop:disable Metrics/MethodLength, Layout/LineLength.
Methods inherited from Base
Constructor Details
This class inherits a constructor from Lite::Measurements::Base
Instance Method Details
#convert(from:, to:) ⇒ Object
rubocop:disable Metrics/MethodLength, Layout/LineLength
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/lite/measurements/length.rb', line 31 def convert(from:, to:) assert_all_valid_keys!(from, to, all_keys) if equal_units?(from, to) amount elsif shift_between_imperical_units?(from, to) shift_units(amount, type: IMPERICAL_UNITS, from: from, to: to) elsif shift_between_metric_units?(from, to) shift_units(amount, type: METRIC_UNITS, from: from, to: to) elsif convert_to_metric_units?(from, to) convert_to_metric_units(amount, from: from, convert_to: :inches, convert_from: :meters, to: to) else convert_to_imperical_units(amount, from: from, convert_to: :meters, convert_from: :inches, to: to) end end |