Class: Metamorphosis::UnitRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/metamorphosis/unit_registry.rb

Instance Method Summary collapse

Constructor Details

#initializeUnitRegistry

Returns a new instance of UnitRegistry.



4
5
6
7
# 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

Instance Method Details

#category_namesObject



16
17
18
# File 'lib/metamorphosis/unit_registry.rb', line 16

def category_names
  @categories.keys
end

#conversion_factor(category, unit) ⇒ Object



26
27
28
# File 'lib/metamorphosis/unit_registry.rb', line 26

def conversion_factor(category, unit)
  @categories[category.to_sym][unit]
end

#include?(unit) ⇒ Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/metamorphosis/unit_registry.rb', line 30

def include?(unit)
  @unit_category_lookup.include?(unit.to_sym)
end

#register(category, unit, conversion) ⇒ Object



9
10
11
12
13
14
# 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) ⇒ Object



20
21
22
23
# 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