Class: Spud::TaskArg

Inherits:
Object
  • Object
show all
Defined in:
lib/spud/task_arg.rb

Instance Method Summary collapse

Constructor Details

#initialize(name, type, default: nil) ⇒ TaskArg

Returns a new instance of TaskArg.

Parameters:

  • name (String)
  • type (String)
  • default (String) (defaults to: nil)


6
7
8
9
10
11
12
# File 'lib/spud/task_arg.rb', line 6

def initialize(name, type, default: nil)
  raise 'must be of type "positional" or "named"' unless %w[positional named].include?(type)

  @name = name
  @type = type
  @default = default
end

Instance Method Details

#has_default?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/spud/task_arg.rb', line 20

def has_default?
  !!@default
end

#named?Boolean

Returns:

  • (Boolean)


30
31
32
# File 'lib/spud/task_arg.rb', line 30

def named?
  @type == 'named'
end

#positional?Boolean

Returns:

  • (Boolean)


25
26
27
# File 'lib/spud/task_arg.rb', line 25

def positional?
  @type == 'positional'
end

#required?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/spud/task_arg.rb', line 15

def required?
  !has_default?
end

#to_sString

Returns:

  • (String)


35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/spud/task_arg.rb', line 35

def to_s
  if positional?
    if has_default?
      "<#{@name}=#{@default}>"
    else
      "<#{@name}>"
    end
  else
    if has_default?
      "--#{@name}=#{@default}"
    else
      "--#{@name}"
    end
  end
end