Module: ArgParser::DSL::ClassMethods

Defined in:
lib/arg-parser/dsl.rb

Overview

Class methods added when DSL module is included into a class.

Instance Method Summary collapse

Instance Method Details

#args_defObject

Accessor to return a Definition object holding the command-line argument definitions.



40
41
42
# File 'lib/arg-parser/dsl.rb', line 40

def args_def
    @args_def ||= ArgParser::Definition.new
end

#args_defined?Boolean

Returns true if any arguments have been defined

Returns:

  • (Boolean)


45
46
47
# File 'lib/arg-parser/dsl.rb', line 45

def args_defined?
    @args_def && @args_def.args.size > 0
end

#flag_arg(key, desc, opts = {}, &block) ⇒ Object

Define a new flag argument.



85
86
87
88
89
# File 'lib/arg-parser/dsl.rb', line 85

def flag_arg(key, desc, opts = {}, &block)
    opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
    @arg_opts = nil
    args_def.flag_arg(key, desc, opts, &block)
end

#keyword_arg(key, desc, opts = {}, &block) ⇒ Object

Define a new positional argument.



77
78
79
80
81
# File 'lib/arg-parser/dsl.rb', line 77

def keyword_arg(key, desc, opts = {}, &block)
    opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
    @arg_opts = nil
    args_def.keyword_arg(key, desc, opts, &block)
end

#positional_arg(key, desc, opts = {}, &block) ⇒ Object

Define a new positional argument.



69
70
71
72
73
# File 'lib/arg-parser/dsl.rb', line 69

def positional_arg(key, desc, opts = {}, &block)
    opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
    @arg_opts = nil
    args_def.positional_arg(key, desc, opts, &block)
end

#predefined_arg(lookup_key, desc = nil, opts = {}) ⇒ Object

Use a pre-defined argument.



101
102
103
104
105
106
107
108
109
110
# File 'lib/arg-parser/dsl.rb', line 101

def predefined_arg(lookup_key, desc = nil, opts = {})
    if desc.is_a?(Hash)
        opts = desc
        desc = nil
    end
    opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
    opts[:description] = desc if desc
    @arg_opts = nil
    args_def.predefined_arg(lookup_key, opts)
end

#purpose(desc) ⇒ Object

Sets the descriptive text that describes the purpose of the job represented by this class.



63
64
65
# File 'lib/arg-parser/dsl.rb', line 63

def purpose(desc)
    args_def.purpose = desc
end

#register_parse_handler(key, &block) ⇒ Object

Registers the supplied block as an on_parse handler that can be attached to an argument using key.



51
52
53
# File 'lib/arg-parser/dsl.rb', line 51

def register_parse_handler(key, &block)
    ArgParser::OnParseHandlers[key] = block
end

#require_any_of(*keys) ⇒ Object

Make one or more of the specified arguments mandatory.



126
127
128
# File 'lib/arg-parser/dsl.rb', line 126

def require_any_of(*keys)
    args_def.require_any_of(*keys)
end

#require_one_of(*keys) ⇒ Object

Make exactly one of the specified arguments mandatory.



120
121
122
# File 'lib/arg-parser/dsl.rb', line 120

def require_one_of(*keys)
    args_def.require_one_of(*keys)
end

#rest_arg(key, desc, opts = {}, &block) ⇒ Object

Define a rest argument.



93
94
95
96
97
# File 'lib/arg-parser/dsl.rb', line 93

def rest_arg(key, desc, opts = {}, &block)
    opts.merge!(@arg_opts){ |k, e, n| e || n } if @arg_opts
    @arg_opts = nil
    args_def.rest_arg(key, desc, opts, &block)
end

#title(val) ⇒ Object

Sets the title that will appear in the Usage output generated from the Definition.



57
58
59
# File 'lib/arg-parser/dsl.rb', line 57

def title(val)
    args_def.title = val
end

#usage_break(label) ⇒ Object

Set a label for a usage break to be applied on the next argument that is defined.



114
115
116
# File 'lib/arg-parser/dsl.rb', line 114

def usage_break(label)
    @arg_opts = {usage_break: label}
end