mirror of
				https://github.com/aasm/aasm
				synced 2023-03-27 23:22:41 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			86 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			86 lines
		
	
	
	
		
			1.5 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
class Gate < ActiveRecord::Base
 | 
						|
  include AASM
 | 
						|
 | 
						|
  # Fake this column for testing purposes
 | 
						|
  attr_accessor :aasm_state
 | 
						|
 | 
						|
  aasm do
 | 
						|
    state :opened
 | 
						|
    state :closed
 | 
						|
 | 
						|
    event :view do
 | 
						|
      transitions :to => :read, :from => [:needs_attention]
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
class Reader < ActiveRecord::Base
 | 
						|
  include AASM
 | 
						|
 | 
						|
  def aasm_read_state
 | 
						|
    "fi"
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
class Writer < ActiveRecord::Base
 | 
						|
  def aasm_write_state(state)
 | 
						|
    "fo"
 | 
						|
  end
 | 
						|
  include AASM
 | 
						|
end
 | 
						|
 | 
						|
class Transient < ActiveRecord::Base
 | 
						|
  def aasm_write_state_without_persistence(state)
 | 
						|
    "fum"
 | 
						|
  end
 | 
						|
  include AASM
 | 
						|
end
 | 
						|
 | 
						|
class SimpleNewDsl < ActiveRecord::Base
 | 
						|
  include AASM
 | 
						|
  aasm :column => :status
 | 
						|
  aasm do
 | 
						|
    state :unknown_scope
 | 
						|
    state :new
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
class NoScope < ActiveRecord::Base
 | 
						|
  include AASM
 | 
						|
  aasm :create_scopes => false do
 | 
						|
    state :pending, :initial => true
 | 
						|
    state :running
 | 
						|
    event :run do
 | 
						|
      transitions :from => :pending, :to => :running
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
class NoDirectAssignment < ActiveRecord::Base
 | 
						|
  include AASM
 | 
						|
  aasm :no_direct_assignment => true do
 | 
						|
    state :pending, :initial => true
 | 
						|
    state :running
 | 
						|
    event :run do
 | 
						|
      transitions :from => :pending, :to => :running
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
class DerivateNewDsl < SimpleNewDsl
 | 
						|
end
 | 
						|
 | 
						|
class Thief < ActiveRecord::Base
 | 
						|
  if ActiveRecord::VERSION::MAJOR >= 3
 | 
						|
    self.table_name = 'thieves'
 | 
						|
  else
 | 
						|
    set_table_name "thieves"
 | 
						|
  end
 | 
						|
  include AASM
 | 
						|
  aasm do
 | 
						|
    state :rich
 | 
						|
    state :jailed
 | 
						|
    initial_state Proc.new {|thief| thief.skilled ? :rich : :jailed }
 | 
						|
  end
 | 
						|
  attr_accessor :skilled, :aasm_state
 | 
						|
end
 |