Class: Spud::TaskArg

Inherits:
Object
  • Object
show all
Extended by:
T::Sig
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.



9
10
11
12
13
14
15
# File 'lib/spud/task_arg.rb', line 9

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

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

Instance Method Details

#has_default?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/spud/task_arg.rb', line 23

def has_default?
  !!@default
end

#named?Boolean

Returns:

  • (Boolean)


33
34
35
# File 'lib/spud/task_arg.rb', line 33

def named?
  @type == 'named'
end

#ordered?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/spud/task_arg.rb', line 28

def ordered?
  @type == 'ordered'
end

#required?Boolean

Returns:

  • (Boolean)


18
19
20
# File 'lib/spud/task_arg.rb', line 18

def required?
  !has_default?
end

#to_sObject



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/spud/task_arg.rb', line 38

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