Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 226 lines (181 sloc) 11.78 kb
7bca32d Aaron Pfeifer Convert to a more sane CHANGELOG format using rdoc
obrie authored
1 == master
45197b0 Aaron Pfeifer Remove tasks that are no longer being used.
obrie authored
2
2c9ebd8 Aaron Pfeifer Don't pass the result of the action as an argument to callbacks (access ...
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 Aaron Pfeifer Fix transition args not being set when run in parallel
obrie authored
5 * Fix transition args not being set when run in parallel
b98d4a3 Aaron Pfeifer 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 Aaron Pfeifer Only catch :halt during before / after transition callbacks
obrie authored
7 * Only catch :halt during before / after transition callbacks
463577d Aaron Pfeifer Fix ActiveRecord predicates being overwritten if they're already defined...
obrie authored
8 * Fix ActiveRecord predicates being overwritten if they're already defined in the class
d12fac3 Aaron Pfeifer 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 Aaron Pfeifer Add missing CHANGELOG message: Turn transactions off by default in DataM...
obrie authored
10 * Turn transactions off by default in DataMapper integrations
82bbb0b Aaron Pfeifer Add support for configuring the use of transactions
obrie authored
11 * Add support for configuring the use of transactions
891d2ea Aaron Pfeifer Simplify reading/writing of attributes
obrie authored
12 * Simplify reading/writing of attributes
3816088 Aaron Pfeifer Simplify access to state machines via #state_machine(:attribute) without...
obrie authored
13 * Simplify access to state machines via #state_machine(:attribute) without generating dupes
dd659a6 Aaron Pfeifer Fix assumptions that dm-validations is always available in DataMapper in...
obrie authored
14 * Fix assumptions that dm-validations is always available in DataMapper integration
93893cf Aaron Pfeifer Automatically define DataMapper properties for machine attributes if the...
obrie authored
15 * Automatically define DataMapper properties for machine attributes if they don't exist
6b35593 Aaron Pfeifer Add Transition#qualified_event, #qualified_from_name, and #qualified_to_...
obrie authored
16 * Add Transition#qualified_event, #qualified_from_name, and #qualified_to_name
17b472c Aaron Pfeifer Add #fire_events / #fire_events! for running events on multiple state ma...
obrie authored
17 * Add #fire_events / #fire_events! for running events on multiple state machines in parallel
26e1b8f Aaron Pfeifer 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 Aaron Pfeifer Use generated non-bang event when running bang version so that overridin...
obrie authored
21 * Use generated non-bang event when running bang version so that overriding one affects the other
47f72a6 Aaron Pfeifer Provide access to arguments passed into an event from transition callbac...
obrie authored
22 * Provide access to arguments passed into an event from transition callbacks via Transition#args
23
37b2363 Aaron Pfeifer Tag 0.6.3 release
obrie authored
24 == 0.6.3 / 2008-03-10
25
51306ac Aaron Pfeifer Add support for customizing the graph's orientation
obrie authored
26 * Add support for customizing the graph's orientation
b2b841d Aaron Pfeifer Use the standard visualizations for initial (open arrow) and final (doub...
obrie authored
27 * Use the standard visualizations for initial (open arrow) and final (double circle) states
f506670 Aaron Pfeifer Highlight final states in GraphViz drawings
obrie authored
28 * Highlight final states in GraphViz drawings
29
da5f0c2 Aaron Pfeifer Tag 0.6.2 release
obrie authored
30 == 0.6.2 / 2009-03-08
31
ea7eb4c Aaron Pfeifer Make it easier to override generated instance / class methods
obrie authored
32 * Make it easier to override generated instance / class methods
33
fb3fa92 Aaron Pfeifer Tag 0.6.1 release
obrie authored
34 == 0.6.1 / 2009-03-07
35
d0c9991 Aaron Pfeifer Add i18n support for ActiveRecord validation errors
obrie authored
36 * Add i18n support for ActiveRecord validation errors
8c843f0 Aaron Pfeifer Add a validation error when failing to transition for ActiveRecord / Dat...
obrie authored
37 * Add a validation error when failing to transition for ActiveRecord / DataMapper / Sequel integrations
38
3022154 Aaron Pfeifer Tag 0.6.0 release
obrie authored
39 == 0.6.0 / 2009-03-03
40
13f0f20 Aaron Pfeifer Allow multiple conditions for callbacks / class behaviors
obrie authored
41 * Allow multiple conditions for callbacks / class behaviors
d9b66f3 Aaron Pfeifer Fix typo in changelog
obrie authored
42 * Add support for state-driven class behavior with :if/:unless options
88f8a0d Aaron Pfeifer Alias Machine#event as Machine#on
obrie authored
43 * Alias Machine#event as Machine#on
cdec7f2 Aaron Pfeifer Add simplified transition/callback requirement syntax (and recommend its...
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 Aaron Pfeifer Tag 0.5.2 release
obrie authored
48 == 0.5.2 / 2009-02-17
49
237096f Aaron Pfeifer 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 Aaron Pfeifer Add better error notification when conflicting guard options are defined
obrie authored
52 * Add better error notification when conflicting guard options are defined
cd16cad Aaron Pfeifer Fix scope name pluralization not being applied correctly [#13 state:reso...
obrie authored
53 * Fix scope name pluralization not being applied correctly
54
97cf57a Aaron Pfeifer Tag 0.5.1 release
obrie authored
55 == 0.5.1 / 2009-02-11
56
d6fbdcc Aaron Pfeifer 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 Aaron Pfeifer Fix rake tasks not being registered in Rails/Merb applications [#11 stat...
obrie authored
58 * Fix rake tasks not being registered in Rails/Merb applications
1475acf Aaron Pfeifer Never automatically define machine attribute accessors when using an int...
obrie authored
59 * Never automatically define machine attribute accessors when using an integration
60
04f28ff Aaron Pfeifer Fix 0.5.0 release date
obrie authored
61 == 0.5.0 / 2009-01-11
ddc8d1a Aaron Pfeifer Tag 0.5.0 release
obrie authored
62
45bc27f Aaron Pfeifer Add missing changelog message for to_name / from_name additions in trans...
obrie authored
63 * Add to_name and from_name to transition objects
7f7fc4a Aaron Pfeifer Add nicely formatted #inspect for transitions
obrie authored
64 * Add nicely formatted #inspect for transitions
762906a Aaron Pfeifer Fix ActiveRecord integrations failing when the database doesn't exist ye...
obrie authored
65 * Fix ActiveRecord integrations failing when the database doesn't exist yet
b9d0ccc Aaron Pfeifer 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 Aaron Pfeifer Add compatibility with Ruby 1.9+
obrie authored
76 * Add compatibility with Ruby 1.9+
77
ba6dfeb Aaron Pfeifer Tag 0.4.3 release
obrie authored
78 == 0.4.3 / 2008-12-28
79
bae9e16 Aaron Pfeifer Allow dm-observer integration to be optional
obrie authored
80 * Allow dm-observer integration to be optional
82a5135 Aaron Pfeifer Fix non-lambda callbacks not working for DataMapper/Sequel
obrie authored
81 * Fix non-lambda callbacks not working for DataMapper/Sequel
82
faef342 Aaron Pfeifer Tag 0.4.2 release
obrie authored
83 == 0.4.2 / 2008-12-28
84
a8bf1c9 Aaron Pfeifer Fix graphs not being drawn the same way consistently
obrie authored
85 * Fix graphs not being drawn the same way consistently
b8de3a7 Aaron Pfeifer Add support for sharing transitions across multiple events
obrie authored
86 * Add support for sharing transitions across multiple events
db88b6f Aaron Pfeifer Add support for state-driven behavior
obrie authored
87 * Add support for state-driven behavior
d71fedb Aaron Pfeifer Simplify initialize hooks, requiring super to be called instead
obrie authored
88 * Simplify initialize hooks, requiring super to be called instead
cfa7757 Aaron Pfeifer Add :namespace option for generated state predicates / event methods
obrie authored
89 * Add :namespace option for generated state predicates / event methods
90
2035234 Aaron Pfeifer Tag 0.4.1 release
obrie authored
91 == 0.4.1 / 2008-12-16
92
977c977 Aaron Pfeifer Fix nil states not being handled properly in guards, known states, or vi...
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 Aaron Pfeifer Fix attribute predicates not working on attributes that represent column...
obrie authored
98 * Fix attribute predicates not working on attributes that represent columns in ActiveRecord
99
5d5b3d2 Aaron Pfeifer Tag 0.4.0 release
obrie authored
100 == 0.4.0 / 2008-12-14
101
146afff Aaron Pfeifer Remove the PluginAWeek namespace
obrie authored
102 * Remove the PluginAWeek namespace
48d83df Aaron Pfeifer Add generic attribute predicate (e.g. "#{attribute}?(state_name)") and s...
obrie authored
103 * Add generic attribute predicate (e.g. "#{attribute}?(state_name)") and state predicates (e.g. "#{state}?")
b68d4bd Aaron Pfeifer Add Sequel support
obrie authored
104 * Add Sequel support
06e8e84 Aaron Pfeifer Fix aliasing :initialize on ActiveRecord models causing warnings when th...
obrie authored
105 * Fix aliasing :initialize on ActiveRecord models causing warnings when the environment is reloaded
c3d532f Aaron Pfeifer Fix ActiveRecord state machines trying to query the database on unmigrat...
obrie authored
106 * Fix ActiveRecord state machines trying to query the database on unmigrated models
bee135e Aaron Pfeifer Fix initial states not getting set when the current value is an empty st...
obrie authored
107 * Fix initial states not getting set when the current value is an empty string [Aaron Gibralter]
6f25124 Nate Murray 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 Aaron Pfeifer 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 referenced...
Pete Forde authored
110 * Add other_states directive for defining additional states not referenced in transitions or callbacks [Pete Forde]
bbd3a98 Aaron Pfeifer Add next_#{event}_transition for getting the next transition that would ...
obrie authored
111 * Add next_#{event}_transition for getting the next transition that would be performed if the event were invoked
fab942f Aaron Pfeifer 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 Aaron Pfeifer Clarify CHANGELOG comments
obrie authored
114 * Add support for dynamic to states in transitions (e.g. :to => lambda {Time.now})
307ac8e Aaron Pfeifer Re-design to be library-agnostic (define state machines on any Ruby clas...
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 Aaron Pfeifer Clarify CHANGELOG comments
obrie authored
119 * Add the ability to skip state change actions during a transition (e.g. vehicle.ignite(false))
307ac8e Aaron Pfeifer Re-design to be library-agnostic (define state machines on any Ruby clas...
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 Aaron Pfeifer 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 Aaron Pfeifer 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 Aaron Pfeifer Add changelog message for without_#{attribute} named scopes
obrie authored
125
6d21379 Aaron Pfeifer Tag 0.3.1 release
obrie authored
126 == 0.3.1 / 2008-10-26
127
a6eb537 Aaron Pfeifer Fix the initial state not getting set when the state attribute is mass-a...
obrie authored
128 * Fix the initial state not getting set when the state attribute is mass-assigned but protected
a3cbd33 Aaron Pfeifer 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 Aaron Pfeifer Tag 0.3.0 release
obrie authored
131 == 0.3.0 / 2008-09-07
132
6a94afc Aaron Pfeifer MAJOR REWRITE! Replace all before/after_exit/enter/loopback callback hoo...
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 Aaron Pfeifer 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 Aaron Pfeifer Ensure initial state callbacks are invoked in the proper order when an e...
obrie authored
143 * Ensure initial state callbacks are invoked in the proper order when an event is fired on a new record
e542664 Aaron Pfeifer 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 Aaron Pfeifer Add before_loopback and after_loopback hooks
obrie authored
145
179ce54 Aaron Pfeifer 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 Aaron Pfeifer 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 Aaron Pfeifer Add PluginAWeek::StateMachine::Machine#states
obrie authored
151 * Add PluginAWeek::StateMachine::Machine#states
152 * Add PluginAWeek::StateMachine::Event#transitions
b90d731 Aaron Pfeifer Allow creating transitions with no from state (effectively allowing the ...
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 Aaron Pfeifer Add a non-bang version of events (e.g. park) that will return a boolean ...
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 Aaron Pfeifer Convert to a more sane CHANGELOG format using rdoc
obrie authored
163 == 0.1.1 / 2008-06-22
6cf38df Aaron Pfeifer Tag 0.1.1 release
obrie authored
164
165 * Remove log files from gems
166
7bca32d Aaron Pfeifer Convert to a more sane CHANGELOG format using rdoc
obrie authored
167 == 0.1.0 / 2008-05-05
f356504 Aaron Pfeifer 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 Aaron Pfeifer Convert to a more sane CHANGELOG format using rdoc
obrie authored
178 == 0.0.1 / 2007-09-26
26b00de Aaron Pfeifer Add dependency on custom_callbacks
obrie authored
179
5ad4f6c Aaron Pfeifer Prepare release dates/versions
obrie authored
180 * Add dependency on custom_callbacks
b506667 Aaron Pfeifer 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 Aaron Pfeifer Convert dos newlines to unix newlines
obrie authored
184 * Convert dos newlines to unix newlines
cbd2a5a Aaron Pfeifer 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 Aaron Pfeifer 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 Aaron Pfeifer 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 Aaron Pfeifer 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 Aaron Pfeifer Allow subclasses to override the initial state.
obrie authored
196 * Allow subclasses to override the initial state
ea86551 Aaron Pfeifer Fix problem with migrations using default null when column cannot be nul...
obrie authored
197 * Fix problem with migrations using default null when column cannot be null
172f646 Aaron Pfeifer 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 Aaron Pfeifer Convert to a more sane CHANGELOG format using rdoc
obrie authored
212
172f646 Aaron Pfeifer 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 Aaron Pfeifer Convert to a more sane CHANGELOG format using rdoc
obrie authored
220
172f646 Aaron Pfeifer 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 Aaron Pfeifer Convert dos newlines to unix newlines
obrie authored
225 * Updated license to include our names.
Something went wrong with that request. Please try again.