class Metamorphosis::UnitRegistry

Public Class Methods

new() click to toggle source
# File lib/metamorphosis/unit_registry.rb, line 4
def initialize
  @categories = Hash.new{|h,k| h[k] = {} }
  @unit_category_lookup = Hash.new{|h,k| h[k] = Set.new }
end

Public Instance Methods

category_names() click to toggle source
# File lib/metamorphosis/unit_registry.rb, line 16
def category_names
  @categories.keys
end
conversion_factor(category, unit) click to toggle source
# File lib/metamorphosis/unit_registry.rb, line 26
def conversion_factor(category, unit)
  @categories[category.to_sym][unit]
end
include?(unit) click to toggle source
# File lib/metamorphosis/unit_registry.rb, line 30
def include?(unit)
  @unit_category_lookup.include?(unit.to_sym)
end
register(category, unit, conversion) click to toggle source
# File lib/metamorphosis/unit_registry.rb, line 9
def register(category, unit, conversion)
  category_symbol = category.to_sym
  unit_symbol = unit.to_sym
  @categories[category_symbol][unit_symbol] = conversion
  @unit_category_lookup[unit_symbol] << category_symbol
end
unit_categories(unit) click to toggle source
# File lib/metamorphosis/unit_registry.rb, line 20
def unit_categories(unit)
  unit_symbol = unit.is_a?(UnitValue) ? unit.unit_symbol : unit.to_sym
  @unit_category_lookup[unit_symbol]
end