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