module Pathway::Plugins::DryValidation::V1_0::InstanceMethods

Public Instance Methods

validate(state, with: nil) click to toggle source
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 55
def validate(state, with: nil)
  if auto_wire_options && contract_options.any?
    with ||= contract_options.zip(contract_options).to_h
  end
  opts = Hash(with).map { |to, from| [to, state[from]] }.to_h
  validate_with(state[:input], opts)
    .then { |params| state.update(params: params) }
end
validate_with(input, opts = {}) click to toggle source
# File lib/pathway/plugins/dry_validation/v1_0.rb, line 64
def validate_with(input, opts = {})
  result = contract(opts).call(input)

  result.success? ? wrap(result.values.to_h) : error(:validation, details: result.errors.to_h)
end