Module: Easyop::Flow::ClassMethods

Defined in:
lib/easyop/flow.rb

Instance Method Summary collapse

Instance Method Details

#_flow_stepsObject



122
123
124
# File 'lib/easyop/flow.rb', line 122

def _flow_steps
  @_flow_steps ||= []
end

#flow(*steps) ⇒ Object

Declare the ordered list of operation classes (and optional guards).



118
119
120
# File 'lib/easyop/flow.rb', line 118

def flow(*steps)
  @_flow_steps = steps.flatten
end

#prepareObject

Returns a FlowBuilder for pre-registering callbacks before .call.

ProcessCheckout.prepare
  .on_success { |ctx| redirect_to order_path(ctx.order) }
  .on_failure { |ctx| flash[:error] = ctx.error }
  .call(user: current_user, cart: current_cart)

ProcessCheckout.prepare
  .bind_with(self)
  .on(success: :order_placed, fail: :show_errors)
  .call(user: current_user, cart: current_cart)


137
138
139
# File 'lib/easyop/flow.rb', line 137

def prepare
  FlowBuilder.new(self)
end