module ProstoCache::Extensions

Public Instance Methods

lookup_enum_for(name, enum_class=nil) click to toggle source
# File lib/prosto_cache/extensions.rb, line 3
def lookup_enum_for(name, enum_class=nil)
  raise ArgumentError, "No name provided" unless name
  enum_class = name.to_s.classify.constantize unless enum_class
  define_method("#{name}_with_lookup=") do |o|
    new_value = o
    unless o.is_a?(enum_class)
      new_value = o.blank? ? nil : enum_class[o.to_s]
    end
    self.send("#{name}_without_lookup=", new_value)
  end

  alias_method_chain "#{name}=", :lookup
end