stately 0.3.1 → 0.3.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +1 -1
- data/lib/stately/version.rb +1 -1
- data/lib/stately.rb +7 -3
- data/spec/functional/stately_spec.rb +11 -0
- data/spec/unit/stately_spec.rb +5 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad6d6e8f058bd9a7bb43c5860dcf3be61a0dc1b3
|
4
|
+
data.tar.gz: 5464d5e302cb6719f314c52c57d84cb55d86d504
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b573a8920bbcc8de47f7a558a215c280f1c2f8f45d92d5b07ae7736a5cb0f5161790bdee90a6631b1ac91e82be83064b85e1b73d01c691eccdb4aa1b5d68db1
|
7
|
+
data.tar.gz: f8c318f5095e66d2431cc33eb407c0c278fb405afe06c5abc431476d89fae02207e2d9c0e905d89dbf290922c1cf128adfbcc7d76e97f99d56e96677e1e6e460
|
data/Gemfile.lock
CHANGED
data/lib/stately/version.rb
CHANGED
data/lib/stately.rb
CHANGED
@@ -93,6 +93,10 @@ module Stately
|
|
93
93
|
define_method(state.action) do
|
94
94
|
transition_to(state)
|
95
95
|
end
|
96
|
+
|
97
|
+
define_method(:"#{state.name}?") do
|
98
|
+
send(stately_machine.state_attr) == state.name.to_s
|
99
|
+
end
|
96
100
|
end
|
97
101
|
end
|
98
102
|
end
|
@@ -161,16 +165,16 @@ module Stately
|
|
161
165
|
|
162
166
|
if valid_transition_to?(state)
|
163
167
|
run_before_transition_callbacks(state)
|
164
|
-
|
168
|
+
write_model_attribute(stately_machine.state_attr, state.to_s)
|
165
169
|
run_after_transition_callbacks(state)
|
166
170
|
end
|
167
171
|
end
|
168
172
|
|
169
173
|
def set_initial_state
|
170
|
-
|
174
|
+
write_model_attribute(stately_machine.state_attr, stately_machine.start.to_s)
|
171
175
|
end
|
172
176
|
|
173
|
-
def
|
177
|
+
def write_model_attribute(attr, val)
|
174
178
|
send("#{attr}=", val)
|
175
179
|
end
|
176
180
|
|
@@ -136,6 +136,10 @@ describe Stately do
|
|
136
136
|
it 'sets state' do
|
137
137
|
@order.state.should == new_state
|
138
138
|
end
|
139
|
+
|
140
|
+
it 'responds to test method' do
|
141
|
+
@order.send("#{new_state}?").should be_true
|
142
|
+
end
|
139
143
|
end
|
140
144
|
end
|
141
145
|
|
@@ -150,6 +154,13 @@ describe Stately do
|
|
150
154
|
@order_class.method_defined?(:refund).should be_true
|
151
155
|
end
|
152
156
|
|
157
|
+
it 'creates tests for each state' do
|
158
|
+
@order_class.method_defined?(:processing?).should be_true
|
159
|
+
@order_class.method_defined?(:completed?).should be_true
|
160
|
+
@order_class.method_defined?(:invalid?).should be_true
|
161
|
+
@order_class.method_defined?(:refunded?).should be_true
|
162
|
+
end
|
163
|
+
|
153
164
|
it 'finds all states' do
|
154
165
|
@order.states.should == [:completed, :invalid, :processing, :refunded]
|
155
166
|
end
|
data/spec/unit/stately_spec.rb
CHANGED
@@ -36,6 +36,11 @@ describe Stately::InstanceMethods do
|
|
36
36
|
@test_class.method_defined?(:complete).should be_true
|
37
37
|
@test_class.method_defined?(:process).should be_true
|
38
38
|
end
|
39
|
+
|
40
|
+
it 'defines test methods' do
|
41
|
+
@test_class.method_defined?(:processing?).should be_true
|
42
|
+
@test_class.method_defined?(:completed?).should be_true
|
43
|
+
end
|
39
44
|
end
|
40
45
|
|
41
46
|
describe 'stately_machine' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: stately
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan Twomey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-02-
|
11
|
+
date: 2014-02-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|