lib/unit_measurements/measurement.rb in unit_measurements-1.5.0 vs lib/unit_measurements/measurement.rb in unit_measurements-1.5.1

- old
+ new

@@ -24,17 +24,19 @@ target_unit = unit_from_unit_or_name!(target_unit) return self if target_unit == unit conversion_factor = (unit.conversion_factor / target_unit.conversion_factor) + self.class.new((quantity * conversion_factor), target_unit) end alias_method :to, :convert_to def convert_to!(target_unit) measurement = convert_to(target_unit) @quantity, @unit = measurement.quantity, measurement.unit + self end alias_method :to!, :convert_to! def inspect(dump: false) @@ -68,17 +70,19 @@ :unit_or_alias?, :[] def parse(input) input = Normalizer.normalize(input) source, target = input.match(CONVERSION_STRING_REGEXP)&.captures + target ? _parse(source).convert_to(target) : _parse(source) end private def _parse(string) quantity, unit = Parser.parse(string) + new(quantity, unit) end end private @@ -90,9 +94,10 @@ when Integer Rational(quantity) when String quantity = Normalizer.normalize(quantity) quantity, _ = Parser.parse(quantity) + quantity else quantity end end