Class: Trailblazer::Macro::Contract::Validate::Extract

Inherits:
Object
  • Object
show all
Defined in:
lib/trailblazer/macro/contract/validate.rb

Overview

Task: extract the contract’s input from params by reading ‘:key`.

Instance Method Summary collapse

Constructor Details

#initialize(key_path: nil, params_path: nil) ⇒ Extract

Returns a new instance of Extract.



42
43
44
# File 'lib/trailblazer/macro/contract/validate.rb', line 42

def initialize(key_path: nil, params_path: nil)
  @key_path, @params_path = key_path, params_path
end

Instance Method Details

#call(ctx, params: {}) ⇒ Object



46
47
48
49
# File 'lib/trailblazer/macro/contract/validate.rb', line 46

def call(ctx, params: {}, **)
  key = ctx[@key_path] # e.g. {:song}.
  ctx[@params_path] = key ? params[key] : params
end