1
0
Fork 0
mirror of https://github.com/aasm/aasm synced 2023-03-27 23:22:41 -04:00
aasm/spec/models/foo.rb

107 lines
1.8 KiB
Ruby
Raw Normal View History

module Fooable
def self.included(base)
base.class_eval do
aasm do
state :open, :initial => true, :before_exit => :before_exit
state :closed, :before_enter => :before_enter
state :final
event :close, :success => :success_callback do
transitions :from => [:open], :to => [:closed]
end
event :null do
transitions :from => [:open], :to => [:closed, :final], :guard => :always_false
end
end
2011-11-26 15:11:57 -05:00
end
end
def always_false
false
end
def success_callback
end
2014-09-09 17:02:11 -04:00
def before_enter
end
2014-09-09 17:02:11 -04:00
def before_exit
end
end
class Foo
include AASM
include Fooable
end
class FooGlobal
include AASM
include Fooable
end
class FooTwo < Foo
include AASM
2011-11-26 15:11:57 -05:00
aasm do
state :foo
end
end
2015-06-26 03:46:58 -04:00
class FooMultiple
include AASM
aasm(:left) do
state :open, :initial => true, :before_exit => :before_exit
state :closed, :before_enter => :before_enter
state :final
event :close, :success => :success_callback do
transitions :from => [:open], :to => [:closed]
end
event :null do
transitions :from => [:open], :to => [:closed, :final], :guard => :always_false
end
end
aasm(:right, :column => :right) do
state :green, :initial => true
state :yellow
state :red
event :green do
transitions :from => [:yellow], :to => :green
end
event :yellow do
transitions :from => [:green, :red], :to => :yellow
end
event :red do
transitions :from => [:yellow], :to => :red
end
end
def always_false
false
end
def success_callback
end
def before_enter
end
def before_exit
end
end
class FooTwoMultiple < FooMultiple
include AASM
aasm(:left) do
state :foo
end
aasm(:right) do
state :bar
end
end