module Enumish::ClassMethods

Public Instance Methods

enum_id() click to toggle source
# File lib/enumish.rb, line 19
def enum_id
  :short
end
enum_ids() click to toggle source
# File lib/enumish.rb, line 29
def enum_ids
  refresh_enum_ids! if @enum_ids.blank?
  @enum_ids
end
method_missing(method_id, *args, &block) click to toggle source
Calls superclass method
# File lib/enumish.rb, line 10
def method_missing(method_id, *args, &block)
  if !method_id.to_s.match(/\?$/) && enum_ids.include?(method_id.to_s)
    obj = self.where(enum_id => method_id.to_s).first
    return obj if obj.present?
  end

  super method_id, *args, &block
end
refresh_enum_ids!() click to toggle source
# File lib/enumish.rb, line 23
def refresh_enum_ids!
  Mutex.new.synchronize do
    @enum_ids = self.pluck(enum_id)
  end
end