Sha256: b70a6b61f435542fd106d3fbb6917c117861f82879aad714cdaefcba085740eb

Contents?: true

Size: 605 Bytes

Versions: 7

Compression:

Stored size: 605 Bytes

Contents

class ReviewCustomPersistence < ActiveRecord::Base
  include StateShifter::Definition

  persist_attribute :stamp

  state_machine do 

    # first state to be defined is the initial one
    state :new do
      event :submit => :awaiting_review
    end

    state :awaiting_review do
      event :review => :being_reviewed
    end

    state :being_reviewed do
      event :accept => :accepted, :if => :cool_article?
      event :reject => :rejected, :if => :bad_article?
    end

    state :accepted
    state :rejected

  end

  def cool_article?
    true
  end

  def bad_article?
    false
  end

end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
state_shifter-1.1.3 examples/review_custom_persistence.rb
state_shifter-1.1.2 examples/review_custom_persistence.rb
state_shifter-1.0.7 examples/review_custom_persistence.rb
state_shifter-1.0.5 examples/review_custom_persistence.rb
state_shifter-1.0.3 examples/review_custom_persistence.rb
state_shifter-0.8.1 examples/review_custom_persistence.rb
state_shifter-0.8.0 examples/review_custom_persistence.rb