Module: Publishable::ClassMethods

Defined in:
lib/publishable.rb

Instance Method Summary collapse

Instance Method Details

#acts_as_publishable(options = {}) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/publishable.rb', line 4

def acts_as_publishable(options = {})
  options = { :column => :status, :initial_state => :unpublished }.merge(options)
  
  include AASM
  aasm_column options[:column]
  aasm_state  :unpublished
  aasm_state  :published
  
  aasm_initial_state options[:initial_state]
  
  aasm_event :publish do
    transitions :to => :published, :from => [:unpublished]
  end
  
  aasm_event :unpublish do
    transitions :to => :unpublished, :from => [:published]
  end
end