class EasyEnum::EasyEnum

Attributes

easy_enum[W]
value[R]

Public Class Methods

easy_enum(easy_enum = {}) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 15
def self.easy_enum(easy_enum = {})
  @easy_enum ||= easy_enum
end
key(key) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 55
def self.key(key)
  value = members[key]
  return new(value) if value

  nil
end
key?(key) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 68
def self.key?(key)
  keys.include? key
end
keys() click to toggle source
# File lib/easy_enum/easy_enum.rb, line 47
def self.keys
  easy_enum.keys
end
members() click to toggle source
# File lib/easy_enum/easy_enum.rb, line 43
def self.members
  easy_enum
end
method_missing(method, *args) click to toggle source
Calls superclass method
# File lib/easy_enum/easy_enum.rb, line 105
def self.method_missing(method, *args)
  return key(method) if keys.include?(method)

  super
end
new(value) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 11
def initialize(value)
  self.value = value
end
respond_to_missing?(method, *) click to toggle source
Calls superclass method
# File lib/easy_enum/easy_enum.rb, line 111
def self.respond_to_missing?(method, *)
  return true if keys.include?(method)

  super
end
size() click to toggle source
# File lib/easy_enum/easy_enum.rb, line 76
def self.size
  easy_enum.count
end
value(value) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 62
def self.value(value)
  return new(value) if values.include? value

  nil
end
value?(value) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 72
def self.value?(value)
  values.include? value
end
values() click to toggle source
# File lib/easy_enum/easy_enum.rb, line 51
def self.values
  easy_enum.values
end

Public Instance Methods

==(other) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 80
def ==(other)
  case other
  when self.class
    other.key == key
  when Symbol
    other == key
  else
    other == value
  end
end
key() click to toggle source
# File lib/easy_enum/easy_enum.rb, line 35
def key
  self.class.easy_enum.each do |key, val|
    return key if value == val
  end

  nil
end
key=(key) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 27
def key=(key)
  if self.class.keys.include?(key)
    @value = self.class.members[key]
    return
  end
  raise KeyNotInEnum
end
method_missing(method, *args) click to toggle source
Calls superclass method
# File lib/easy_enum/easy_enum.rb, line 91
def method_missing(method, *args)
  self.class.easy_enum.each do |key, val|
    return val == value if method == "#{key}?".to_sym
  end

  super
end
respond_to_missing?(method, *) click to toggle source
Calls superclass method
# File lib/easy_enum/easy_enum.rb, line 99
def respond_to_missing?(method, *)
  return true if self.class.easy_enum.keys.map { |key| "#{key}?".to_sym }.include?(method)

  super
end
value=(value) click to toggle source
# File lib/easy_enum/easy_enum.rb, line 19
def value=(value)
  if self.class.values.include?(value)
    @value = value
    return
  end
  raise ValueNotInEnum
end