Class: Metamorphosis::UnitRegistry
- Inherits:
-
Object
- Object
- Metamorphosis::UnitRegistry
- Defined in:
- lib/metamorphosis/unit_registry.rb
Instance Method Summary collapse
- #category_names ⇒ Object
- #conversion_factor(category, unit) ⇒ Object
- #include?(unit) ⇒ Boolean
-
#initialize ⇒ UnitRegistry
constructor
A new instance of UnitRegistry.
- #register(category, unit, conversion) ⇒ Object
- #unit_categories(unit) ⇒ Object
Constructor Details
#initialize ⇒ UnitRegistry
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_names ⇒ Object
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
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 |