slop 2.3.0 → 2.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/CHANGES.md CHANGED
@@ -1,5 +1,12 @@
1
- 2.3.0
2
- -----
1
+ 2.3.1 (2011-11-11)
2
+ ------------------
3
+
4
+ * Return `nil` for any options using casting which don't expect arguments (#33)
5
+ * Fix parenthesis warning on 1.8.7 (@shevegen)
6
+ * Ensure long argument is a string before attempting to use `#[]` method on it
7
+
8
+ 2.3.0 (2011-11-04)
9
+ ------------------
3
10
 
4
11
  * Allow flags to have suffixed `=` char for options which accept an argument
5
12
 
data/README.md CHANGED
@@ -89,9 +89,9 @@ end
89
89
  Shortcut:
90
90
 
91
91
  ```ruby
92
- Slop.parse :help => true do
93
- ...
94
- end
92
+ Slop.new :help => true
93
+ # or
94
+ Slop.new :help
95
95
  ```
96
96
 
97
97
  Parsing
@@ -103,7 +103,7 @@ Slop's pretty good at parsing, let's take a look at what it'll extract for you
103
103
  Slop.parse(:multiple_switches => false) do
104
104
  on 's', 'server='
105
105
  on 'p', 'port=', :as => :integer
106
- on 'username=', :matches => /[^a-zA-Z]+$/
106
+ on 'username=', :matches => /^[a-zA-Z]+$/
107
107
  on 'password='
108
108
  end
109
109
  ```
data/lib/slop.rb CHANGED
@@ -2,7 +2,7 @@ class Slop
2
2
  include Enumerable
3
3
 
4
4
  # @return [String] The current version string
5
- VERSION = '2.3.0'
5
+ VERSION = '2.3.1'
6
6
 
7
7
  # Slops standard Error class. All exception classes should
8
8
  # inherit from this class
@@ -152,12 +152,12 @@ class Slop
152
152
  return if value.nil?
153
153
 
154
154
  case @argument_type
155
- when 'array'; @argument_value
156
- when 'range'; value_to_range value
157
- when 'float'; value.to_s.to_f
158
- when 'string', 'str'; value.to_s
159
- when 'symbol', 'sym'; value.to_s.to_sym
160
- when 'integer', 'int'; value.to_s.to_i
155
+ when 'array'; @argument_value unless !expects_argument?
156
+ when 'range'; value_to_range value unless !expects_argument?
157
+ when 'float'; value.to_s.to_f unless !expects_argument?
158
+ when 'string', 'str'; value.to_s unless !expects_argument?
159
+ when 'symbol', 'sym'; value.to_s.to_sym unless !expects_argument?
160
+ when 'integer', 'int'; value.to_s.to_i unless !expects_argument?
161
161
  else
162
162
  value
163
163
  end
@@ -1009,14 +1009,14 @@ class Slop
1009
1009
  extras[:optional] = help[0, 1] == '[' && help[-1, 1] == ']'
1010
1010
  extras[:help] = help
1011
1011
  elsif not boolean and long.to_s =~ /\A(?:--?)?[a-zA-Z][a-zA-Z0-9_-]+\=?\z/
1012
- extras[:argument] = true if long[-1, 1] == '='
1012
+ extras[:argument] = true if long.to_s[-1, 1] == '='
1013
1013
  options.push args.shift.to_s.sub(/\A--?/, '').sub(/\=\z/, '')
1014
1014
  else
1015
1015
  options.push nil
1016
1016
  end
1017
1017
 
1018
1018
  options.push args.first.respond_to?(:to_sym) ? args.shift : nil
1019
- options.push (@arguments || extras[:argument]) ? true : (args.shift ? true : false)
1019
+ options.push((@arguments || extras[:argument]) ? true : (args.shift ? true : false))
1020
1020
  options.push extras
1021
1021
  end
1022
1022
  end
data/slop.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'slop'
3
- s.version = '2.3.0'
3
+ s.version = '2.3.1'
4
4
  s.summary = 'Option gathering made easy'
5
5
  s.description = 'A simple DSL for gathering options and parsing the command line'
6
6
  s.author = 'Lee Jarvis'
data/test/option_test.rb CHANGED
@@ -87,6 +87,14 @@ class OptionTest < TestCase
87
87
  assert_equal 3, option_value(%w/-vvv/, :v, :verbose, :as => :count)
88
88
  end
89
89
 
90
+ test 'casting should return nil for optionless arguments' do
91
+ assert_equal nil, option_value(%w/-i/, :i, :as => :int)
92
+ assert_equal nil, option_value(%w/-i/, :i, :as => :str)
93
+ assert_equal nil, option_value(%w/-i/, :i, :as => :float)
94
+ assert_equal nil, option_value(%w/-i/, :i, :as => :array)
95
+ assert_equal nil, option_value(%w/-i/, :i, :as => :range)
96
+ end
97
+
90
98
  test 'ranges' do
91
99
  assert_equal (1..10), option_value(%w/-r 1..10/, :r, true, :as => Range)
92
100
  assert_equal (1..10), option_value(%w/-r 1-10/, :r, true, :as => Range)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: slop
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.0
4
+ version: 2.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-11-05 00:00:00.000000000Z
12
+ date: 2011-11-11 00:00:00.000000000Z
13
13
  dependencies: []
14
14
  description: A simple DSL for gathering options and parsing the command line
15
15
  email: lee@jarvis.co