class Kredis::Types::Enum

Attributes

default[RW]
values[RW]

Public Class Methods

new(...) click to toggle source
Calls superclass method Kredis::Types::Proxying::new
# File lib/kredis/types/enum.rb, line 8
def initialize(...)
  super
  define_predicates_for_values
end

Public Instance Methods

reset() click to toggle source
# File lib/kredis/types/enum.rb, line 23
def reset
  del
end
value() click to toggle source
# File lib/kredis/types/enum.rb, line 19
def value
  get || default
end
value=(value) click to toggle source
# File lib/kredis/types/enum.rb, line 13
def value=(value)
  if validated_choice = value.presence_in(values)
    set validated_choice
  end
end

Private Instance Methods

define_predicates_for_values() click to toggle source
# File lib/kredis/types/enum.rb, line 28
def define_predicates_for_values
  values.each do |defined_value|
    define_singleton_method("#{defined_value}?") { value == defined_value }
  end
end