Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Newer
Older
100644 116 lines (93 sloc) 6.086 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
307ac8e @obrie Re-design to be library-agnostic (define state machines on any Ruby clas...
obrie authored
3 * Add support for dynamic to states in transitions
4 * Add support for using real blocks in before_transition/after_transition calls instead of using the :do option
5 * Add DataMapper support
6 * DRY documentation
7 * Include states referenced in transition callbacks in the list of a machine's known states
8 * Only generate the known states for a machine on demand, rather than calculating beforehand
9 * Add the ability to skip state change actions during a transition
10 * Add the ability for the state change action (e.g. +save+ for ActiveRecord) to be configurable
11 * Allow state machines to be defined on *any* Ruby class, not just ActiveRecord (removes all external dependencies)
12 * Refactor transitions, guards, and callbacks for better organization/design
13 * Use a class containing the transition result in callbacks, rather than an ordered list of each individual attribute
f379ba9 @obrie Add missing owner from changelog message
obrie authored
14 * 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
15
6d21379 @obrie Tag 0.3.1 release
obrie authored
16 == 0.3.1 / 2008-10-26
17
a6eb537 @obrie Fix the initial state not getting set when the state attribute is mass-a...
obrie authored
18 * 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
19 * Change how the base module is included to prevent namespacing conflicts
20
ba3975e @obrie Tag 0.3.0 release
obrie authored
21 == 0.3.0 / 2008-09-07
22
6a94afc @obrie MAJOR REWRITE! Replace all before/after_exit/enter/loopback callback hoo...
obrie authored
23 * No longer allow additional arguments to be passed into event actions
24 * Add support for can_#{event}? for checking whether an event can be fired based on the current state of the record
25 * Don't use callbacks for performing transitions
26 * Fix state machines in subclasses not knowing what states/events/transitions were defined by superclasses
27 * Replace all before/after_exit/enter/loopback callback hooks and :before/:after options for events with before_transition/after_transition callbacks, e.g.
28
29 before_transition :from => 'parked', :do => :lock_doors # was before_exit :parked, :lock_doors
30 after_transition :on => 'ignite', :do => :turn_on_radio # was event :ignite, :after => :turn_on_radio do
31
e542664 @obrie Always save when an event is fired even if it results in a loopback
obrie authored
32 * 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 an e...
obrie authored
33 * 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
34 * Add before_loopback and after_loopback hooks [Jürgen Strobel]
4dabe2c @obrie Add before_loopback and after_loopback hooks
obrie authored
35
179ce54 @obrie Add more descriptive exceptions
obrie authored
36 == 0.2.1 / 2008-07-05
37
38 * Add more descriptive exceptions
39 * 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
40 * Add :except_from option for transitions if you want to blacklist states
26d60af @obrie Add PluginAWeek::StateMachine::Machine#states
obrie authored
41 * Add PluginAWeek::StateMachine::Machine#states
42 * Add PluginAWeek::StateMachine::Event#transitions
b90d731 @obrie Allow creating transitions with no from state (effectively allowing the ...
obrie authored
43 * Allow creating transitions with no from state (effectively allowing the transition for *any* from state)
44 * Reduce the number of objects created for each transition
45
b3b009b @obrie Add a non-bang version of events (e.g. park) that will return a boolean ...
obrie authored
46 == 0.2.0 / 2008-06-29
47
48 * Add a non-bang version of events (e.g. park) that will return a boolean value for success
49 * Raise an exception if the bang version of events are used (e.g. park!) and no transition is successful
50 * Change callbacks to act a little more like ActiveRecord
51 * Avoid using string evaluation for dynamic methods
52
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
53 == 0.1.1 / 2008-06-22
6cf38df @obrie Tag 0.1.1 release
obrie authored
54
55 * Remove log files from gems
56
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
57 == 0.1.0 / 2008-05-05
f356504 @obrie Completely rewritten from scratch
obrie authored
58
59 * Completely rewritten from scratch
60 * Renamed to state_machine
61 * Removed database dependencies
62 * Removed models in favor of an attribute-agnostic design
63 * Use ActiveSupport::Callbacks instead of eval_call
64 * Remove dry_transaction_rollbacks dependencies
65 * Added functional tests
66 * Updated documentation
67
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
68 == 0.0.1 / 2007-09-26
26b00de @obrie Add dependency on custom_callbacks
obrie authored
69
5ad4f6c @obrie Prepare release dates/versions
obrie authored
70 * Add dependency on custom_callbacks
b506667 @obrie Move test fixtures out of the test application root directory
obrie authored
71 * Move test fixtures out of the test application root directory
72 * Improve documentation
73 * Remove the StateExtension module in favor of adding singleton methods to the stateful class
307fe93 @obrie Convert dos newlines to unix newlines
obrie authored
74 * Convert dos newlines to unix newlines
cbd2a5a @obrie Fix error message when a given event can't be found in the database.
obrie authored
75 * 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
76 * Add before_#{action} and #{action} callbacks when an event is performed
77 * All state and event callbacks can now explicitly return false in order to cancel the action
78 * Refactor ActiveState callback creation
79 * 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
80 * Allow force_reload option to be set in the state association
81 * 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
82 * Raise exception if a class tries to define a state more than once
83 * Add tests for PluginAWeek::Has::States::ActiveState
84 * Refactor active state/active event creation
85 * Fix owner_type not being set correctly in active states/events of subclasses
982f2f8 @obrie Allow subclasses to override the initial state.
obrie authored
86 * Allow subclasses to override the initial state
ea86551 @obrie Fix problem with migrations using default null when column cannot be nul...
obrie authored
87 * 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
88 * Moved deadline support into a separate plugin (has_state_deadlines).
89 * Added many more unit tests.
90 * Simplified many of the interfaces for maintainability.
91 * Added support for turning off recording state changes.
92 * Removed the short_description and long_description columns, in favor of an optional human_name column.
93 * Fixed not overriding the correct equality methods in the StateTransition class.
94 * Added to_sym to State and Event.
95 * State#name and Event#name now return the string version of the name instead of the symbol version.
96 * 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.
97 * Updated manual rollbacks to use the new Rails edge api (ActiveRecord::Rollback exception).
98 * Moved StateExtension class into a separate file in order to help keep the has_state files clean.
99 * Renamed InvalidState and InvalidEvent exceptions to StateNotFound and EventNotFound in order to follow the ActiveRecord convention (i.e. RecordNotFound).
100 * Added StateNotActive and EventNotActive exceptions to help differentiate between states which don't exist and states which weren't defined in the class.
101 * Added support for defining callbacks like so:
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
102
172f646 @obrie Moved deadline support into a separate plugin (has_state_deadlines).
obrie authored
103 def before_exit_parked
104 end
105
106 def after_enter_idling
107 end
108
109 * Added support for defining callbacks using class methods:
7bca32d @obrie Convert to a more sane CHANGELOG format using rdoc
obrie authored
110
172f646 @obrie Moved deadline support into a separate plugin (has_state_deadlines).
obrie authored
111 before_exit_parked :fasten_seatbelt
112
113 * Added event callbacks after the transition has occurred (e.g. after_park)
114 * 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
115 * Updated license to include our names.
Something went wrong with that request. Please try again.