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