Class: Hashira::CLI::Arguments

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

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Arguments

Returns a new instance of Arguments.



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

def initialize(argv)
  @argv = argv.dup
end

Instance Method Details

#delete(flag) ⇒ Object



21
# File 'lib/hashira/cli/arguments.rb', line 21

def delete(flag) = @argv.delete(flag)

#restObject

Raises:



23
24
25
26
27
# File 'lib/hashira/cli/arguments.rb', line 23

def rest
  stray = @argv.find { it.start_with?("-") }
  raise(Hashira::Error, "unknown option #{stray}") if stray
  @argv
end

#take(flag, default) ⇒ Object



8
9
10
11
12
13
# File 'lib/hashira/cli/arguments.rb', line 8

def take(flag, default)
  position = @argv.index(flag)
  return default unless position
  _flag, value = @argv.slice!(position, 2)
  vet(flag, value)
end

#vet(flag, value) ⇒ Object

Raises:



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

def vet(flag, value)
  raise(Hashira::Error, "#{flag} needs a value") if value.to_s.strip.empty?
  raise(Hashira::Error, "#{flag} given more than once") if @argv.include?(flag)
  value
end