class Forerunner::Builder

Attributes

actions[RW]
controller[R]

Public Class Methods

new(controller) click to toggle source
# File lib/forerunner/builder.rb, line 8
def initialize(controller)
  @controller = controller
  @actions = []
end

Public Instance Methods

enqueue_action(action_type, action_params, block) click to toggle source
# File lib/forerunner/builder.rb, line 13
def enqueue_action(action_type, action_params, block)
  actions << parse_action_data(action_type, action_params, block)
end
process_actions(target_action) click to toggle source
# File lib/forerunner/builder.rb, line 17
def process_actions(target_action)
  actions.each do |action_data|
    insert_new_filter(target_action, action_data)
  end

  actions.clear
end

Private Instance Methods

insert_new_filter(target_action, action_data) click to toggle source
# File lib/forerunner/builder.rb, line 27
def insert_new_filter(target_action, action_data)
  action_data.limit_to_action(target_action)

  _insert_callbacks(action_data.params, action_data.block) do |name, options|
    set_callback(:process_action, action_data.action_type, name, options)
  end
end
parse_action_data(action_type, action_params, block) click to toggle source
# File lib/forerunner/builder.rb, line 35
def parse_action_data(action_type, action_params, block)
  ActionData.new(
    action_type: action_type,
    action_data: action_params,
    block: block
  )
end