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.
-
#description ⇒ String
readonly
This options description.
-
#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).
-
#forced? ⇒ Boolean
True if this argument value has been forced.
-
#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.
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/slop/option.rb', line 43 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] @forced = false @argument_value = nil @delimiter = [:delimiter] || ',' @limit = [:limit] || 0 if @long_flag && @long_flag.size > @slop.longest_flag @slop.longest_flag = @long_flag.size end @callback = blk if block_given? @callback ||= [:callback] end |
Instance Attribute Details
#argument_value ⇒ Object
Returns the argument value after it's been case
according to the :as
option.
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/slop/option.rb', line 87 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'; value.to_s when 'symbol'; value.to_s.to_sym when 'integer'; 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 |
#description ⇒ String (readonly)
Returns This options description.
11 12 13 |
# File 'lib/slop/option.rb', line 11 def description @description 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.
76 77 78 |
# File 'lib/slop/option.rb', line 76 def accepts_optional_argument? @options[:optional] end |
#expects_argument? ⇒ Boolean
Returns true if this option expects an argument.
71 72 73 |
# File 'lib/slop/option.rb', line 71 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)
110 111 112 113 |
# File 'lib/slop/option.rb', line 110 def force_argument_value(value) @argument_value = value @forced = true end |
#forced? ⇒ Boolean
Returns true if this argument value has been forced.
116 117 118 |
# File 'lib/slop/option.rb', line 116 def forced? @forced end |
#inspect ⇒ String
142 143 144 145 146 |
# File 'lib/slop/option.rb', line 142 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.
81 82 83 |
# File 'lib/slop/option.rb', line 81 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).
124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 |
# File 'lib/slop/option.rb', line 124 def to_s out = " " out += @short_flag ? "-#{@short_flag}, " : ' ' * 4 if @long_flag out += "--#{@long_flag}" diff = @slop.longest_flag - @long_flag.size spaces = " " * (diff + 6) out += spaces else spaces = " " * (@slop.longest_flag + 8) out += spaces end "#{out}#{@description}" end |