class Dry::Schema::Step

@api private

Attributes

executor[R]

@api private

name[R]

@api private

type[R]

@api private

Public Class Methods

new(type:, name:, executor:) click to toggle source

@api private

# File lib/dry/schema/step.rb, line 50
def initialize(type:, name:, executor:)
  @type = type
  @name = name
  @executor = executor
  validate_name(name)
end

Public Instance Methods

call(result) click to toggle source

@api private

# File lib/dry/schema/step.rb, line 58
def call(result)
  output = executor.(result)
  result.replace(output) if output.is_a?(Hash)
  output
end
scoped(path) click to toggle source

@api private

# File lib/dry/schema/step.rb, line 65
def scoped(path)
  Scoped.new(path, self)
end

Private Instance Methods

validate_name(name) click to toggle source

@api private

# File lib/dry/schema/step.rb, line 72
def validate_name(name)
  return if STEPS_IN_ORDER.include?(name)

  raise ArgumentError, "Undefined step name #{name}. Available names: #{STEPS_IN_ORDER}"
end