Class: Tomo::CLI::Rules::Argument

Inherits:
Object
  • Object
show all
Defined in:
lib/tomo/cli/rules/argument.rb

Instance Method Summary collapse

Constructor Details

#initialize(label, values_proc:, multiple: false, required: false) ⇒ Argument

Returns a new instance of Argument.



5
6
7
8
9
10
# File 'lib/tomo/cli/rules/argument.rb', line 5

def initialize(label, values_proc:, multiple: false, required: false)
  @label = label
  @multiple = multiple
  @required = required
  @values_proc = values_proc
end

Instance Method Details

#candidates(state:, literal: false) ⇒ Object



20
21
22
# File 'lib/tomo/cli/rules/argument.rb', line 20

def candidates(state:, literal: false)
  values(state).reject { |val| literal && val.start_with?("-") }
end

#match(arg, literal: false) ⇒ Object



12
13
14
# File 'lib/tomo/cli/rules/argument.rb', line 12

def match(arg, literal: false)
  1 if literal || !arg.start_with?("-")
end

#multiple?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/tomo/cli/rules/argument.rb', line 28

def multiple?
  @multiple
end

#process(arg, state:) ⇒ Object



16
17
18
# File 'lib/tomo/cli/rules/argument.rb', line 16

def process(arg, state:)
  state.parsed_arg(arg)
end

#required?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/tomo/cli/rules/argument.rb', line 24

def required?
  @required
end

#to_sObject



32
33
34
# File 'lib/tomo/cli/rules/argument.rb', line 32

def to_s
  @label
end