Module: Nifty::Utils::ActiveRecord::Inquirer::ClassMethods

Defined in:
lib/nifty/utils/active_record/inquirer.rb

Instance Method Summary collapse

Instance Method Details

#inquirer(field, *options) ⇒ Object

Allows you to automatically create inquiry methods for string field. For example, if you have an Order model which has a status field containing ‘approved’ or ‘delivered’ you may wish to have a #approved? or #delivered? method on the model.

class Order < ActiveRecord::Baser
  STATUSES = ['approved', 'delivered']
  inquirer :status, *STATUSES
end

order = Order.new(:status => 'approved')
order.approved?       #=> true
order.delivered?      #=> false


27
28
29
30
31
32
33
# File 'lib/nifty/utils/active_record/inquirer.rb', line 27

def inquirer(field, *options)
  options.each do |option|
    define_method "#{option}?" do
      self.read_attribute(field).to_s == option.to_s
    end
  end
end