class Fuelcell::Action::ArgsManager
Used by the Command
to manage adding args from its dsl. It is also used during arg parsing to find args, or check if any required args have been missed
Attributes
args[R]
Public Class Methods
new()
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 12 def initialize @args = [] end
Public Instance Methods
add(arg, config = {})
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 36 def add(arg, config = {}) arg = create(arg, config) if arg.is_a?(String) args.each do |item| if item.name == arg.name fail "can not add arg: duplicate exists with name #{arg.name}" end end args << arg end
Also aliased as: arg
args?()
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 16 def args? !empty? end
create(name, config = {})
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 61 def create(name, config = {}) ArgDefinition.new(name, config) end
find(name)
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 53 def find(name) target = false args.each {|arg| target = arg if arg.name == name } target end
missing(names) { |list| ... }
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 25 def missing(names) list = [] args.select do |arg| list << arg if arg.required? && !names.include?(arg.name) end return [] if list.empty? yield list if block_given? list end
remove(name)
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 47 def remove(name) # looks like an arg definition so lets use it's name name = name.name if name.respond_to?(:name) args.delete_if {|arg| arg.name == name} end
required()
click to toggle source
# File lib/fuelcell/action/args_manager.rb, line 20 def required args.select { |arg| arg.required? } end
Also aliased as: required_args