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)