lib/unit_measurements/measurement.rb in unit_measurements-2.6.2 vs lib/unit_measurements/measurement.rb in unit_measurements-3.0.0

- old
+ new

@@ -30,18 +30,22 @@ conversion_factor = (unit.conversion_factor / target_unit.conversion_factor) self.class.new((quantity * conversion_factor), target_unit) end alias_method :to, :convert_to + alias_method :in, :convert_to + alias_method :as, :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! + alias_method :in!, :convert_to! + alias_method :as!, :convert_to! def inspect(dump: false) return super() if dump to_s @@ -62,11 +66,11 @@ class << self extend Forwardable def unit_group - raise "`Measurement` does not have a `unit_group` object. You cannot directly use `Measurement`. Instead, build a new unit group by calling `UnitMeasurements.build`." + raise BaseError, "`Measurement` does not have a `unit_group` object. You cannot directly use `Measurement`. Instead, build a new unit group by calling `UnitMeasurements.build`." end def_delegators :unit_group, :units, :unit_names, :unit_with_name_and_aliases, :unit_names_with_aliases, :unit_for, :unit_for!, :defined?, :unit_or_alias?, :[] @@ -74,9 +78,13 @@ def parse(input) input = Normalizer.normalize(input) source, target = input.match(CONVERSION_STRING_REGEXP)&.captures target ? _parse(source).convert_to(target) : _parse(source) + end + + def name + to_s.split("::").last.underscore.humanize.downcase end private def _parse(string)