Method: Cot::Enum#entry

Defined in:
lib/cot/enum.rb

#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, options = {})
  value = options[: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