class TTY::Option::Pipeline

Constants

PROCESSORS

Public Class Methods

new(error_aggregator) click to toggle source

Create a param processing pipeline

@api private

# File lib/tty/option/pipeline.rb, line 19
def initialize(error_aggregator)
  @error_aggregator = error_aggregator
end

Public Instance Methods

call(param, value) click to toggle source

Process param value through conditions

@api public

# File lib/tty/option/pipeline.rb, line 26
def call(param, value)
  result = Result.success(value)
  PROCESSORS.each do |processor|
    result = processor[param, result.value]
    if result.failure?
      Array(result.error).each { |err| @error_aggregator.(err) }
    end
  end
  result.value
end