Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Newer
Older
100644 226 lines (181 sloc) 11.78 kB
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
1 == master
45197b0 @obrie Remove tasks that are no longer being used.
obrie authored
2
2c9ebd8 @obrie Don't pass the result of the action as an argument to callbacks (acce…
obrie authored
3 * Don't pass the result of the action as an argument to callbacks (access via Transition#result)
4 * Fix incorrect results being used when running transitions in parallel
a1868de @obrie Fix transition args not being set when run in parallel
obrie authored
5 * Fix transition args not being set when run in parallel
b98d4a3 @obrie Allow callback terminators to be set on an application-wide basis
obrie authored
6 * Allow callback terminators to be set on an application-wide basis
008ae6b @obrie Only catch :halt during before / after transition callbacks
obrie authored
7 * Only catch :halt during before / after transition callbacks
463577d @obrie Fix ActiveRecord predicates being overwritten if they're already defi…
obrie authored
8 * Fix ActiveRecord predicates being overwritten if they're already defined in the class
d12fac3 @obrie Allow machine options to be set on an integration-wide basis
obrie authored
9 * Allow machine options to be set on an integration-wide basis
cd06ecc @obrie Add missing CHANGELOG message: Turn transactions off by default in Da…
obrie authored
10 * Turn transactions off by default in DataMapper integrations
82bbb0b @obrie Add support for configuring the use of transactions
obrie authored
11 * Add support for configuring the use of transactions
891d2ea @obrie Simplify reading/writing of attributes
obrie authored
12 * Simplify reading/writing of attributes
3816088 @obrie Simplify access to state machines via #state_machine(:attribute) with…
obrie authored
13 * Simplify access to state machines via #state_machine(:attribute) without generating dupes
dd659a6 @obrie Fix assumptions that dm-validations is always available in DataMapper…
obrie authored
14 * Fix assumptions that dm-validations is always available in DataMapper integration
93893cf @obrie Automatically define DataMapper properties for machine attributes if …
obrie authored
15 * Automatically define DataMapper properties for machine attributes if they don't exist
6b35593 @obrie Add Transition#qualified_event, #qualified_from_name, and #qualified_…
obrie authored
16 * Add Transition#qualified_event, #qualified_from_name, and #qualified_to_name
17b472c @obrie Add #fire_events / #fire_events! for running events on multiple state…
obrie authored
17 * Add #fire_events / #fire_events! for running events on multiple state machines in parallel
26e1b8f @obrie Rename next_#{event}_transition to #{event}_transition
obrie authored
18 * Rename next_#{event}_transition to #{event}_transition
19 * Add #{attribute}_transitions for getting the list of transitions that can be run on an object
20 * Add #{attribute}_events for getting the list of events that can be fired on an object
70d9c72 @obrie Use generated non-bang event when running bang version so that overri…
obrie authored
21 * Use generated non-bang event when running bang version so that overriding one affects the other
47f72a6 @obrie Provide access to arguments passed into an event from transition call…
obrie authored
22 * Provide access to arguments passed into an event from transition callbacks via Transition#args
23
37b2363 @obrie Tag 0.6.3 release
obrie authored
24 == 0.6.3 / 2008-03-10
25
51306ac @obrie Add support for customizing the graph's orientation
obrie authored
26 * Add support for customizing the graph's orientation
b2b841d @obrie Use the standard visualizations for initial (open arrow) and final (d…
obrie authored
27 * Use the standard visualizations for initial (open arrow) and final (double circle) states
f506670 @obrie Highlight final states in GraphViz drawings
obrie authored
28 * Highlight final states in GraphViz drawings
29
da5f0c2 @obrie Tag 0.6.2 release
obrie authored
30 == 0.6.2 / 2009-03-08
31
ea7eb4c @obrie Make it easier to override generated instance / class methods
obrie authored
32 * Make it easier to override generated instance / class methods
33
fb3fa92 @obrie Tag 0.6.1 release
obrie authored
34 == 0.6.1 / 2009-03-07
35
d0c9991 @obrie Add i18n support for ActiveRecord validation errors
obrie authored
36 * Add i18n support for ActiveRecord validation errors
8c843f0 @obrie Add a validation error when failing to transition for ActiveRecord / …
obrie authored
37 * Add a validation error when failing to transition for ActiveRecord / DataMapper / Sequel integrations
38
3022154 @obrie Tag 0.6.0 release
obrie authored
39 == 0.6.0 / 2009-03-03
40
13f0f20 @obrie Allow multiple conditions for callbacks / class behaviors
obrie authored
41 * Allow multiple conditions for callbacks / class behaviors
d9b66f3 @obrie Fix typo in changelog
obrie authored
42 * Add support for state-driven class behavior with :if/:unless options
88f8a0d @obrie Alias Machine#event as Machine#on
obrie authored
43 * Alias Machine#event as Machine#on
cdec7f2 @obrie Add simplified transition/callback requirement syntax (and recommend …
obrie authored
44 * Fix nil from/to states not being handled properly
45 * Simplify hooking callbacks into loopbacks
46 * Add simplified transition/callback requirement syntax
47
5bdc422 @obrie Tag 0.5.2 release
obrie authored
48 == 0.5.2 / 2009-02-17
49
237096f @obrie Simplify state/event matching design, improving guard performance by 30%
obrie authored
50 * Improve pretty-print of events
51 * Simplify state/event matching design, improving guard performance by 30%
5e07007 @obrie Add better error notification when conflicting guard options are defined
obrie authored
52 * Add better error notification when conflicting guard options are defined
cd16cad @obrie Fix scope name pluralization not being applied correctly [#13 state:r…
obrie authored
53 * Fix scope name pluralization not being applied correctly
54
97cf57a @obrie Tag 0.5.1 release
obrie authored
55 == 0.5.1 / 2009-02-11
56
d6fbdcc @obrie Allow states to be drawn as ellipses to accommodate long names
obrie authored
57 * Allow states to be drawn as ellipses to accommodate long names
a75a282 @obrie Fix rake tasks not being registered in Rails/Merb applications [#11 s…
obrie authored
58 * Fix rake tasks not being registered in Rails/Merb applications
1475acf @obrie Never automatically define machine attribute accessors when using an …
obrie authored
59 * Never automatically define machine attribute accessors when using an integration
60
04f28ff @obrie Fix 0.5.0 release date
obrie authored
61 == 0.5.0 / 2009-01-11
ddc8d1a @obrie Tag 0.5.0 release
obrie authored
62
45bc27f @obrie Add missing changelog message for to_name / from_name additions in tr…
obrie authored
63 * Add to_name and from_name to transition objects
7f7fc4a @obrie Add nicely formatted #inspect for transitions
obrie authored
64 * Add nicely formatted #inspect for transitions
762906a @obrie Fix ActiveRecord integrations failing when the database doesn't exist…
obrie authored
65 * Fix ActiveRecord integrations failing when the database doesn't exist yet
b9d0ccc @obrie Add support for customizing the actual stored value for a state
obrie authored
66 * Fix states not being drawn in GraphViz graphs in the correct order
67 * Add nicely formatted #inspect for states and events
68 * Simplify machine context-switching
69 * Store events/states in enumerable node collections
70 * No longer allow subclasses to change the integration
71 * Move fire! action logic into the Event class (no longer calls fire action on the object)
72 * Allow states in subclasses to have different values
73 * Recommend that all states be referenced as symbols instead of strings
74 * All states must now be named (and can be associated with other value types)
75 * Add support for customizing the actual stored value for a state
670ac78 @obrie Add compatibility with Ruby 1.9+
obrie authored
76 * Add compatibility with Ruby 1.9+
77
ba6dfeb @obrie Tag 0.4.3 release
obrie authored
78 == 0.4.3 / 2008-12-28
79
bae9e16 @obrie Allow dm-observer integration to be optional
obrie authored
80 * Allow dm-observer integration to be optional
82a5135 @obrie Fix non-lambda callbacks not working for DataMapper/Sequel
obrie authored
81 * Fix non-lambda callbacks not working for DataMapper/Sequel
82
faef342 @obrie Tag 0.4.2 release
obrie authored
83 == 0.4.2 / 2008-12-28
84
a8bf1c9 @obrie Fix graphs not being drawn the same way consistently
obrie authored
85 * Fix graphs not being drawn the same way consistently
b8de3a7 @obrie Add support for sharing transitions across multiple events
obrie authored
86 * Add support for sharing transitions across multiple events
db88b6f @obrie Add support for state-driven behavior
obrie authored
87 * Add support for state-driven behavior
d71fedb @obrie Simplify initialize hooks, requiring super to be called instead
obrie authored
88 * Simplify initialize hooks, requiring super to be called instead
cfa7757 @obrie Add :namespace option for generated state predicates / event methods
obrie authored
89 * Add :namespace option for generated state predicates / event methods
90
2035234 @obrie Tag 0.4.1 release
obrie authored
91 == 0.4.1 / 2008-12-16
92
977c977 @obrie Fix nil states not being handled properly in guards, known states, or…
obrie authored
93 * Fix nil states not being handled properly in guards, known states, or visualizations
94 * Fix the same node being used for different dynamic states in GraphViz output
95 * Always include initial state in the list of known states even if it's dynamic
96 * Use consistent naming scheme for dynamic states in GraphViz output
97 * Allow blocks to be directly passed into machine class
198570e @obrie Fix attribute predicates not working on attributes that represent col…
obrie authored
98 * Fix attribute predicates not working on attributes that represent columns in ActiveRecord
99
5d5b3d2 @obrie Tag 0.4.0 release
obrie authored
100 == 0.4.0 / 2008-12-14
101
146afff @obrie Remove the PluginAWeek namespace
obrie authored
102 * Remove the PluginAWeek namespace
48d83df @obrie Add generic attribute predicate (e.g. "#{attribute}?(state_name)") an…
obrie authored
103 * Add generic attribute predicate (e.g. "#{attribute}?(state_name)") and state predicates (e.g. "#{state}?")
b68d4bd @obrie Add Sequel support
obrie authored
104 * Add Sequel support
06e8e84 @obrie Fix aliasing :initialize on ActiveRecord models causing warnings when…
obrie authored
105 * Fix aliasing :initialize on ActiveRecord models causing warnings when the environment is reloaded
c3d532f @obrie Fix ActiveRecord state machines trying to query the database on unmig…
obrie authored
106 * Fix ActiveRecord state machines trying to query the database on unmigrated models
bee135e @obrie Fix initial states not getting set when the current value is an empty…
obrie authored
107 * Fix initial states not getting set when the current value is an empty string [Aaron Gibralter]
6f25124 @jashmenn Add rake tasks for generating graphviz files for state machines
jashmenn authored
108 * Add rake tasks for generating graphviz files for state machines [Nate Murray]
ef3eb0c @obrie Fix initial state not being included in list of known states
obrie authored
109 * Fix initial state not being included in list of known states
2269c93 Add other_states directive for defining additional states not referen…
Pete Forde authored
110 * Add other_states directive for defining additional states not referenced in transitions or callbacks [Pete Forde]
bbd3a98 @obrie Add next_#{event}_transition for getting the next transition that wou…
obrie authored
111 * Add next_#{event}_transition for getting the next transition that would be performed if the event were invoked
fab942f @obrie Add missing CHANGELOG comments
obrie authored
112 * Add the ability to override the pluralized name of an attribute for creating scopes
113 * Add the ability to halt callback chains by: throw :halt
8f17ce0 @obrie Clarify CHANGELOG comments
obrie authored
114 * Add support for dynamic to states in transitions (e.g. :to => lambda {Time.now})
307ac8e @obrie Re-design to be library-agnostic (define state machines on any Ruby c…
obrie authored
115 * Add support for using real blocks in before_transition/after_transition calls instead of using the :do option
116 * Add DataMapper support
117 * Include states referenced in transition callbacks in the list of a machine's known states
118 * Only generate the known states for a machine on demand, rather than calculating beforehand
8f17ce0 @obrie Clarify CHANGELOG comments
obrie authored
119 * Add the ability to skip state change actions during a transition (e.g. vehicle.ignite(false))
307ac8e @obrie Re-design to be library-agnostic (define state machines on any Ruby c…
obrie authored
120 * Add the ability for the state change action (e.g. +save+ for ActiveRecord) to be configurable
121 * Allow state machines to be defined on *any* Ruby class, not just ActiveRecord (removes all external dependencies)
122 * Refactor transitions, guards, and callbacks for better organization/design
8f17ce0 @obrie Clarify CHANGELOG comments
obrie authored
123 * Use a class containing the transition context in callbacks, rather than an ordered list of each individual attribute
f379ba9 @obrie Add missing owner from changelog message
obrie authored
124 * Add without_#{attribute} named scopes (opposite of the existing with_#{attribute} named scopes) [Sean O'Brien]
c7d4cfa @obrie Add changelog message for without_#{attribute} named scopes
obrie authored
125
6d21379 @obrie Tag 0.3.1 release
obrie authored
126 == 0.3.1 / 2008-10-26
127
a6eb537 @obrie Fix the initial state not getting set when the state attribute is mas…
obrie authored
128 * Fix the initial state not getting set when the state attribute is mass-assigned but protected
a3cbd33 @obrie Change how the base module is included to prevent namespacing conflicts
obrie authored
129 * Change how the base module is included to prevent namespacing conflicts
130
ba3975e @obrie Tag 0.3.0 release
obrie authored
131 == 0.3.0 / 2008-09-07
132
6a94afc @obrie MAJOR REWRITE! Replace all before/after_exit/enter/loopback callback …
obrie authored
133 * No longer allow additional arguments to be passed into event actions
134 * Add support for can_#{event}? for checking whether an event can be fired based on the current state of the record
135 * Don't use callbacks for performing transitions
136 * Fix state machines in subclasses not knowing what states/events/transitions were defined by superclasses
137 * Replace all before/after_exit/enter/loopback callback hooks and :before/:after options for events with before_transition/after_transition callbacks, e.g.
138
139 before_transition :from => 'parked', :do => :lock_doors # was before_exit :parked, :lock_doors
140 after_transition :on => 'ignite', :do => :turn_on_radio # was event :ignite, :after => :turn_on_radio do
141
e542664 @obrie Always save when an event is fired even if it results in a loopback
obrie authored
142 * Always save when an event is fired even if it results in a loopback [Jürgen Strobel]
af5d9ad @obrie Ensure initial state callbacks are invoked in the proper order when a…
obrie authored
143 * Ensure initial state callbacks are invoked in the proper order when an event is fired on a new record
e542664 @obrie Always save when an event is fired even if it results in a loopback
obrie authored
144 * Add before_loopback and after_loopback hooks [Jürgen Strobel]
4dabe2c @obrie Add before_loopback and after_loopback hooks
obrie authored
145
179ce54 @obrie Add more descriptive exceptions
obrie authored
146 == 0.2.1 / 2008-07-05
147
148 * Add more descriptive exceptions
149 * Assume the default state attribute is "state" if one is not provided
7f1b4d6 @obrie Add :except_from option for transitions if you want to blacklist states
obrie authored
150 * Add :except_from option for transitions if you want to blacklist states
26d60af @obrie Add PluginAWeek::StateMachine::Machine#states
obrie authored
151 * Add PluginAWeek::StateMachine::Machine#states
152 * Add PluginAWeek::StateMachine::Event#transitions
b90d731 @obrie Allow creating transitions with no from state (effectively allowing t…
obrie authored
153 * Allow creating transitions with no from state (effectively allowing the transition for *any* from state)
154 * Reduce the number of objects created for each transition
155
b3b009b @obrie Add a non-bang version of events (e.g. park) that will return a boole…
obrie authored
156 == 0.2.0 / 2008-06-29
157
158 * Add a non-bang version of events (e.g. park) that will return a boolean value for success
159 * Raise an exception if the bang version of events are used (e.g. park!) and no transition is successful
160 * Change callbacks to act a little more like ActiveRecord
161 * Avoid using string evaluation for dynamic methods
162
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
163 == 0.1.1 / 2008-06-22
6cf38df @obrie Tag 0.1.1 release
obrie authored
164
165 * Remove log files from gems
166
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
167 == 0.1.0 / 2008-05-05
f356504 @obrie Completely rewritten from scratch
obrie authored
168
169 * Completely rewritten from scratch
170 * Renamed to state_machine
171 * Removed database dependencies
172 * Removed models in favor of an attribute-agnostic design
173 * Use ActiveSupport::Callbacks instead of eval_call
174 * Remove dry_transaction_rollbacks dependencies
175 * Added functional tests
176 * Updated documentation
177
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
178 == 0.0.1 / 2007-09-26
26b00de @obrie Add dependency on custom_callbacks
obrie authored
179
5ad4f6c @obrie Prepare release dates/versions
obrie authored
180 * Add dependency on custom_callbacks
b506667 @obrie Move test fixtures out of the test application root directory
obrie authored
181 * Move test fixtures out of the test application root directory
182 * Improve documentation
183 * Remove the StateExtension module in favor of adding singleton methods to the stateful class
307fe93 @obrie Convert dos newlines to unix newlines
obrie authored
184 * Convert dos newlines to unix newlines
cbd2a5a @obrie Fix error message when a given event can't be found in the database.
obrie authored
185 * Fix error message when a given event can't be found in the database
c140b97 @obrie Add before_#{action} and #{action} callbacks when an event is performed.
obrie authored
186 * Add before_#{action} and #{action} callbacks when an event is performed
187 * All state and event callbacks can now explicitly return false in order to cancel the action
188 * Refactor ActiveState callback creation
189 * Refactor unit tests so that they use mock classes instead of themselves
12a93d4 @obrie Allow force_reload option to be set in the state association.
obrie authored
190 * Allow force_reload option to be set in the state association
191 * Don't save the entire model when updating the state_id
90c6786 @obrie Raise exception if a class tries to define a state more than once.
obrie authored
192 * Raise exception if a class tries to define a state more than once
193 * Add tests for PluginAWeek::Has::States::ActiveState
194 * Refactor active state/active event creation
195 * Fix owner_type not being set correctly in active states/events of subclasses
982f2f8 @obrie Allow subclasses to override the initial state.
obrie authored
196 * Allow subclasses to override the initial state
ea86551 @obrie Fix problem with migrations using default null when column cannot be …
obrie authored
197 * Fix problem with migrations using default null when column cannot be null
172f646 @obrie Moved deadline support into a separate plugin (has_state_deadlines).
obrie authored
198 * Moved deadline support into a separate plugin (has_state_deadlines).
199 * Added many more unit tests.
200 * Simplified many of the interfaces for maintainability.
201 * Added support for turning off recording state changes.
202 * Removed the short_description and long_description columns, in favor of an optional human_name column.
203 * Fixed not overriding the correct equality methods in the StateTransition class.
204 * Added to_sym to State and Event.
205 * State#name and Event#name now return the string version of the name instead of the symbol version.
206 * Added State#human_name and Event#human_name to automatically figure out what the human name is if it isn't specified in the table.
207 * Updated manual rollbacks to use the new Rails edge api (ActiveRecord::Rollback exception).
208 * Moved StateExtension class into a separate file in order to help keep the has_state files clean.
209 * Renamed InvalidState and InvalidEvent exceptions to StateNotFound and EventNotFound in order to follow the ActiveRecord convention (i.e. RecordNotFound).
210 * Added StateNotActive and EventNotActive exceptions to help differentiate between states which don't exist and states which weren't defined in the class.
211 * Added support for defining callbacks like so:
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
212
172f646 @obrie Moved deadline support into a separate plugin (has_state_deadlines).
obrie authored
213 def before_exit_parked
214 end
215
216 def after_enter_idling
217 end
218
219 * Added support for defining callbacks using class methods:
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
220
172f646 @obrie Moved deadline support into a separate plugin (has_state_deadlines).
obrie authored
221 before_exit_parked :fasten_seatbelt
222
223 * Added event callbacks after the transition has occurred (e.g. after_park)
224 * State callbacks no longer receive any of the arguments that were provided in the event action
307fe93 @obrie Convert dos newlines to unix newlines
obrie authored
225 * Updated license to include our names.
Something went wrong with that request. Please try again.