class Crew::Task::Arguments::Definition

Attributes

desc[R]
name[R]
type[R]

Public Class Methods

new(name, type, desc, opts) click to toggle source
# File lib/crew/task/arguments.rb, line 21
def initialize(name, type, desc, opts)
  @name, @type, @desc, @opts = name, type, desc, opts
end

Public Instance Methods

glob?() click to toggle source
# File lib/crew/task/arguments.rb, line 42
def glob?
  @type == :glob
end
required?() click to toggle source
# File lib/crew/task/arguments.rb, line 38
def required?
  @type == :required
end
value(args, opts) click to toggle source
# File lib/crew/task/arguments.rb, line 25
def value(args, opts)
  val = case @type
  when :required then args.shift
  when :opt      then opts.key?(@name) ? opts[@name] : @opts[:default]
  when :glob     then args.slice!(0, args.size)
  else                raise "unknown #{@name}"
  end
  if @opts[:type] == Integer
    val = Integer(val)
  end
  val
end