Class: Slop::Option
- Inherits:
-
Object
- Object
- Slop::Option
- Defined in:
- lib/slop/option.rb
Instance Attribute Summary collapse
-
#argument_value ⇒ Object
The argument value after it's been case according to the
:as
option. -
#callback ⇒ Proc, #call
readonly
The object to execute when this option is used.
-
#count ⇒ Integer
The amount of times this option has been invoked.
-
#description ⇒ String
readonly
This options description.
-
#forced ⇒ Boolean
readonly
True if this options argument value has been forced.
-
#help ⇒ Object
readonly
True/false, or an optional help string to append.
-
#long_flag ⇒ String, #to_s
readonly
The long flag used for this option.
-
#match ⇒ Regexp
readonly
If provided, an options argument must match this regexp, otherwise Slop will raise an InvalidArgumentError.
-
#short_flag ⇒ String, #to_s
readonly
The short flag used for this option.
-
#tail ⇒ Boolean
readonly
True if the option should be grouped at the tail of the help list.
Instance Method Summary collapse
-
#accepts_optional_argument? ⇒ Boolean
True if this option accepts an optional argument.
-
#expects_argument? ⇒ Boolean
True if this option expects an argument.
-
#force_argument_value(value) ⇒ Object
Force an argument value, used when the desired argument value is negative (false or nil).
-
#initialize(slop, short, long, description, argument, options = {}, &blk) ⇒ Option
constructor
A new instance of Option.
- #inspect ⇒ String
-
#key ⇒ String
Either the long or short flag for this option.
-
#to_s ⇒ String
This option in a nice pretty string, including a short flag, long flag, and description (if they exist).
Constructor Details
#initialize(slop, short, long, description, argument, options = {}, &blk) ⇒ Option
Returns a new instance of Option.
53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/slop/option.rb', line 53 def initialize(slop, short, long, description, argument, ={}, &blk) @slop = slop @short_flag = short @long_flag = long @description = description @options = @expects_argument = argument @expects_argument = true if [:optional] == false @tail = [:tail] @match = [:match] @delimiter = [:delimiter] || ',' @limit = [:limit] || 0 @help = [:help] @help = true if @help.nil? @forced = false @argument_value = nil @count = 0 @callback = blk if block_given? @callback ||= [:callback] build_longest_flag end |
Instance Attribute Details
#argument_value ⇒ Object
Returns the argument value after it's been case
according to the :as
option.
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/slop/option.rb', line 97 def argument_value return @argument_value if @forced value = @argument_value || @options[:default] return if value.nil? case @options[:as].to_s.downcase when 'array' value.split @delimiter, @limit when 'range' value_to_range value when 'string', 'str'; value.to_s when 'symbol', 'sym'; value.to_s.to_sym when 'integer', 'int'; value.to_s.to_i when 'float'; value.to_s.to_f else value end end |
#callback ⇒ Proc, #call (readonly)
Returns The object to execute when this option is used.
14 15 16 |
# File 'lib/slop/option.rb', line 14 def callback @callback end |
#count ⇒ Integer
Returns The amount of times this option has been invoked.
36 37 38 |
# File 'lib/slop/option.rb', line 36 def count @count end |
#description ⇒ String (readonly)
Returns This options description.
11 12 13 |
# File 'lib/slop/option.rb', line 11 def description @description end |
#forced ⇒ Boolean (readonly)
Returns true if this options argument value has been forced.
28 29 30 |
# File 'lib/slop/option.rb', line 28 def forced @forced end |
#help ⇒ Object (readonly)
Returns true/false, or an optional help string to append.
25 26 27 |
# File 'lib/slop/option.rb', line 25 def help @help end |
#long_flag ⇒ String, #to_s (readonly)
Returns The long flag used for this option.
8 9 10 |
# File 'lib/slop/option.rb', line 8 def long_flag @long_flag end |
#match ⇒ Regexp (readonly)
Returns If provided, an options argument must match this regexp, otherwise Slop will raise an InvalidArgumentError.
22 23 24 |
# File 'lib/slop/option.rb', line 22 def match @match end |
#short_flag ⇒ String, #to_s (readonly)
Returns The short flag used for this option.
5 6 7 |
# File 'lib/slop/option.rb', line 5 def short_flag @short_flag end |
#tail ⇒ Boolean (readonly)
Returns True if the option should be grouped at the tail of the help list.
18 19 20 |
# File 'lib/slop/option.rb', line 18 def tail @tail end |
Instance Method Details
#accepts_optional_argument? ⇒ Boolean
Returns true if this option accepts an optional argument.
86 87 88 |
# File 'lib/slop/option.rb', line 86 def accepts_optional_argument? @options[:optional] end |
#expects_argument? ⇒ Boolean
Returns true if this option expects an argument.
81 82 83 |
# File 'lib/slop/option.rb', line 81 def expects_argument? @expects_argument || @options[:argument] end |
#force_argument_value(value) ⇒ Object
Force an argument value, used when the desired argument value is negative (false or nil)
120 121 122 123 |
# File 'lib/slop/option.rb', line 120 def force_argument_value(value) @argument_value = value @forced = true end |
#inspect ⇒ String
153 154 155 156 157 |
# File 'lib/slop/option.rb', line 153 def inspect "#<Slop::Option short_flag=#{@short_flag.inspect} " + "long_flag=#{@long_flag.inspect} " + "description=#{@description.inspect}>" end |
#key ⇒ String
Returns either the long or short flag for this option.
91 92 93 |
# File 'lib/slop/option.rb', line 91 def key @long_flag || @short_flag end |
#to_s ⇒ String
This option in a nice pretty string, including a short flag, long flag, and description (if they exist).
129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 |
# File 'lib/slop/option.rb', line 129 def to_s out = " " out += @short_flag ? "-#{@short_flag}, " : ' ' * 4 if @long_flag out += "--#{@long_flag}" if @help.respond_to? :to_str out += " #{@help}" size = @long_flag.size + @help.size + 1 else size = @long_flag.size end diff = @slop.longest_flag - size spaces = " " * (diff + 6) out += spaces else spaces = " " * (@slop.longest_flag + 8) out += spaces end "#{out}#{@description}" end |