Class: Hashira::CLI::Flag

Inherits:
Data
  • Object
show all
Defined in:
lib/hashira/cli/flag.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**attributes) ⇒ Flag

Returns a new instance of Flag.



6
# File 'lib/hashira/cli/flag.rb', line 6

def initialize(**attributes) = super(arg: nil, default: "", field: nil, parse: nil, mode: nil, **attributes)

Instance Attribute Details

#argObject (readonly)

Returns the value of attribute arg

Returns:

  • (Object)

    the current value of arg



4
5
6
# File 'lib/hashira/cli/flag.rb', line 4

def arg
  @arg
end

#defaultObject (readonly)

Returns the value of attribute default

Returns:

  • (Object)

    the current value of default



4
5
6
# File 'lib/hashira/cli/flag.rb', line 4

def default
  @default
end

#fieldObject (readonly)

Returns the value of attribute field

Returns:

  • (Object)

    the current value of field



4
5
6
# File 'lib/hashira/cli/flag.rb', line 4

def field
  @field
end

#modeObject (readonly)

Returns the value of attribute mode

Returns:

  • (Object)

    the current value of mode



4
5
6
# File 'lib/hashira/cli/flag.rb', line 4

def mode
  @mode
end

#nameObject (readonly)

Returns the value of attribute name

Returns:

  • (Object)

    the current value of name



4
5
6
# File 'lib/hashira/cli/flag.rb', line 4

def name
  @name
end

#parseObject (readonly)

Returns the value of attribute parse

Returns:

  • (Object)

    the current value of parse



4
5
6
# File 'lib/hashira/cli/flag.rb', line 4

def parse
  @parse
end

#textObject (readonly)

Returns the value of attribute text

Returns:

  • (Object)

    the current value of text



4
5
6
# File 'lib/hashira/cli/flag.rb', line 4

def text
  @text
end

Instance Method Details

#bid(value) ⇒ Object



15
16
17
18
19
20
21
# File 'lib/hashira/cli/flag.rb', line 15

def bid(value)
  case [mode, value]
  in [nil, _] | [_, nil] | [_, []] then nil
  in [:parsed, chosen] then ["#{name} #{chosen}", chosen]
  else [name, mode]
  end
end

#labelObject



23
# File 'lib/hashira/cli/flag.rb', line 23

def label = [name, arg].compact.join(" ")

#namesObject



25
# File 'lib/hashira/cli/flag.rb', line 25

def names = name.split(", ")

#page?Boolean

Returns:

  • (Boolean)


27
# File 'lib/hashira/cli/flag.rb', line 27

def page? = Hashira::CLI::Usage::PAGES.include?(mode)

#read(arguments) ⇒ Object



8
# File 'lib/hashira/cli/flag.rb', line 8

def read(arguments) = arg ? take(arguments) : arguments.delete(name)

#take(arguments) ⇒ Object



10
11
12
13
# File 'lib/hashira/cli/flag.rb', line 10

def take(arguments)
  raw = arguments.take(name, default)
  parse ? parse.parse(raw) : raw
end