Class: Plz::Arguments

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

Instance Method Summary collapse

Constructor Details

#initialize(argv) ⇒ Arguments

Returns a new instance of Arguments.

Parameters:

  • arguments (Array)

    Raw ARGV



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

def initialize(argv)
  @argv = argv
end

Instance Method Details

#action_nameString?

Returns Given action name.

Returns:

  • (String, nil)

    Given action name



9
10
11
# File 'lib/plz/arguments.rb', line 9

def action_name
  ARGV[0]
end

#headersHash

Returns Headers parsed from given arguments.

Returns:

  • (Hash)

    Headers parsed from given arguments



38
39
40
41
42
43
44
45
46
47
# File 'lib/plz/arguments.rb', line 38

def headers
  ARGV[2..-1].inject({}) do |result, section|
    case
    when /(?<key>.+):(?<value>[^=]+)/ =~ section
      result.merge(key => value)
    else
      result
    end
  end
end

#paramsHash

Returns Params parsed from given arguments.

Returns:

  • (Hash)

    Params parsed from given arguments

Raises:



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/plz/arguments.rb', line 20

def params
  ARGV[2..-1].inject({}) do |result, section|
    case
    when /(?<key>.+):=(?<value>.+)/ =~ section
      begin
        result.merge(key => JSON.parse(%<{"key":#{value}}>)["key"])
      rescue JSON::ParserError
        raise UnparsableJsonParam, value: value
      end
    when /(?<key>.+)=(?<value>.+)/ =~ section
      result.merge(key => value)
    else
      result
    end
  end
end

#target_nameString?

Returns Given target name.

Returns:

  • (String, nil)

    Given target name



14
15
16
# File 'lib/plz/arguments.rb', line 14

def target_name
  ARGV[1]
end