class ProcessExecuter::Options::OptionDefinition

Defines an option that can be used by an Options object

@api public

Attributes

default[R]

The default value of the option

@example

option = ProcessExecuter::Options::OptionDefinition.new(:timeout_after, default: 10)
option.default # => 10

@return [Object]

name[R]

The name of the option

@example

option = ProcessExecuter::Options::OptionDefinition.new(:timeout_after)
option.name # => :timeout_after

@return [Symbol]

validator[R]

A method or proc that validates the option

A callable that receives ‘option_key`, `option_value` and is executed in the context of the options instance. It should add messages to an `errors` array if validation fails.

@example

option = ProcessExecuter::Options::OptionDefinition.new(
  :timeout_after, validator: method(:validate_timeout_after)
)
option.validator # => #<Method: ProcessExecuter#validate_timeout_after>

@return [Method, Proc, nil]

Public Class Methods

new(name, default: nil, validator: nil) click to toggle source

Create a new option definition

@example

option = ProcessExecuter::Options::OptionDefinition.new(
  :timeout_after, default: 10, validator: ->(_k, _v) { timeout_after.is_a?(Numeric) }
)
# File lib/process_executer/options/option_definition.rb, line 53
def initialize(name, default: nil, validator: nil)
  @name = name
  @default = default
  @validator = validator
end