class HammerCLI::Options::ProcessorList

Attributes

name[R]

Public Class Methods

new(sources = [], name: nil) click to toggle source
# File lib/hammer_cli/options/processor_list.rb, line 6
def initialize(sources = [], name: nil)
  @name = name
  self.push(*sources)
end

Public Instance Methods

find_by_name(name) click to toggle source
# File lib/hammer_cli/options/processor_list.rb, line 16
def find_by_name(name)
  self[item_index(name)]
end
insert_relative(mode, target_name, processor) click to toggle source
# File lib/hammer_cli/options/processor_list.rb, line 11
def insert_relative(mode, target_name, processor)
  index = target_name.nil? ? nil : item_index(target_name)
  HammerCLI.insert_relative(self, mode, index, processor)
end
process(defined_options, result) click to toggle source
# File lib/hammer_cli/options/processor_list.rb, line 20
def process(defined_options, result)
  self.inject(result) do |all_options, processor|
    processor.process(defined_options, all_options)
  end
end

Private Instance Methods

item_index(target_name) click to toggle source
# File lib/hammer_cli/options/processor_list.rb, line 28
def item_index(target_name)
  idx = find_index do |item|
    item.respond_to?(:name) && (item.name == target_name)
  end
  raise ArgumentError, "Option processor '#{target_name}' not found" if idx.nil?
  idx
end