status-manager
Description
Simple ActiveRecord Model Status Manager
Usage
Rails 3.x
gem 'status-manager'
Example
class Product < ActiveRecord::Base
attr_accessible :title, :status
# acts_as_status :status_attribute in model, {:status_value => 'status_value that is saved in database'}
acts_as_status :status, :onsale => 'onsale', :reject => 'reject', :pending => 'pending', :soldout => 'soldout'
status_group :close, [:reject, :pending]
end
# select
@onsale_products = Product.status_onsale
@closed_products = Product.status_close
assert @onsale_products.first.status_onsale?
assert @closed_products.first.status_close?
# update
@closed_products.first.status_to(:onsale) ## => update just attribute value
@closed_products.first.update_status_onsale ## => update with database