class Forerunner::ActionData

Constants

VALID_ACTION_TYPES

Attributes

action_names[R]
action_type[R]
block[R]
options[R]

Public Class Methods

new(action_type:, action_data:, block: nil) click to toggle source
# File lib/forerunner/action_data.rb, line 7
def initialize(action_type:, action_data:, block: nil)
  @action_type = action_type
  @options = action_data.extract_options!
  @action_names = action_data
  @block = block

  validate_action_type!
  validate_action_names!
end

Public Instance Methods

limit_to_action(action) click to toggle source
# File lib/forerunner/action_data.rb, line 17
def limit_to_action(action)
  options[:only] = [action]
end
params() click to toggle source
# File lib/forerunner/action_data.rb, line 21
def params
  action_names + [options]
end

Private Instance Methods

validate_action_names!() click to toggle source
# File lib/forerunner/action_data.rb, line 33
def validate_action_names!
  return if action_names.present? || block.present?

  raise MissingActionNameError
end
validate_action_type!() click to toggle source
# File lib/forerunner/action_data.rb, line 27
def validate_action_type!
  return if VALID_ACTION_TYPES.include?(action_type)

  raise InvalidActionTypeError, action_type
end