state_machine 1.0.2 → 1.0.3
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.
- data/.gitignore +1 -0
- data/.travis.yml +0 -2
- data/.yardopts +3 -2
- data/Appraisals +48 -0
- data/{CHANGELOG.rdoc → CHANGELOG.md} +63 -46
- data/README.md +1029 -0
- data/gemfiles/active_model-3.0.0.gemfile.lock +1 -3
- data/gemfiles/active_model-3.0.5.gemfile.lock +1 -3
- data/gemfiles/active_model-3.1.1.gemfile +7 -0
- data/gemfiles/active_model-3.1.1.gemfile.lock +32 -0
- data/gemfiles/active_record-2.0.0.gemfile.lock +1 -3
- data/gemfiles/active_record-2.0.5.gemfile.lock +1 -3
- data/gemfiles/active_record-2.1.0.gemfile.lock +1 -3
- data/gemfiles/active_record-2.1.2.gemfile.lock +1 -3
- data/gemfiles/active_record-2.2.3.gemfile.lock +1 -3
- data/gemfiles/active_record-2.3.12.gemfile.lock +1 -3
- data/gemfiles/active_record-3.0.0.gemfile.lock +1 -3
- data/gemfiles/active_record-3.0.5.gemfile.lock +1 -3
- data/gemfiles/active_record-3.1.1.gemfile +8 -0
- data/gemfiles/active_record-3.1.1.gemfile.lock +43 -0
- data/gemfiles/data_mapper-0.10.2.gemfile.lock +1 -3
- data/gemfiles/data_mapper-0.9.11.gemfile.lock +1 -3
- data/gemfiles/data_mapper-0.9.4.gemfile.lock +1 -3
- data/gemfiles/data_mapper-0.9.7.gemfile.lock +1 -3
- data/gemfiles/data_mapper-1.0.0.gemfile.lock +1 -3
- data/gemfiles/data_mapper-1.0.1.gemfile.lock +1 -3
- data/gemfiles/data_mapper-1.0.2.gemfile.lock +1 -3
- data/gemfiles/data_mapper-1.1.0.gemfile.lock +1 -3
- data/gemfiles/data_mapper-1.2.0.gemfile +12 -0
- data/gemfiles/data_mapper-1.2.0.gemfile.lock +49 -0
- data/gemfiles/default.gemfile.lock +1 -3
- data/gemfiles/graphviz-0.9.0.gemfile +7 -0
- data/gemfiles/graphviz-0.9.0.gemfile.lock +24 -0
- data/gemfiles/graphviz-0.9.21.gemfile +7 -0
- data/gemfiles/graphviz-0.9.21.gemfile.lock +24 -0
- data/gemfiles/graphviz-1.0.0.gemfile +7 -0
- data/gemfiles/graphviz-1.0.0.gemfile.lock +24 -0
- data/gemfiles/mongo_mapper-0.10.0.gemfile +7 -0
- data/gemfiles/mongo_mapper-0.10.0.gemfile.lock +41 -0
- data/gemfiles/mongo_mapper-0.5.5.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.5.8.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.6.0.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.6.10.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.7.0.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.7.5.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.8.0.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.8.3.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.8.4.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.8.6.gemfile.lock +1 -3
- data/gemfiles/mongo_mapper-0.9.0.gemfile.lock +1 -3
- data/gemfiles/mongoid-2.0.0.gemfile.lock +1 -3
- data/gemfiles/mongoid-2.1.4.gemfile.lock +1 -3
- data/gemfiles/mongoid-2.2.4.gemfile +7 -0
- data/gemfiles/mongoid-2.2.4.gemfile.lock +40 -0
- data/gemfiles/mongoid-2.3.3.gemfile +7 -0
- data/gemfiles/mongoid-2.3.3.gemfile.lock +40 -0
- data/gemfiles/sequel-2.11.0.gemfile.lock +1 -3
- data/gemfiles/sequel-2.12.0.gemfile.lock +1 -3
- data/gemfiles/sequel-2.8.0.gemfile.lock +1 -3
- data/gemfiles/sequel-3.0.0.gemfile.lock +1 -3
- data/gemfiles/sequel-3.13.0.gemfile.lock +1 -3
- data/gemfiles/sequel-3.14.0.gemfile.lock +1 -3
- data/gemfiles/sequel-3.23.0.gemfile.lock +1 -3
- data/gemfiles/sequel-3.24.0.gemfile.lock +1 -3
- data/gemfiles/sequel-3.29.0.gemfile +8 -0
- data/gemfiles/sequel-3.29.0.gemfile.lock +26 -0
- data/lib/state_machine.rb +45 -0
- data/lib/state_machine/event.rb +18 -3
- data/lib/state_machine/event_collection.rb +1 -1
- data/lib/state_machine/integrations/active_model.rb +59 -16
- data/lib/state_machine/integrations/active_model/observer.rb +3 -15
- data/lib/state_machine/integrations/active_record.rb +46 -9
- data/lib/state_machine/integrations/data_mapper.rb +42 -2
- data/lib/state_machine/integrations/data_mapper/versions.rb +22 -10
- data/lib/state_machine/integrations/mongo_mapper.rb +55 -0
- data/lib/state_machine/integrations/mongo_mapper/versions.rb +3 -3
- data/lib/state_machine/integrations/mongoid.rb +57 -12
- data/lib/state_machine/integrations/mongoid/versions.rb +22 -4
- data/lib/state_machine/integrations/sequel.rb +45 -0
- data/lib/state_machine/integrations/sequel/versions.rb +3 -0
- data/lib/state_machine/machine.rb +148 -34
- data/lib/state_machine/node_collection.rb +36 -3
- data/lib/state_machine/state.rb +6 -3
- data/lib/state_machine/state_collection.rb +1 -1
- data/lib/state_machine/version.rb +1 -1
- data/lib/tasks/state_machine.rb +11 -9
- data/state_machine.gemspec +2 -3
- data/test/functional/state_machine_test.rb +54 -1
- data/test/unit/event_collection_test.rb +4 -0
- data/test/unit/event_test.rb +34 -1
- data/test/unit/integrations/active_model_test.rb +80 -0
- data/test/unit/integrations/active_record_test.rb +105 -2
- data/test/unit/integrations/data_mapper_test.rb +27 -25
- data/test/unit/integrations/mongo_mapper_test.rb +80 -25
- data/test/unit/integrations/mongoid_test.rb +61 -6
- data/test/unit/integrations/sequel_test.rb +8 -2
- data/test/unit/machine_test.rb +87 -9
- data/test/unit/node_collection_test.rb +129 -12
- data/test/unit/state_collection_test.rb +4 -0
- data/test/unit/state_test.rb +2 -2
- metadata +30 -24
- data/README.rdoc +0 -844
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
data/.yardopts
CHANGED
data/Appraisals
CHANGED
|
@@ -1,6 +1,19 @@
|
|
|
1
1
|
appraise "default" do
|
|
2
2
|
end
|
|
3
3
|
|
|
4
|
+
# GraphViz
|
|
5
|
+
appraise "graphviz-0.9.0" do
|
|
6
|
+
gem "ruby-graphviz", "0.9.0"
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
appraise "graphviz-0.9.21" do
|
|
10
|
+
gem "ruby-graphviz", "0.9.21"
|
|
11
|
+
end
|
|
12
|
+
|
|
13
|
+
appraise "graphviz-1.0.0" do
|
|
14
|
+
gem "ruby-graphviz", "1.0.0"
|
|
15
|
+
end
|
|
16
|
+
|
|
4
17
|
# ActiveRecord integrations
|
|
5
18
|
if RUBY_VERSION < "1.9.1"
|
|
6
19
|
appraise "active_record-2.0.0" do
|
|
@@ -44,6 +57,11 @@ if RUBY_VERSION > "1.8.6"
|
|
|
44
57
|
gem "sqlite3-ruby"
|
|
45
58
|
gem "activerecord", "3.0.5"
|
|
46
59
|
end
|
|
60
|
+
|
|
61
|
+
appraise "active_record-3.1.1" do
|
|
62
|
+
gem "sqlite3-ruby"
|
|
63
|
+
gem "activerecord", "3.1.1"
|
|
64
|
+
end
|
|
47
65
|
end
|
|
48
66
|
|
|
49
67
|
# ActiveModel integrations
|
|
@@ -55,6 +73,10 @@ if RUBY_VERSION > "1.8.6"
|
|
|
55
73
|
appraise "active_model-3.0.5" do
|
|
56
74
|
gem "activemodel", "3.0.5"
|
|
57
75
|
end
|
|
76
|
+
|
|
77
|
+
appraise "active_model-3.1.1" do
|
|
78
|
+
gem "activemodel", "3.1.1"
|
|
79
|
+
end
|
|
58
80
|
end
|
|
59
81
|
|
|
60
82
|
# MongoMapper integrations
|
|
@@ -120,6 +142,10 @@ if RUBY_VERSION > "1.8.6"
|
|
|
120
142
|
appraise "mongo_mapper-0.9.0" do
|
|
121
143
|
gem "mongo_mapper", "0.9.0"
|
|
122
144
|
end
|
|
145
|
+
|
|
146
|
+
appraise "mongo_mapper-0.10.0" do
|
|
147
|
+
gem "mongo_mapper", "0.10.0"
|
|
148
|
+
end
|
|
123
149
|
end
|
|
124
150
|
end
|
|
125
151
|
|
|
@@ -132,6 +158,14 @@ if RUBY_VERSION > "1.8.6"
|
|
|
132
158
|
appraise "mongoid-2.1.4" do
|
|
133
159
|
gem "mongoid", "2.1.4"
|
|
134
160
|
end
|
|
161
|
+
|
|
162
|
+
appraise "mongoid-2.2.4" do
|
|
163
|
+
gem "mongoid", "2.2.4"
|
|
164
|
+
end
|
|
165
|
+
|
|
166
|
+
appraise "mongoid-2.3.3" do
|
|
167
|
+
gem "mongoid", "2.3.3"
|
|
168
|
+
end
|
|
135
169
|
end
|
|
136
170
|
|
|
137
171
|
# Sequel integrations
|
|
@@ -175,6 +209,11 @@ appraise "sequel-3.24.0" do
|
|
|
175
209
|
gem "sequel", "3.24.0"
|
|
176
210
|
end
|
|
177
211
|
|
|
212
|
+
appraise "sequel-3.29.0" do
|
|
213
|
+
gem "sqlite3-ruby", "1.3.1"
|
|
214
|
+
gem "sequel", "3.29.0"
|
|
215
|
+
end
|
|
216
|
+
|
|
178
217
|
# DataMapper
|
|
179
218
|
if RUBY_VERSION < "1.9.1"
|
|
180
219
|
appraise "data_mapper-0.9.4" do
|
|
@@ -258,3 +297,12 @@ appraise "data_mapper-1.1.0" do
|
|
|
258
297
|
gem "dm-transactions", "1.1.0"
|
|
259
298
|
gem "dm-sqlite-adapter", "1.1.0"
|
|
260
299
|
end
|
|
300
|
+
|
|
301
|
+
appraise "data_mapper-1.2.0" do
|
|
302
|
+
gem "dm-core", "1.2.0"
|
|
303
|
+
gem "dm-migrations", "1.2.0"
|
|
304
|
+
gem "dm-validations", "1.2.0"
|
|
305
|
+
gem "dm-observer", "1.2.0"
|
|
306
|
+
gem "dm-transactions", "1.2.0"
|
|
307
|
+
gem "dm-sqlite-adapter", "1.2.0"
|
|
308
|
+
end
|
|
@@ -1,6 +1,23 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
# master
|
|
2
|
+
|
|
3
|
+
## 1.0.3 / 2011-11-03
|
|
4
|
+
|
|
5
|
+
* Fix MongoMapper 0.10.0+ integrations not matching versions properly
|
|
6
|
+
* Update warnings for method conflicts to include instructions on how to ignore conflicts
|
|
7
|
+
* Fix state initialization in Mongoid 2.3.x integrations [Durran Jordan]
|
|
8
|
+
* Fix after_transition callbacks sometimes not running in Mongoid 2.2.x integrations
|
|
9
|
+
* Automatically load the plugins required in Sequel integrations
|
|
10
|
+
* Allow all / any matcher helpers to be used when defining states / events
|
|
11
|
+
* Allow states / events to be referenced by the string equivalent of their name
|
|
12
|
+
* Fix observer callbacks being run incorrectly when using nil states in ActiveModel-based integrations
|
|
13
|
+
* Remove ActiveModel Observer method chains in order to better ensure compatibility
|
|
14
|
+
* Update DataMapper integration for 1.2.0+ support [Markus Schirp]
|
|
15
|
+
* Provide access to the human state name in invalid_transition translations
|
|
16
|
+
* Add support for i18n keys in the form of #{i18n_scope}.state_machines.#{model_name}.states/events.#{value}
|
|
17
|
+
* Clarify documentation on writing to state machine attributes, using factory_girl and can_#{event} / #{event}_transition helpers
|
|
18
|
+
* Add documentation for dynmically generating state machines
|
|
19
|
+
|
|
20
|
+
## 1.0.2 / 2011-08-09
|
|
4
21
|
|
|
5
22
|
* Allow transitions to be defined within a state, event, or machine context
|
|
6
23
|
* Use supported framework hooks for integrating Sequel 3.24.0+
|
|
@@ -15,7 +32,7 @@
|
|
|
15
32
|
* Fix ActiveModel / DataMapper integrations not overriding StateMachine::Machine#after_initialize properly
|
|
16
33
|
* Improve documentation for overriding states and integration transactions
|
|
17
34
|
|
|
18
|
-
|
|
35
|
+
## 1.0.1 / 2011-05-30
|
|
19
36
|
|
|
20
37
|
* Add the ability to ignore method conflicts for helpers
|
|
21
38
|
* Generate warnings for any helper, not just state helpers, that has a conflicting method defined in the class
|
|
@@ -23,19 +40,19 @@
|
|
|
23
40
|
* Add full support for chaining state scopes within Sequel integrations
|
|
24
41
|
* Fix Rails 3.1 deprecation warnings for configuring engine locales [Stefan Penner]
|
|
25
42
|
|
|
26
|
-
|
|
43
|
+
## 1.0.0 / 2011-05-12
|
|
27
44
|
|
|
28
45
|
* Celebrate
|
|
29
46
|
|
|
30
|
-
|
|
47
|
+
## 0.10.4 / 2011-04-14
|
|
31
48
|
|
|
32
49
|
* Fix translations not being available under certain environments in Rails applications
|
|
33
50
|
|
|
34
|
-
|
|
51
|
+
## 0.10.3 / 2011-04-07
|
|
35
52
|
|
|
36
53
|
* Fix state initialization failing in ActiveRecord 3.0.2+ when using with_state scopes for the default scope
|
|
37
54
|
|
|
38
|
-
|
|
55
|
+
## 0.10.2 / 2011-03-31
|
|
39
56
|
|
|
40
57
|
* Use more integrated state initialization hooks for ActiveRecord, Mongoid, and Sequel
|
|
41
58
|
* Remove mass-assignment filtering usage in all ORM integrations
|
|
@@ -44,11 +61,11 @@
|
|
|
44
61
|
* Only initialize states if state is blank and blank is not a valid state
|
|
45
62
|
* Fix instance / class helpers failing when used with certain libraries (such as Thin)
|
|
46
63
|
|
|
47
|
-
|
|
64
|
+
## 0.10.1 / 2011-03-22
|
|
48
65
|
|
|
49
66
|
* Fix classes with multiple state machines failing to initialize in ActiveRecord / Mongoid / Sequel integrations
|
|
50
67
|
|
|
51
|
-
|
|
68
|
+
## 0.10.0 / 2011-03-19
|
|
52
69
|
|
|
53
70
|
* Support callback terminators in MongoMapper 0.9.0+
|
|
54
71
|
* Fix pluralization integration on DataMapper 1.0.0 and 1.1.0
|
|
@@ -68,7 +85,7 @@
|
|
|
68
85
|
* Replace :include_failures after_transition option with new after_failure callback
|
|
69
86
|
* Provide access to transition context when raising InvalidEvent / InvalidTransition exceptions
|
|
70
87
|
|
|
71
|
-
|
|
88
|
+
## 0.9.4 / 2010-08-01
|
|
72
89
|
|
|
73
90
|
* Fix validation / save hooks in Sequel 3.14.0+
|
|
74
91
|
* Fix integration with dirty attribute tracking on DataMapper 1.0.1+
|
|
@@ -76,7 +93,7 @@
|
|
|
76
93
|
* Fix validation error warnings in ActiveModel / ActiveRecord 3.0.0 beta5+
|
|
77
94
|
* Fix mass-assignment sanitization breaking in ActiveRecord 3.0.0 beta5+ [Akira Matsuda]
|
|
78
95
|
|
|
79
|
-
|
|
96
|
+
## 0.9.3 / 2010-06-26
|
|
80
97
|
|
|
81
98
|
* Allow access to human state / event names in transitions and for the current state
|
|
82
99
|
* Use human state / event names in error messages
|
|
@@ -86,23 +103,23 @@
|
|
|
86
103
|
* Fix i18n deprecation warnings in ActiveModel / ActiveRecord 3.0.0.beta4
|
|
87
104
|
* Fix default error message translations overriding existing locales in ActiveModel / ActiveRecord
|
|
88
105
|
|
|
89
|
-
|
|
106
|
+
## 0.9.2 / 2010-05-24
|
|
90
107
|
|
|
91
108
|
* Fix MongoMapper integration failing in Ruby 1.9.2
|
|
92
109
|
* Fix Rakefile not loading in Ruby 1.9.2 [Andrea Longhi]
|
|
93
110
|
* Fix nil / false :integration configuration not being respected
|
|
94
111
|
|
|
95
|
-
|
|
112
|
+
## 0.9.1 / 2010-05-02
|
|
96
113
|
|
|
97
114
|
* Fix ActiveRecord 2.0.0 - 2.2.3 integrations failing if version info isn't already loaded
|
|
98
115
|
* Fix integration with dirty attribute tracking on DataMapper 0.10.3
|
|
99
116
|
* Fix observers failing in ActiveRecord 3.0.0.beta4+ integrations
|
|
100
117
|
* Fix deprecation warning in Rails 3 railtie [Chris Yuan]
|
|
101
118
|
|
|
102
|
-
|
|
119
|
+
## 0.9.0 / 2010-04-12
|
|
103
120
|
|
|
104
121
|
* Use attribute-based event transitions whenever possible to ensure consistency
|
|
105
|
-
* Fix action helpers being defined when the action is
|
|
122
|
+
* Fix action helpers being defined when the action is **only** defined in the machine's owner class
|
|
106
123
|
* Disable attribute-based event transitions in DataMapper 0.9.4 - 0.9.6 when dm-validations is being used
|
|
107
124
|
* Add support for DataMapper 0.10.3+
|
|
108
125
|
* Add around_transition callbacks
|
|
@@ -116,7 +133,7 @@
|
|
|
116
133
|
* Remove app-specific rails / merb rake tasks in favor of always running state_machine:draw
|
|
117
134
|
* Add Rails 3 railtie for automatically loading rake tasks when installed as a gem
|
|
118
135
|
|
|
119
|
-
|
|
136
|
+
## 0.8.1 / 2010-03-14
|
|
120
137
|
|
|
121
138
|
* Release gems via rake-gemcutter instead of rubyforge
|
|
122
139
|
* Move rake tasks to lib/tasks
|
|
@@ -135,7 +152,7 @@
|
|
|
135
152
|
* Fix default states not getting set in ORM integrations if the column has a default
|
|
136
153
|
* Fix event transitions being kept around while running actions/callbacks, sometimes preventing object marshalling
|
|
137
154
|
|
|
138
|
-
|
|
155
|
+
## 0.8.0 / 2009-08-15
|
|
139
156
|
|
|
140
157
|
* Add support for DataMapper 0.10.0
|
|
141
158
|
* Always interpet nil return values from actions as failed attempts
|
|
@@ -152,7 +169,7 @@
|
|
|
152
169
|
* Use friendly validation errors for nil states
|
|
153
170
|
* Fix states not being validated properly when using custom names in ActiveRecord / DataMapper integrations
|
|
154
171
|
|
|
155
|
-
|
|
172
|
+
## 0.7.6 / 2009-06-17
|
|
156
173
|
|
|
157
174
|
* Allow multiple state machines on the same class to target the same attribute
|
|
158
175
|
* Add support for :attribute to customize the attribute target, assuming the name is the first argument of #state_machine
|
|
@@ -162,7 +179,7 @@
|
|
|
162
179
|
* Use Ruby 1.9's built-in Object#instance_exec for bound callbacks when it's available
|
|
163
180
|
* Improve performance of cached dynamic state lookups by 25%
|
|
164
181
|
|
|
165
|
-
|
|
182
|
+
## 0.7.5 / 2009-05-25
|
|
166
183
|
|
|
167
184
|
* Add built-in caching for dynamic state values when the value only needs to be generated once
|
|
168
185
|
* Fix flawed example for using record ids as state values
|
|
@@ -170,12 +187,12 @@
|
|
|
170
187
|
* Make it easier to use event attributes for actions defined in the same class as the state machine
|
|
171
188
|
* Fix #save/save! running transitions in ActiveRecord integrations even when a machine's action is not :save
|
|
172
189
|
|
|
173
|
-
|
|
190
|
+
## 0.7.4 / 2009-05-23
|
|
174
191
|
|
|
175
192
|
* Fix #save! not firing event attributes properly in ActiveRecord integrations
|
|
176
193
|
* Fix log files being included in gems
|
|
177
194
|
|
|
178
|
-
|
|
195
|
+
## 0.7.3 / 2009-04-25
|
|
179
196
|
|
|
180
197
|
* Require DataMapper version be >= 0.9.4
|
|
181
198
|
* Explicitly load Sequel's built-in inflector (>= 2.12.0) for scope names
|
|
@@ -183,18 +200,18 @@
|
|
|
183
200
|
* Fix #valid? being defined for DataMapper resources when dm-validations isn't loaded
|
|
184
201
|
* Add auto-validation of values allowed for the state attribute in ORM integrations
|
|
185
202
|
|
|
186
|
-
|
|
203
|
+
## 0.7.2 / 2009-04-08
|
|
187
204
|
|
|
188
205
|
* Add support for running multiple methods in a callback without using blocks
|
|
189
206
|
* Add more flexibility around how callbacks are defined
|
|
190
207
|
* Add security documentation around mass-assignment in ORM integrations
|
|
191
208
|
* Fix event attribute transitions being publicly accessible
|
|
192
209
|
|
|
193
|
-
|
|
210
|
+
## 0.7.1 / 2009-04-05
|
|
194
211
|
|
|
195
212
|
* Fix machines failing to generate graphs when run from Merb tasks
|
|
196
213
|
|
|
197
|
-
|
|
214
|
+
## 0.7.0 / 2009-04-04
|
|
198
215
|
|
|
199
216
|
* Add #{attribute}_event for automatically firing events when the object's action is called
|
|
200
217
|
* Make it easier to override state-driven behaviors
|
|
@@ -224,22 +241,22 @@
|
|
|
224
241
|
* Use generated non-bang event when running bang version so that overriding one affects the other
|
|
225
242
|
* Provide access to arguments passed into an event from transition callbacks via Transition#args
|
|
226
243
|
|
|
227
|
-
|
|
244
|
+
## 0.6.3 / 2009-03-10
|
|
228
245
|
|
|
229
246
|
* Add support for customizing the graph's orientation
|
|
230
247
|
* Use the standard visualizations for initial (open arrow) and final (double circle) states
|
|
231
248
|
* Highlight final states in GraphViz drawings
|
|
232
249
|
|
|
233
|
-
|
|
250
|
+
## 0.6.2 / 2009-03-08
|
|
234
251
|
|
|
235
252
|
* Make it easier to override generated instance / class methods
|
|
236
253
|
|
|
237
|
-
|
|
254
|
+
## 0.6.1 / 2009-03-07
|
|
238
255
|
|
|
239
256
|
* Add i18n support for ActiveRecord validation errors
|
|
240
257
|
* Add a validation error when failing to transition for ActiveRecord / DataMapper / Sequel integrations
|
|
241
258
|
|
|
242
|
-
|
|
259
|
+
## 0.6.0 / 2009-03-03
|
|
243
260
|
|
|
244
261
|
* Allow multiple conditions for callbacks / class behaviors
|
|
245
262
|
* Add support for state-driven class behavior with :if/:unless options
|
|
@@ -248,20 +265,20 @@
|
|
|
248
265
|
* Simplify hooking callbacks into loopbacks
|
|
249
266
|
* Add simplified transition/callback requirement syntax
|
|
250
267
|
|
|
251
|
-
|
|
268
|
+
## 0.5.2 / 2009-02-17
|
|
252
269
|
|
|
253
270
|
* Improve pretty-print of events
|
|
254
271
|
* Simplify state/event matching design, improving guard performance by 30%
|
|
255
272
|
* Add better error notification when conflicting guard options are defined
|
|
256
273
|
* Fix scope name pluralization not being applied correctly
|
|
257
274
|
|
|
258
|
-
|
|
275
|
+
## 0.5.1 / 2009-02-11
|
|
259
276
|
|
|
260
277
|
* Allow states to be drawn as ellipses to accommodate long names
|
|
261
278
|
* Fix rake tasks not being registered in Rails/Merb applications
|
|
262
279
|
* Never automatically define machine attribute accessors when using an integration
|
|
263
280
|
|
|
264
|
-
|
|
281
|
+
## 0.5.0 / 2009-01-11
|
|
265
282
|
|
|
266
283
|
* Add to_name and from_name to transition objects
|
|
267
284
|
* Add nicely formatted #inspect for transitions
|
|
@@ -278,12 +295,12 @@
|
|
|
278
295
|
* Add support for customizing the actual stored value for a state
|
|
279
296
|
* Add compatibility with Ruby 1.9+
|
|
280
297
|
|
|
281
|
-
|
|
298
|
+
## 0.4.3 / 2008-12-28
|
|
282
299
|
|
|
283
300
|
* Allow dm-observer integration to be optional
|
|
284
301
|
* Fix non-lambda callbacks not working for DataMapper/Sequel
|
|
285
302
|
|
|
286
|
-
|
|
303
|
+
## 0.4.2 / 2008-12-28
|
|
287
304
|
|
|
288
305
|
* Fix graphs not being drawn the same way consistently
|
|
289
306
|
* Add support for sharing transitions across multiple events
|
|
@@ -291,7 +308,7 @@
|
|
|
291
308
|
* Simplify initialize hooks, requiring super to be called instead
|
|
292
309
|
* Add :namespace option for generated state predicates / event methods
|
|
293
310
|
|
|
294
|
-
|
|
311
|
+
## 0.4.1 / 2008-12-16
|
|
295
312
|
|
|
296
313
|
* Fix nil states not being handled properly in guards, known states, or visualizations
|
|
297
314
|
* Fix the same node being used for different dynamic states in GraphViz output
|
|
@@ -300,7 +317,7 @@
|
|
|
300
317
|
* Allow blocks to be directly passed into machine class
|
|
301
318
|
* Fix attribute predicates not working on attributes that represent columns in ActiveRecord
|
|
302
319
|
|
|
303
|
-
|
|
320
|
+
## 0.4.0 / 2008-12-14
|
|
304
321
|
|
|
305
322
|
* Remove the PluginAWeek namespace
|
|
306
323
|
* Add generic attribute predicate (e.g. "#{attribute}?(state_name)") and state predicates (e.g. "#{state}?")
|
|
@@ -320,18 +337,18 @@
|
|
|
320
337
|
* Include states referenced in transition callbacks in the list of a machine's known states
|
|
321
338
|
* Only generate the known states for a machine on demand, rather than calculating beforehand
|
|
322
339
|
* Add the ability to skip state change actions during a transition (e.g. vehicle.ignite(false))
|
|
323
|
-
* Add the ability for the state change action (e.g.
|
|
324
|
-
* Allow state machines to be defined on
|
|
340
|
+
* Add the ability for the state change action (e.g. `save` for ActiveRecord) to be configurable
|
|
341
|
+
* Allow state machines to be defined on **any** Ruby class, not just ActiveRecord (removes all external dependencies)
|
|
325
342
|
* Refactor transitions, guards, and callbacks for better organization/design
|
|
326
343
|
* Use a class containing the transition context in callbacks, rather than an ordered list of each individual attribute
|
|
327
344
|
* Add without_#{attribute} named scopes (opposite of the existing with_#{attribute} named scopes) [Sean O'Brien]
|
|
328
345
|
|
|
329
|
-
|
|
346
|
+
## 0.3.1 / 2008-10-26
|
|
330
347
|
|
|
331
348
|
* Fix the initial state not getting set when the state attribute is mass-assigned but protected
|
|
332
349
|
* Change how the base module is included to prevent namespacing conflicts
|
|
333
350
|
|
|
334
|
-
|
|
351
|
+
## 0.3.0 / 2008-09-07
|
|
335
352
|
|
|
336
353
|
* No longer allow additional arguments to be passed into event actions
|
|
337
354
|
* Add support for can_#{event}? for checking whether an event can be fired based on the current state of the record
|
|
@@ -346,28 +363,28 @@
|
|
|
346
363
|
* Ensure initial state callbacks are invoked in the proper order when an event is fired on a new record
|
|
347
364
|
* Add before_loopback and after_loopback hooks [Jürgen Strobel]
|
|
348
365
|
|
|
349
|
-
|
|
366
|
+
## 0.2.1 / 2008-07-05
|
|
350
367
|
|
|
351
368
|
* Add more descriptive exceptions
|
|
352
369
|
* Assume the default state attribute is "state" if one is not provided
|
|
353
370
|
* Add :except_from option for transitions if you want to blacklist states
|
|
354
371
|
* Add PluginAWeek::StateMachine::Machine#states
|
|
355
372
|
* Add PluginAWeek::StateMachine::Event#transitions
|
|
356
|
-
* Allow creating transitions with no from state (effectively allowing the transition for
|
|
373
|
+
* Allow creating transitions with no from state (effectively allowing the transition for **any** from state)
|
|
357
374
|
* Reduce the number of objects created for each transition
|
|
358
375
|
|
|
359
|
-
|
|
376
|
+
## 0.2.0 / 2008-06-29
|
|
360
377
|
|
|
361
378
|
* Add a non-bang version of events (e.g. park) that will return a boolean value for success
|
|
362
379
|
* Raise an exception if the bang version of events are used (e.g. park!) and no transition is successful
|
|
363
380
|
* Change callbacks to act a little more like ActiveRecord
|
|
364
381
|
* Avoid using string evaluation for dynamic methods
|
|
365
382
|
|
|
366
|
-
|
|
383
|
+
## 0.1.1 / 2008-06-22
|
|
367
384
|
|
|
368
385
|
* Remove log files from gems
|
|
369
386
|
|
|
370
|
-
|
|
387
|
+
## 0.1.0 / 2008-05-05
|
|
371
388
|
|
|
372
389
|
* Completely rewritten from scratch
|
|
373
390
|
* Renamed to state_machine
|
|
@@ -378,7 +395,7 @@
|
|
|
378
395
|
* Added functional tests
|
|
379
396
|
* Updated documentation
|
|
380
397
|
|
|
381
|
-
|
|
398
|
+
## 0.0.1 / 2007-09-26
|
|
382
399
|
|
|
383
400
|
* Add dependency on custom_callbacks
|
|
384
401
|
* Move test fixtures out of the test application root directory
|