Sha256: eaec3f575aef7de956aabc9b61e732c7c2853a3c6b88a184fc6a2f816f9ba1cc

Contents?: true

Size: 445 Bytes

Versions: 5

Compression:

Stored size: 445 Bytes

Contents

class ActiveRecord::Base
  def self.has_statuses(*status_names) 
    validates :status, :presence => true, :inclusion => { :in => status_names }
    # Status Finders 
    status_names.each do |status_name|
      scope "all_#{status_name}", where(:status => status_name)
    end
    # Status Accessors 
    status_names.each do |status_name|
      define_method "#{status_name}?" do
        status == status_name
      end
    end 
    
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
saasaparilla-0.2.2 lib/extensions/active_record/statuses.rb
saasaparilla-0.2.1 lib/extensions/active_record/statuses.rb
saasaparilla-0.1.8 lib/extensions/active_record/statuses.rb
saasaparilla-0.1.7 lib/extensions/active_record/statuses.rb
saasaparilla-0.1.6 lib/extensions/active_record/statuses.rb