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

#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.



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

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.



107
108
109
# File 'lib/arg-parser/dsl.rb', line 107

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.



101
102
103
# File 'lib/arg-parser/dsl.rb', line 101

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