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
-
#args_def ⇒ Object
Accessor to return a Definition object holding the command-line argument definitions.
-
#args_defined? ⇒ Boolean
Returns true if any arguments have been defined.
-
#flag_arg(key, desc, opts = {}, &block) ⇒ Object
Define a new flag argument.
-
#keyword_arg(key, desc, opts = {}, &block) ⇒ Object
Define a new positional argument.
-
#positional_arg(key, desc, opts = {}, &block) ⇒ Object
Define a new positional argument.
-
#predefined_arg(lookup_key, desc = nil, opts = {}) ⇒ Object
Use a pre-defined argument.
-
#purpose(desc) ⇒ Object
Sets the descriptive text that describes the purpose of the job represented by this class.
-
#register_parse_handler(key, &block) ⇒ Object
Registers the supplied
block
as an on_parse handler that can be attached to an argument usingkey
. -
#require_any_of(*keys) ⇒ Object
Make one or more of the specified arguments mandatory.
-
#require_one_of(*keys) ⇒ Object
Make exactly one of the specified arguments mandatory.
-
#rest_arg(key, desc, opts = {}, &block) ⇒ Object
Define a rest argument.
-
#title(val) ⇒ Object
Sets the title that will appear in the Usage output generated from the Definition.
-
#usage_break(label) ⇒ Object
Set a label for a usage break to be applied on the next argument that is defined.
Instance Method Details
#args_def ⇒ Object
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
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 |