class Thor::Arguments

Constants

NUMERIC

Public Class Methods

new(arguments = []) click to toggle source

Takes an array of Thor::Argument objects.

# File lib/thor/parser/arguments.rb, line 30
def initialize(arguments = [])
  @assigns = {}
  @non_assigned_required = []
  @switches = arguments

  arguments.each do |argument|
    if !argument.default.nil?
      @assigns[argument.human_name] = argument.default
    elsif argument.required?
      @non_assigned_required << argument
    end
  end
end
parse(*args) click to toggle source
# File lib/thor/parser/arguments.rb, line 23
def self.parse(*args)
  to_parse = args.pop
  new(*args).parse(to_parse)
end
split(args) click to toggle source

Receives an array of args and returns two arrays, one with arguments and one with switches.

# File lib/thor/parser/arguments.rb, line 12
def self.split(args)
  arguments = []

  args.each do |item|
    break if item =~ /^-/
    arguments << item
  end

  [arguments, args[Range.new(arguments.size, -1)]]
end

Public Instance Methods

parse(args) click to toggle source
# File lib/thor/parser/arguments.rb, line 45
def parse args
  logger.debug __method__.to_s,
    args: args
  
  @pile = args.dup

  @switches.each do |argument|
    break unless peek
    @non_assigned_required.delete(argument)
    @assigns[argument.human_name] = send  :"parse_#{argument.type}",
                                          argument.human_name
  end

  check_requirement!
  @assigns
end
remaining() click to toggle source
# File lib/thor/parser/arguments.rb, line 63
def remaining
  @pile
end