Class: GLI::Flag

Inherits:
CommandLineOption show all
Defined in:
lib/gli/flag.rb

Overview

Defines a flag, which is to say a switch that takes an argument

Instance Attribute Summary collapse

Attributes inherited from CommandLineOption

#associated_command, #default_value

Attributes inherited from CommandLineToken

#aliases, #description, #long_description, #name

Instance Method Summary collapse

Methods inherited from CommandLineOption

name_as_string

Methods inherited from CommandLineToken

#<=>, #names_and_aliases

Constructor Details

#initialize(names, options) ⇒ Flag

Creates a new option

names

Array of symbols or strings representing the names of this switch

options

hash of options:

:desc

the short description

:long_desc

the long description

:default_value

the default value of this option

:arg_name

the name of the flag’s argument, default is “arg”

:must_match

a regexp that the flag’s value must match

:type

a class to convert the value to

:required

if true, this flag must be specified on the command line

:mask

if true, the default value of this flag will not be output in the help. This is useful for password flags where you might not want to show it on the command-line.



30
31
32
33
34
35
36
37
38
# File 'lib/gli/flag.rb', line 30

def initialize(names,options)
  super(names,options)
  @argument_name = options[:arg_name] || "arg"
  @default_value = options[:default_value]
  @must_match = options[:must_match]
  @type = options[:type]
  @mask = options[:mask]
  @required = options[:required]
end

Instance Attribute Details

#argument_nameObject (readonly)

Name of the argument that user configured



14
15
16
# File 'lib/gli/flag.rb', line 14

def argument_name
  @argument_name
end

#must_matchObject (readonly)

Regexp that is used to see if the flag’s argument matches



8
9
10
# File 'lib/gli/flag.rb', line 8

def must_match
  @must_match
end

#typeObject (readonly)

Type to which we want to cast the values



11
12
13
# File 'lib/gli/flag.rb', line 11

def type
  @type
end

Instance Method Details

#all_forms(joiner = ', ') ⇒ Object

Returns a string of all possible forms of this flag. Mostly intended for printing to the user.



64
65
66
67
68
69
70
71
72
73
74
# File 'lib/gli/flag.rb', line 64

def all_forms(joiner=', ')
  forms = all_forms_a
  string = forms.join(joiner)
  if forms[-1] =~ /^\-\-/
    string += '='
  else
    string += ' '
  end
  string += @argument_name
  return string
end

#arguments_for_option_parserObject



54
55
56
57
58
59
# File 'lib/gli/flag.rb', line 54

def arguments_for_option_parser
  args = all_forms_a.map { |name| "#{name} VAL" }
  args << @must_match if @must_match
  args << @type if @type
  args
end

#required?Boolean

True if this flag is required on the command line

Returns:

  • (Boolean)


41
42
43
# File 'lib/gli/flag.rb', line 41

def required?
  @required
end

#safe_default_valueObject



46
47
48
49
50
51
52
# File 'lib/gli/flag.rb', line 46

def safe_default_value
  if @mask
    "********"
  else
    default_value
  end
end