Class: Enum

Inherits:
Hash
  • Object
show all
Defined in:
lib/enum.rb

Instance Method Summary collapse

Constructor Details

#initialize(*members) ⇒ Enum

Create a new Enum instance

Parameters:

  • *members (Array of String)

    list of strings becoming symbols



7
8
9
10
11
# File 'lib/enum.rb', line 7

def initialize(*members)
    super()
    @rev = {}
    members.each_with_index {|m,i| self[i] = m}
end

Instance Method Details

#[](k) ⇒ Integer or symbol

Get index by symbol or get symbol by index

Parameters:

  • k (symbol or Integer)

Returns:

  • (Integer or symbol)


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

def [](k)
    super || @rev[k]
end

#[]=(k, v) ⇒ nil

Change or add enum pair

Parameters:

  • k (String)

    the symbol name

  • v (Integer)

    the index

Returns:

  • (nil)


24
25
26
27
# File 'lib/enum.rb', line 24

def []=(k, v)
    @rev[v] = k
    super
end