class Fiddley::Enum
Attributes
tag[R]
Public Class Methods
new(*args)
click to toggle source
# File lib/fiddley/enum.rb, line 3 def initialize(*args) info, @tag = *args @map = {} if info last = nil value = 0 info.each do |k| if k.is_a?(Symbol) @map[k] = value last = k value += 1 elsif k.is_a?(Integer) @map[last] = k value = k + 1 else raise RuntimeError, "broken enum" end end end @rmap = @map.invert end
Public Instance Methods
[](k)
click to toggle source
# File lib/fiddley/enum.rb, line 31 def [](k) if k.is_a?(Symbol) @map[k] elsif k.is_a?(Integer) @rmap[k] end end
Also aliased as: find
symbol_map()
click to toggle source
# File lib/fiddley/enum.rb, line 40 def symbol_map @map end
symbols()
click to toggle source
# File lib/fiddley/enum.rb, line 27 def symbols @map.keys end