Class: CLI::Kit::Args::Definition
- Inherits:
-
Object
- Object
- CLI::Kit::Args::Definition
- Defined in:
- lib/cli/kit/args/definition.rb
Defined Under Namespace
Modules: OptBase, OptValue Classes: Flag, Option, Position
Constant Summary collapse
- Error =
Class.new(Args::Error)
- ConflictingFlag =
Class.new(Error)
- InvalidFlag =
Class.new(Error)
- InvalidLookup =
Class.new(Error)
- InvalidPosition =
Class.new(Error)
Instance Attribute Summary collapse
-
#flags ⇒ Object
readonly
: Array.
-
#options ⇒ Object
readonly
: Array.
-
#positions ⇒ Object
readonly
: Array.
Instance Method Summary collapse
-
#add_flag(name, short: nil, long: nil, desc: nil) ⇒ Object
: (Symbol name, ?short: String?, ?long: String?, ?desc: String?) -> void.
- #add_option(name, short: nil, long: nil, desc: nil, default: nil, required: false, multi: false) ⇒ Object
-
#add_position(name, required:, multi:, desc: nil, default: nil, skip: nil) ⇒ Object
: (Symbol name, required: bool, multi: bool, ?desc: String?, ?default: (String | ^-> String)?, ?skip: (^-> bool | ^(String arg0) -> bool)?) -> void.
-
#initialize ⇒ Definition
constructor
: -> void.
-
#lookup_flag(name) ⇒ Object
: (Symbol name) -> Flag?.
-
#lookup_long(name) ⇒ Object
: (String name) -> (Flag | Option)?.
-
#lookup_option(name) ⇒ Object
: (Symbol name) -> Option?.
-
#lookup_position(name) ⇒ Object
: (Symbol name) -> Position?.
-
#lookup_short(name) ⇒ Object
: (String name) -> (Flag | Option)?.
Constructor Details
#initialize ⇒ Definition
: -> void
55 56 57 58 59 60 61 62 |
# File 'lib/cli/kit/args/definition.rb', line 55 def initialize @flags = [] @options = [] @by_short = {} @by_long = {} @by_name = {} @positions = [] end |
Instance Attribute Details
#flags ⇒ Object (readonly)
: Array
16 17 18 |
# File 'lib/cli/kit/args/definition.rb', line 16 def flags @flags end |
#options ⇒ Object (readonly)
: Array
19 20 21 |
# File 'lib/cli/kit/args/definition.rb', line 19 def @options end |
#positions ⇒ Object (readonly)
: Array
22 23 24 |
# File 'lib/cli/kit/args/definition.rb', line 22 def positions @positions end |
Instance Method Details
#add_flag(name, short: nil, long: nil, desc: nil) ⇒ Object
: (Symbol name, ?short: String?, ?long: String?, ?desc: String?) -> void
25 26 27 28 29 30 |
# File 'lib/cli/kit/args/definition.rb', line 25 def add_flag(name, short: nil, long: nil, desc: nil) short, long = strip_prefixes_and_validate(short, long) flag = Flag.new(name: name, short: short, long: long, desc: desc) add_resolution(flag) @flags << flag end |
#add_option(name, short: nil, long: nil, desc: nil, default: nil, required: false, multi: false) ⇒ Object
33 34 35 36 37 38 39 40 41 |
# File 'lib/cli/kit/args/definition.rb', line 33 def add_option(name, short: nil, long: nil, desc: nil, default: nil, required: false, multi: false) short, long = strip_prefixes_and_validate(short, long) option = Option.new( name: name, short: short, long: long, desc: desc, default: default, required: required, multi: multi ) add_resolution(option) @options << option end |
#add_position(name, required:, multi:, desc: nil, default: nil, skip: nil) ⇒ Object
: (Symbol name, required: bool, multi: bool, ?desc: String?, ?default: (String | ^-> String)?, ?skip: (^-> bool | ^(String arg0) -> bool)?) -> void
44 45 46 47 48 49 50 51 52 |
# File 'lib/cli/kit/args/definition.rb', line 44 def add_position(name, required:, multi:, desc: nil, default: nil, skip: nil) position = Position.new( name: name, desc: desc, required: required, multi: multi, default: default, skip: skip ) validate_order(position) add_name_resolution(position) @positions << position end |
#lookup_flag(name) ⇒ Object
: (Symbol name) -> Flag?
179 180 181 182 183 184 |
# File 'lib/cli/kit/args/definition.rb', line 179 def lookup_flag(name) flagopt = @by_name[name] if flagopt.class == Flag flagopt end end |
#lookup_long(name) ⇒ Object
: (String name) -> (Flag | Option)?
202 203 204 205 206 |
# File 'lib/cli/kit/args/definition.rb', line 202 def lookup_long(name) raise(InvalidLookup, "invalid '-' prefix") if name.start_with?('-') @by_long[name] end |
#lookup_option(name) ⇒ Object
: (Symbol name) -> Option?
187 188 189 190 191 192 |
# File 'lib/cli/kit/args/definition.rb', line 187 def lookup_option(name) flagopt = @by_name[name] if flagopt.class == Option flagopt end end |
#lookup_position(name) ⇒ Object
: (Symbol name) -> Position?
209 210 211 212 213 214 |
# File 'lib/cli/kit/args/definition.rb', line 209 def lookup_position(name) position = @by_name[name] if position.class == Position position end end |
#lookup_short(name) ⇒ Object
: (String name) -> (Flag | Option)?
195 196 197 198 199 |
# File 'lib/cli/kit/args/definition.rb', line 195 def lookup_short(name) raise(InvalidLookup, "invalid '-' prefix") if name.start_with?('-') @by_short[name] end |