aasm 4.0.3 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +7 -7
- data/aasm.gemspec +5 -9
- data/lib/aasm.rb +13 -15
- data/lib/aasm/aasm.rb +0 -18
- data/lib/aasm/base.rb +1 -1
- data/lib/aasm/{event.rb → core/event.rb} +3 -3
- data/lib/aasm/{state.rb → core/state.rb} +1 -1
- data/lib/aasm/{transition.rb → core/transition.rb} +1 -1
- data/lib/aasm/persistence.rb +17 -11
- data/lib/aasm/persistence/active_record_persistence.rb +6 -9
- data/lib/aasm/persistence/mongoid_persistence.rb +4 -2
- data/lib/aasm/persistence/plain_persistence.rb +24 -0
- data/lib/aasm/persistence/sequel_persistence.rb +2 -0
- data/lib/aasm/state_machine.rb +1 -1
- data/lib/aasm/version.rb +1 -1
- data/spec/database.rb +5 -1
- data/spec/models/callbacks/basic.rb +62 -0
- data/spec/models/callbacks/guard_within_block.rb +66 -0
- data/spec/models/callbacks/with_args.rb +45 -0
- data/spec/models/callbacks/with_state_args.rb +26 -0
- data/spec/models/persistence.rb +61 -1
- data/spec/unit/callbacks_spec.rb +35 -32
- data/spec/unit/event_spec.rb +6 -6
- data/spec/unit/memory_leak_spec.rb +12 -12
- data/spec/unit/persistence/active_record_persistence_spec.rb +12 -36
- data/spec/unit/state_spec.rb +2 -2
- data/spec/unit/transition_spec.rb +23 -23
- metadata +20 -51
- data/spec/models/callback_new_dsl.rb +0 -129
- data/spec/models/guard_within_block.rb +0 -64
@@ -1,64 +0,0 @@
|
|
1
|
-
class GuardWithinBlock
|
2
|
-
include AASM
|
3
|
-
|
4
|
-
def initialize(options={})
|
5
|
-
@fail_event_guard = options[:fail_event_guard]
|
6
|
-
@fail_transition_guard = options[:fail_transition_guard]
|
7
|
-
@log = options[:log]
|
8
|
-
end
|
9
|
-
|
10
|
-
aasm do
|
11
|
-
state :open, :initial => true,
|
12
|
-
:before_enter => :before_enter_open,
|
13
|
-
:enter => :enter_open,
|
14
|
-
:after_enter => :after_enter_open,
|
15
|
-
:before_exit => :before_exit_open,
|
16
|
-
:exit => :exit_open,
|
17
|
-
:after_exit => :after_exit_open
|
18
|
-
|
19
|
-
state :closed,
|
20
|
-
:before_enter => :before_enter_closed,
|
21
|
-
:enter => :enter_closed,
|
22
|
-
:after_enter => :after_enter_closed,
|
23
|
-
:before_exit => :before_exit_closed,
|
24
|
-
:exit => :exit_closed,
|
25
|
-
:after_exit => :after_exit_closed
|
26
|
-
|
27
|
-
event :close, :before => :before, :after => :after, :guard => :event_guard do
|
28
|
-
transitions :to => :closed, :from => [:open], :after => :transitioning do
|
29
|
-
guard do
|
30
|
-
transition_guard
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
event :open, :before => :before, :after => :after do
|
36
|
-
transitions :to => :open, :from => :closed
|
37
|
-
end
|
38
|
-
end
|
39
|
-
|
40
|
-
def log(text)
|
41
|
-
puts text if @log
|
42
|
-
end
|
43
|
-
|
44
|
-
def before_enter_open; log('before_enter_open'); end
|
45
|
-
def enter_open; log('enter_open'); end
|
46
|
-
def before_exit_open; log('before_exit_open'); end
|
47
|
-
def after_enter_open; log('after_enter_open'); end
|
48
|
-
def exit_open; log('exit_open'); end
|
49
|
-
def after_exit_open; log('after_exit_open'); end
|
50
|
-
|
51
|
-
def before_enter_closed; log('before_enter_closed'); end
|
52
|
-
def enter_closed; log('enter_closed'); end
|
53
|
-
def before_exit_closed; log('before_exit_closed'); end
|
54
|
-
def exit_closed; log('exit_closed'); end
|
55
|
-
def after_enter_closed; log('after_enter_closed'); end
|
56
|
-
def after_exit_closed; log('after_exit_closed'); end
|
57
|
-
|
58
|
-
def event_guard; log('event_guard'); !@fail_event_guard; end
|
59
|
-
def transition_guard; log('transition_guard'); !@fail_transition_guard; end
|
60
|
-
def transitioning; log('transitioning'); end
|
61
|
-
|
62
|
-
def before; log('before'); end
|
63
|
-
def after; log('after'); end
|
64
|
-
end
|