class Toys::StandardMiddleware::ApplyConfig

A middleware that applies the given block to all tool configurations.

Public Class Methods

new(parent_source: nil, source_name: nil, &block) click to toggle source

Create an ApplyConfig middleware

@param parent_source [Toys::SourceInfo] The SourceInfo corresponding to

the source where this block is provided, or `nil` (the default) if
the block does not come from a Toys file.

@param source_name [String] A user-visible name for the source, or

`nil` to use the default.

@param block [Proc] The configuration to apply.

# File lib/toys/standard_middleware/apply_config.rb, line 19
def initialize(parent_source: nil, source_name: nil, &block)
  @source_info =
    if parent_source
      parent_source.proc_child(block, source_name: source_name)
    else
      SourceInfo.create_proc_root(block, source_name: source_name)
    end
  @block = block
end

Public Instance Methods

config(tool, loader) { || ... } click to toggle source

Appends the configuration block. @private

# File lib/toys/standard_middleware/apply_config.rb, line 33
def config(tool, loader)
  tool_class = tool.tool_class
  DSL::Internal.prepare(tool_class, tool.full_name, tool.priority, nil, @source_info,
                        loader) do
    tool_class.class_eval(&@block)
  end
  yield
end