module Eng::ExtensionClass

Public Instance Methods

send(name, *args) click to toggle source
Calls superclass method
# File lib/eng_unit.rb, line 48
def send(name, *args)
  return self unless name
  super
end
to_find(unit_name) click to toggle source
# File lib/eng_unit.rb, line 24
def to_find(unit_name)
  case self
  when Unit.si_base, Unit.si_derived
    return {formula: "value", kind: self.key(unit_name)} if self.key(unit_name)
  when Unit.si_alter
    self.each do |kind, units|
      return {formula: "value", kind: kind} if units.include?(unit_name)
    end
  when Unit.variable
    self.each do |kind_unit|
      kind_unit[1].each do |unit, value|
        return {formula: value, kind: kind_unit[0]} if unit.split(", ").include?(unit_name)
      end
    end
  end
  nil
end
to_names() click to toggle source
# File lib/eng_unit.rb, line 9
def to_names
  case self
  when Unit.variable
    self.inject([]) do |a, k|
      a << k[1].keys.inject([]) { |arr, key| arr << key.split(", ") }.flatten
    end.flatten
  when  Unit.si_alter
    self.inject([]) { |a, v| a << v }.flatten
  when Unit.metric_prefix
    self.keys
  when Unit.si_base
    self.values
  end
end
to_reg() click to toggle source
# File lib/eng_unit.rb, line 42
def to_reg
  Regexp.new(self.to_names.sort{ |a,b| b.size <=> a.size }.map{|x| Regexp.escape(x)}.join("|"))
end