Class: CodelessCode::Options

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
Enumerable
Defined in:
lib/codeless_code/options.rb

Instance Method Summary collapse

Constructor Details

#initialize(command_name, argv) ⇒ Options

Returns a new instance of Options.



27
28
29
30
# File 'lib/codeless_code/options.rb', line 27

def initialize(command_name, argv)
  @command_name = command_name
  @argv = argv
end

Instance Method Details

#argsObject



54
55
56
# File 'lib/codeless_code/options.rb', line 54

def args
  opts.arguments[1..-1]
end

#helpObject



50
51
52
# File 'lib/codeless_code/options.rb', line 50

def help
  opts(suppress: true).to_s
end

#key?(key) ⇒ Boolean

Returns:

  • (Boolean)


46
47
48
# File 'lib/codeless_code/options.rb', line 46

def key?(key)
  !!self[key]
end

#opts(suppress: false) ⇒ Object



32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/codeless_code/options.rb', line 32

def opts(suppress: false)
  @opts ||=
    begin
      args = [@command_name] + @argv
      opts = CodelessCode::OPTIONS.curry[@command_name]

      Slop.parse(args, suppress_errors: suppress, &opts).tap do |opt|
        if !suppress && opt.arguments.size > 2
          raise format('too many arguments: %p', opt.arguments[1..-1])
        end
      end
    end
end