module Nuggets::Argv::OptionMixin
Public Instance Methods
option(short[, long]) → aString
click to toggle source
option(short[, long]) { |value| ... } → anObject
Returns the value associated with the option short
(or long
) if present in ARGV. Yields that value to the block if given and returns its result.
# File lib/nuggets/argv/option_mixin.rb 45 def option(*args, &block) 46 __opt(block, *args) { |index| at(index + 1) } 47 end
option!(short[, long]) → aString
click to toggle source
option!(short[, long]) { |value| ... } → anObject
Returns the value associated with the option short
(or long
) if present in ARGV and removes both from ARGV. Yields that value to the block if given and returns its result.
# File lib/nuggets/argv/option_mixin.rb 65 def option!(*args, &block) 66 __opt(block, *args) { |index| delete_at(index); delete_at(index) } 67 end
switch(short[, long]) → true | false
click to toggle source
Whether ARGV includes the switch short
(or long
).
# File lib/nuggets/argv/option_mixin.rb 35 def switch(*args) 36 !!(__key(*args) { |key| include?(key) }) 37 end
switch!(short[, long]) → true | false
click to toggle source
Whether ARGV includes the switch short
(or long
). Removes the matching switch from ARGV.
# File lib/nuggets/argv/option_mixin.rb 54 def switch!(*args) 55 !!(__key(*args) { |key| delete(key) }) 56 end
Private Instance Methods
__key(short, long = nil) { |key| ... }
click to toggle source
# File lib/nuggets/argv/option_mixin.rb 71 def __key(short, long = nil) # :yield: key 72 long && yield("--#{long}") || yield("-#{short}") 73 end
__opt(block, *args) { |index| ... }
click to toggle source
# File lib/nuggets/argv/option_mixin.rb 75 def __opt(block, *args) 76 index = __key(*args) { |key| index(key) } or return 77 78 value = yield(index) 79 block ? block[value] : value 80 end