class LiteEnum
Public Class Methods
new(*members)
click to toggle source
Public: Initialize an enum.
members - the array of enum members. May contain a hash of options:
:start - the number of first enum member. Defaults to 1.
Examples
FRUITS = LiteEnum.new(:apple, :orange, :kiwi)
Calls superclass method
# File lib/lite_enum.rb, line 12 def initialize(*members) super({}) # Support for explicit values if members.length == 1 && members[0].is_a?(Hash) return update members[0] end options = members.extract_options! start = options.fetch(:start) { 1 } update Hash[members.zip(start..members.count + start)] end
Public Instance Methods
[](id_or_value)
click to toggle source
Public: Access the number/value of member.
ids_or_value - number or value of member.
Returns value if number was provided, and number if value was provided.
# File lib/lite_enum.rb, line 31 def [](id_or_value) fetch(id_or_value) { key(id_or_value) } end
except(*keys)
click to toggle source
Public: Create a subset of enum, preserve all items but specified ones.
# File lib/lite_enum.rb, line 48 def except(*keys) dup.tap do |d| d.__getobj__.delete_if { |k| keys.include?(k) } end end
only(*keys)
click to toggle source
Public: Create a subset of enum, only include specified keys.
# File lib/lite_enum.rb, line 41 def only(*keys) dup.tap do |d| d.__getobj__.keep_if { |k| keys.include?(k) } end end
valid?(member)
click to toggle source
Public: Check if supplied member is valid.
# File lib/lite_enum.rb, line 36 def valid?(member) has_key?(member) end