diff --git a/lib/workflower/acts_as_workflower.rb b/lib/workflower/acts_as_workflower.rb index fa42410..478a10e 100644 --- a/lib/workflower/acts_as_workflower.rb +++ b/lib/workflower/acts_as_workflower.rb @@ -48,6 +48,14 @@ module Workflower @allowed_transitions ||= @workflower_base.allowed_transitions end + def workflower_uninitializer + @workflower_base.uninitialize + + @possible_events = [] + @allowed_events = [] + @allowed_transitions = [] + end + def initialize(*) super write_attribute :workflow_id, default_workflow_id if workflow_id.blank? diff --git a/lib/workflower/manager.rb b/lib/workflower/manager.rb index ebc514f..5d6f02b 100644 --- a/lib/workflower/manager.rb +++ b/lib/workflower/manager.rb @@ -18,6 +18,20 @@ module Workflower @validation_errors = [] end + def uninitialize + @transitions = [] + @current_state = [] + @current_sequence = [] + @calling_model = [] + @source = [] + + # Flows + @flows_container = [] + @events = [] + @allowed_events = [] + @validation_errors = [] + end + def buildup_flows possible_transitions.map { |transition| Workflower::Flow.new(transition) } end