Class: ProcessExecuter::Options::OptionDefinition

Inherits:
Object
  • Object
show all
Defined in:
lib/process_executer/options/option_definition.rb

Overview

Defines an option that can be used by an Options object

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, default: nil, validator: nil) ⇒ OptionDefinition

Create a new option definition

Examples:

option = ProcessExecuter::Options::OptionDefinition.new(
  :timeout_after, default: 10, validator: ->(_k, _v) { timeout_after.is_a?(Numeric) }
)


53
54
55
56
57
# File 'lib/process_executer/options/option_definition.rb', line 53

def initialize(name, default: nil, validator: nil)
  @name = name
  @default = default
  @validator = validator
end

Instance Attribute Details

#defaultObject (readonly)

The default value of the option

Examples:

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

Returns:

  • (Object)


28
29
30
# File 'lib/process_executer/options/option_definition.rb', line 28

def default
  @default
end

#nameSymbol (readonly)

The name of the option

Examples:

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

Returns:

  • (Symbol)


18
19
20
# File 'lib/process_executer/options/option_definition.rb', line 18

def name
  @name
end

#validatorMethod, ... (readonly)

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.

Examples:

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

Returns:

  • (Method, Proc, nil)


44
45
46
# File 'lib/process_executer/options/option_definition.rb', line 44

def validator
  @validator
end