cooloptions 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,8 @@
1
+ == 1.1.1 / 2007-03-09
2
+
3
+ * Better handling of OptionParser::ParseError [Christian von Mueffling].
4
+ * A few small documentation tweaks, including an updated copyright.
5
+
1
6
  == 1.1.0 / 2007-01-10
2
7
 
3
8
  * Incremented the version number to more rationally reflect the addition of
data/README.txt CHANGED
@@ -2,11 +2,17 @@
2
2
  by Nathaniel Talbott <nathaniel@terralien.com>
3
3
  http://cooloptions.rubyforge.org/
4
4
 
5
+
5
6
  == DESCRIPTION:
6
7
 
7
- CoolOptions is a simple wrapper around optparse that provides less options and more convenience.
8
+ CoolOptions is a simple wrapper around optparse that provides less options and
9
+ more convenience.
10
+
11
+ As a huge fan of optparse due to its flexibility, self-documenting nature, and
12
+ ease of use, I nevertheless found myself doing almost the exact same thing
13
+ with it over and over again, and decided to write a thin wrapper around it to
14
+ handle the common cases. Thus CoolOptions was born.
8
15
 
9
- As a huge fan of optparse due to its flexibility, self-documenting nature, and ease of use, I nevertheless found myself doing almost the exact same thing with it over and over again, and decided to write a thin wrapper around it to handle the common cases. Thus CoolOptions was born.
10
16
 
11
17
  == SYNOPSIS:
12
18
 
@@ -65,26 +71,31 @@ As a huge fan of optparse due to its flexibility, self-documenting nature, and e
65
71
  Default is: true
66
72
  -h, --help This help info.
67
73
 
74
+
68
75
  == REQUIREMENTS:
69
76
 
70
77
  optparse & ostruct (included in Ruby standard library).
71
78
 
79
+
72
80
  == DOWNLOAD:
73
81
 
74
82
  Via gems or from the
75
83
  {Rubyforge project page}[http://rubyforge.org/projects/cooloptions].
76
84
 
85
+
77
86
  == INSTALL:
78
87
 
79
88
  sudo gem install cooloptions
80
89
 
90
+
81
91
  == CONTRIBUTE:
82
92
 
83
93
  Drop me an email (see above) and/or
84
94
  {check out the source}[http://terralien.com/svn/projects/cooloptions/trunk].
85
95
 
96
+
86
97
  == LICENSE:
87
98
 
88
99
  The RUBY License
89
100
 
90
- Copyright (c) 2006 Nathaniel Talbott and Terralien, Inc. All Rights Reserved.
101
+ Copyright (c) 2006-2007 Nathaniel Talbott and Terralien, Inc. All Rights Reserved.
@@ -11,7 +11,7 @@ require 'ostruct'
11
11
  # :include:samples/literate.rb
12
12
 
13
13
  class CoolOptions
14
- VERSION = '1.1.0' #:nodoc:
14
+ VERSION = '1.1.1' #:nodoc:
15
15
 
16
16
  class Error < StandardError #:nodoc:
17
17
  end
@@ -97,7 +97,11 @@ class CoolOptions
97
97
 
98
98
  def parse!(argv) #:nodoc:
99
99
  @parser.on('-h', '--help', "This help info."){help}
100
- @parser.parse!(argv)
100
+ begin
101
+ @parser.parse!(argv)
102
+ rescue OptionParser::ParseError => e
103
+ error e.message.capitalize
104
+ end
101
105
 
102
106
  @required.reject!{|e| @result.key?(e)}
103
107
  error "Missing required options: #{@required.join(', ')}" unless @required.empty?
@@ -157,4 +157,17 @@ EOH
157
157
 
158
158
  assert 'd', r.cl
159
159
  end
160
+
161
+ def test_should_show_nice_error_for_bogus_option
162
+ assert_raise(SystemExit) do
163
+ CoolOptions.parse!('details', ['--bogus']) do |o|
164
+ end
165
+ end
166
+
167
+ assert_equal <<EOH, @out.string
168
+ Invalid option: --bogus
169
+ Usage: #{File.basename($0)} details
170
+ -h, --help This help info.
171
+ EOH
172
+ end
160
173
  end
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
- rubygems_version: 0.8.11
2
+ rubygems_version: 0.9.2
3
3
  specification_version: 1
4
4
  name: cooloptions
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.1.0
7
- date: 2007-01-10 00:00:00 -05:00
6
+ version: 1.1.1
7
+ date: 2007-03-09 00:00:00 -05:00
8
8
  summary: CoolOptions is a simple wrapper around optparse that provides less configuration and more convenience for doing command-line option handling.
9
9
  require_paths:
10
10
  - lib
@@ -25,6 +25,7 @@ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
25
  platform: ruby
26
26
  signing_key:
27
27
  cert_chain:
28
+ post_install_message:
28
29
  authors:
29
30
  - Nathaniel Talbott
30
31
  files:
@@ -50,20 +51,20 @@ requirements: []
50
51
 
51
52
  dependencies:
52
53
  - !ruby/object:Gem::Dependency
53
- name: hoe
54
+ name: rake
54
55
  version_requirement:
55
56
  version_requirements: !ruby/object:Gem::Version::Requirement
56
57
  requirements:
57
58
  - - ">="
58
59
  - !ruby/object:Gem::Version
59
- version: 1.1.6
60
+ version: 0.7.1
60
61
  version:
61
62
  - !ruby/object:Gem::Dependency
62
- name: rake
63
+ name: hoe
63
64
  version_requirement:
64
65
  version_requirements: !ruby/object:Gem::Version::Requirement
65
66
  requirements:
66
67
  - - ">="
67
68
  - !ruby/object:Gem::Version
68
- version: 0.7.1
69
+ version: 1.2.0
69
70
  version: