Class: Cot::Enum
- Inherits:
-
Object
- Object
- Cot::Enum
- Defined in:
- lib/cot/enum.rb
Instance Attribute Summary collapse
-
#num ⇒ Object
Returns the value of attribute num.
-
#used ⇒ Object
Returns the value of attribute used.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #entry(name, options = {}) ⇒ Object
-
#initialize ⇒ Enum
constructor
A new instance of Enum.
Constructor Details
#initialize ⇒ Enum
Returns a new instance of Enum.
4 5 6 7 |
# File 'lib/cot/enum.rb', line 4 def initialize @used = {} @num = 1 end |
Instance Attribute Details
#num ⇒ Object
Returns the value of attribute num.
3 4 5 |
# File 'lib/cot/enum.rb', line 3 def num @num end |
#used ⇒ Object
Returns the value of attribute used.
3 4 5 |
# File 'lib/cot/enum.rb', line 3 def used @used end |
Instance Method Details
#[](key) ⇒ Object
23 24 25 |
# File 'lib/cot/enum.rb', line 23 def [](key) public_send key end |
#entry(name, options = {}) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/cot/enum.rb', line 9 def entry(name, = {}) value = [:value] || num if used.key? value fail "#{name} tried to set value #{value}, which is already used by #{used[value]}. Enum values are unique." end self.class.__send__ :define_method, name do value end @num = value + 1 used[value] = name end |