Class: Houston::Actions::Action

Inherits:
Struct
  • Object
show all
Defined in:
lib/houston/boot/actions.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, required_params, block) ⇒ Action

Returns a new instance of Action.



93
94
95
# File 'lib/houston/boot/actions.rb', line 93

def initialize(name, required_params, block)
  super name, required_params.map(&:to_s), block
end

Instance Method Details

#assert_required_params!(params) ⇒ Object



97
98
99
100
# File 'lib/houston/boot/actions.rb', line 97

def assert_required_params!(params)
  missing_params = required_params - params
  raise Houston::Observer::MissingParamError, "#{missing_params.first.inspect} is a required param of the action #{name.inspect}" if missing_params.any?
end

#execute(params) ⇒ Object



102
103
104
105
# File 'lib/houston/boot/actions.rb', line 102

def execute(params)
  assert_required_params! params.keys.map(&:to_s)
  ExecutionContext.new(params).instance_eval(&block)
end