commander 4.0.4 → 4.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,24 @@
1
+ To run the development rake tasks, you need rake and echoe gems installed.
2
+
3
+ To install the rest of the development dependencies:
4
+
5
+ $ rake dev_setup
6
+
7
+ Before you push any changes, run the RSpec suite:
8
+
9
+ $ rake spec
10
+
11
+ Build the docs:
12
+
13
+ $ rake docs
14
+
15
+ Build and check the docs:
16
+
17
+ $ rake docs:open
18
+
19
+ To build a new version of the gem:
20
+
21
+ $ rake build
22
+ $ rake gem
23
+
24
+ (NOTE: there currently seem to be some bugs in our development dependencies that prevent building the gem or docs on Ruby 1.9.2.)
@@ -1,3 +1,14 @@
1
+ 4.0.5 / 2011-08-09
2
+ ==================
3
+
4
+ * Updated documentation to fix inaccuracies and unclear information.
5
+ * Improved rake tasks for gem development.
6
+ * Added say_ok, say_warning and say_error methods to print messages in green, yellow or red. (thanks to Simon Courtois)
7
+ * Fixed; Allow global options to be passed in any order, even mixed with command options. (thanks to Rich Grundy)
8
+ * Fixed; Global options can be passed before or after the command, they can even be mixed with command options. Closes #8. (thanks to Rich Grundy)
9
+ * Fixed; Platform test should now correctly identify JRuby. (thanks to Justin Lynn)
10
+ * Fixed; Add to_s to exceptions as option parser no longer does implicit conversion. (thanks to Justin Lynn)
11
+
1
12
  4.0.4 / 2011-04-04
2
13
  ==================
3
14
 
data/Manifest CHANGED
@@ -1,3 +1,4 @@
1
+ DEVELOPMENT
1
2
  History.rdoc
2
3
  Manifest
3
4
  README.rdoc
@@ -32,5 +33,6 @@ spec/runner_spec.rb
32
33
  spec/spec.opts
33
34
  spec/spec_helper.rb
34
35
  spec/ui_spec.rb
36
+ tasks/dev_setup.rake
35
37
  tasks/docs.rake
36
38
  tasks/gemspec.rake
@@ -26,8 +26,7 @@ features, and an elegant API.
26
26
 
27
27
  == Installation
28
28
 
29
- Install [Gemcutter](http://gemcutter.org) and execute:
30
- $ sudo gem install commander
29
+ $ gem install commander
31
30
 
32
31
  == Example
33
32
 
@@ -99,8 +98,8 @@ are some quick examples for how to utilize highline in your command(s):
99
98
 
100
99
  == HighLine & Interaction Additions
101
100
 
102
- In addition to highline's fantastic choice of methods we will continue to
103
- simplify common tasks using the following methods:
101
+ In addition to highline's fantastic choice of methods, commander adds the
102
+ following methods to simplify common tasks:
104
103
 
105
104
  # Ask for password
106
105
  password
@@ -135,21 +134,6 @@ simplify common tasks using the following methods:
135
134
  # Ask editor, supplying initial text
136
135
  ask_editor 'previous data to update'
137
136
 
138
- # Display a generic Growl notification
139
- notify 'Something happened'
140
-
141
- # Display an 'info' status notification
142
- notify_info 'You have #{emails.length} new email(s)'
143
-
144
- # Display an 'ok' status notification
145
- notify_ok 'Gems updated'
146
-
147
- # Display a 'warning' status notification
148
- notify_warning '1 gem failed installation'
149
-
150
- # Display an 'error' status notification
151
- notify_error "Gem #{name} failed"
152
-
153
137
  # Choose from an array of elements
154
138
  choice = choose("Favorite language?", :ruby, :perl, :js)
155
139
 
@@ -181,6 +165,32 @@ simplify common tasks using the following methods:
181
165
  end
182
166
  end
183
167
 
168
+ == Growl Notifications
169
+
170
+ Commander provides methods for displaying Growl notifications. To use these
171
+ methods you need to install http://github.com/visionmedia/growl which utilizes
172
+ the growlnotify[http://growl.info/extras.php#growlnotify] executable. Note that
173
+ growl is auto-imported by Commander when available, no need to require.
174
+
175
+ # Display a generic Growl notification
176
+ notify 'Something happened'
177
+
178
+ # Display an 'info' status notification
179
+ notify_info 'You have #{emails.length} new email(s)'
180
+
181
+ # Display an 'ok' status notification
182
+ notify_ok 'Gems updated'
183
+
184
+ # Display a 'warning' status notification
185
+ notify_warning '1 gem failed installation'
186
+
187
+ # Display an 'error' status notification
188
+ notify_error "Gem #{name} failed"
189
+
190
+ growlnotify can also be installed via homebrew[http://mxcl.github.com/homebrew/]:
191
+
192
+ $ brew install growlnotify
193
+
184
194
  == Commander Goodies
185
195
 
186
196
  === Option Defaults
@@ -315,15 +325,9 @@ http://github.com/visionmedia/terminal-table
315
325
  | | | | | get it while its hot! |
316
326
  +----------+-------+----+--------+-----------------------+
317
327
 
318
- == Growl Notifications
319
-
320
- To utilize the #notify and #notify_STATUS methods you need to install
321
- http://github.com/visionmedia/growl which utilizes the 'growlnotify' executable.
322
- Note that growl is auto-imported by Commander when available, no need to require.
323
-
324
328
  == Running Specifications
325
329
 
326
- $ autospec
330
+ $ rake spec
327
331
 
328
332
  OR
329
333
 
data/Rakefile CHANGED
@@ -1,16 +1,33 @@
1
-
2
1
  $:.unshift 'lib'
3
- require 'commander'
2
+
4
3
  require 'rubygems'
4
+
5
+ load_errors = ['highline', 'echoe'].map do |g|
6
+ begin
7
+ require g
8
+ nil
9
+ rescue LoadError
10
+ "The #{g} gem is not installed. Please run:\n\tgem install #{g}"
11
+ end
12
+ end.compact
13
+ abort "Missing dependencies!\n" + load_errors.join("\n") unless load_errors.empty?
14
+
15
+ require 'commander'
5
16
  require 'rake'
6
- require 'echoe'
7
17
 
8
18
  Echoe.new "commander", Commander::VERSION do |p|
9
- p.author = "TJ Holowaychuk"
10
- p.email = "tj@vision-media.ca"
19
+ p.email = "ggilder@tractionco.com"
11
20
  p.summary = "The complete solution for Ruby command-line executables"
12
21
  p.url = "http://visionmedia.github.com/commander"
13
22
  p.runtime_dependencies << "highline >=1.5.0"
23
+ p.development_dependencies << "echoe >=4.0.0"
24
+ p.development_dependencies << "sdoc >=0.2.20"
25
+ p.development_dependencies << "rspec ~>1.3"
26
+
27
+ p.eval = Proc.new do
28
+ self.authors = ["TJ Holowaychuk", "Gabriel Gilder"]
29
+ self.default_executable = "commander"
30
+ end
14
31
  end
15
32
 
16
33
  Dir['tasks/**/*.rake'].sort.each { |lib| load lib }
@@ -1,35 +1,42 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  Gem::Specification.new do |s|
4
- require File.join(File.dirname(__FILE__), 'lib', 'commander', 'version')
5
4
  s.name = %q{commander}
6
- s.version = Commander::VERSION
5
+ s.version = "4.0.5"
7
6
 
8
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
9
- s.authors = ["TJ Holowaychuk"]
10
- s.default_executable = %q{commander}
8
+ s.authors = [%q{TJ Holowaychuk}, %q{Gabriel Gilder}]
9
+ s.date = %q{2011-08-09}
11
10
  s.description = %q{The complete solution for Ruby command-line executables}
12
- s.email = %q{tj@vision-media.ca}
13
- s.executables = ["commander"]
14
- s.extra_rdoc_files = ["README.rdoc", "bin/commander", "lib/commander.rb", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/delegates.rb", "lib/commander/help_formatters.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal_compact.rb", "lib/commander/help_formatters/terminal_compact/command_help.erb", "lib/commander/help_formatters/terminal_compact/help.erb", "lib/commander/import.rb", "lib/commander/platform.rb", "lib/commander/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "tasks/docs.rake", "tasks/gemspec.rake"]
15
- s.files = ["History.rdoc", "Manifest", "README.rdoc", "Rakefile", "bin/commander", "commander.gemspec", "lib/commander.rb", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/delegates.rb", "lib/commander/help_formatters.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal_compact.rb", "lib/commander/help_formatters/terminal_compact/command_help.erb", "lib/commander/help_formatters/terminal_compact/help.erb", "lib/commander/import.rb", "lib/commander/platform.rb", "lib/commander/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "spec/command_spec.rb", "spec/core_ext/array_spec.rb", "spec/core_ext/object_spec.rb", "spec/help_formatters/terminal_spec.rb", "spec/runner_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/ui_spec.rb", "tasks/docs.rake", "tasks/gemspec.rake"]
11
+ s.email = %q{ggilder@tractionco.com}
12
+ s.executables = [%q{commander}]
13
+ s.extra_rdoc_files = [%q{README.rdoc}, %q{bin/commander}, %q{lib/commander.rb}, %q{lib/commander/blank.rb}, %q{lib/commander/command.rb}, %q{lib/commander/core_ext.rb}, %q{lib/commander/core_ext/array.rb}, %q{lib/commander/core_ext/object.rb}, %q{lib/commander/delegates.rb}, %q{lib/commander/help_formatters.rb}, %q{lib/commander/help_formatters/base.rb}, %q{lib/commander/help_formatters/terminal.rb}, %q{lib/commander/help_formatters/terminal/command_help.erb}, %q{lib/commander/help_formatters/terminal/help.erb}, %q{lib/commander/help_formatters/terminal_compact.rb}, %q{lib/commander/help_formatters/terminal_compact/command_help.erb}, %q{lib/commander/help_formatters/terminal_compact/help.erb}, %q{lib/commander/import.rb}, %q{lib/commander/platform.rb}, %q{lib/commander/runner.rb}, %q{lib/commander/user_interaction.rb}, %q{lib/commander/version.rb}, %q{tasks/dev_setup.rake}, %q{tasks/docs.rake}, %q{tasks/gemspec.rake}]
14
+ s.files = [%q{DEVELOPMENT}, %q{History.rdoc}, %q{Manifest}, %q{README.rdoc}, %q{Rakefile}, %q{bin/commander}, %q{commander.gemspec}, %q{lib/commander.rb}, %q{lib/commander/blank.rb}, %q{lib/commander/command.rb}, %q{lib/commander/core_ext.rb}, %q{lib/commander/core_ext/array.rb}, %q{lib/commander/core_ext/object.rb}, %q{lib/commander/delegates.rb}, %q{lib/commander/help_formatters.rb}, %q{lib/commander/help_formatters/base.rb}, %q{lib/commander/help_formatters/terminal.rb}, %q{lib/commander/help_formatters/terminal/command_help.erb}, %q{lib/commander/help_formatters/terminal/help.erb}, %q{lib/commander/help_formatters/terminal_compact.rb}, %q{lib/commander/help_formatters/terminal_compact/command_help.erb}, %q{lib/commander/help_formatters/terminal_compact/help.erb}, %q{lib/commander/import.rb}, %q{lib/commander/platform.rb}, %q{lib/commander/runner.rb}, %q{lib/commander/user_interaction.rb}, %q{lib/commander/version.rb}, %q{spec/command_spec.rb}, %q{spec/core_ext/array_spec.rb}, %q{spec/core_ext/object_spec.rb}, %q{spec/help_formatters/terminal_spec.rb}, %q{spec/runner_spec.rb}, %q{spec/spec.opts}, %q{spec/spec_helper.rb}, %q{spec/ui_spec.rb}, %q{tasks/dev_setup.rake}, %q{tasks/docs.rake}, %q{tasks/gemspec.rake}]
16
15
  s.homepage = %q{http://visionmedia.github.com/commander}
17
- s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Commander", "--main", "README.rdoc"]
18
- s.require_paths = ["lib"]
16
+ s.rdoc_options = [%q{--line-numbers}, %q{--inline-source}, %q{--title}, %q{Commander}, %q{--main}, %q{README.rdoc}]
17
+ s.require_paths = [%q{lib}]
19
18
  s.rubyforge_project = %q{commander}
20
- s.rubygems_version = %q{1.3.5}
19
+ s.rubygems_version = %q{1.8.6}
21
20
  s.summary = %q{The complete solution for Ruby command-line executables}
22
21
 
23
22
  if s.respond_to? :specification_version then
24
- current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
23
  s.specification_version = 3
26
24
 
27
- if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
25
+ if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
28
26
  s.add_runtime_dependency(%q<highline>, [">= 1.5.0"])
27
+ s.add_development_dependency(%q<echoe>, [">= 4.0.0"])
28
+ s.add_development_dependency(%q<sdoc>, [">= 0.2.20"])
29
+ s.add_development_dependency(%q<rspec>, ["~> 1.3"])
29
30
  else
30
31
  s.add_dependency(%q<highline>, [">= 1.5.0"])
32
+ s.add_dependency(%q<echoe>, [">= 4.0.0"])
33
+ s.add_dependency(%q<sdoc>, [">= 0.2.20"])
34
+ s.add_dependency(%q<rspec>, ["~> 1.3"])
31
35
  end
32
36
  else
33
37
  s.add_dependency(%q<highline>, [">= 1.5.0"])
38
+ s.add_dependency(%q<echoe>, [">= 4.0.0"])
39
+ s.add_dependency(%q<sdoc>, [">= 0.2.20"])
40
+ s.add_dependency(%q<rspec>, ["~> 1.3"])
34
41
  end
35
42
  end
@@ -2,7 +2,7 @@
2
2
  module Commander
3
3
  module Platform
4
4
  def self.jruby?
5
- defined? RUBY_ENGINE && RUBY_ENGINE=='jruby'
5
+ defined?(RUBY_ENGINE) && (RUBY_ENGINE == 'jruby')
6
6
  end
7
7
  end
8
8
  end
@@ -66,7 +66,7 @@ module Commander
66
66
  OptionParser::InvalidOption,
67
67
  OptionParser::InvalidArgument,
68
68
  OptionParser::MissingArgument => e
69
- abort e
69
+ abort e.to_s
70
70
  rescue => e
71
71
  abort "error: #{e}. Use --trace to view backtrace"
72
72
  end
@@ -319,12 +319,19 @@ module Commander
319
319
  # Parse global command options.
320
320
 
321
321
  def parse_global_options
322
- options.inject OptionParser.new do |options, option|
322
+
323
+ parser = options.inject(OptionParser.new) do |options, option|
323
324
  options.on *option[:args], &global_option_proc(option[:switches], &option[:proc])
324
- end.parse! @args.dup
325
- rescue OptionParser::InvalidOption
326
- # Ignore invalid options since options will be further
327
- # parsed by our sub commands.
325
+ end
326
+
327
+ options = @args.dup
328
+ begin
329
+ parser.parse!(options)
330
+ rescue OptionParser::InvalidOption => e
331
+ # Remove the offending args and retry.
332
+ options = options.reject { |o| e.args.include?(o) }
333
+ retry
334
+ end
328
335
  end
329
336
 
330
337
  ##
@@ -55,7 +55,67 @@ module Commander
55
55
  def log action, *args
56
56
  say '%15s %s' % [action, args.join(' ')]
57
57
  end
58
-
58
+
59
+ ##
60
+ # 'Say' something using the OK color (green).
61
+ #
62
+ # === Examples
63
+ # say_ok 'Everything is fine'
64
+ # say_ok 'It is ok', 'This is ok too'
65
+ #
66
+
67
+ def say_ok *args
68
+ args.each do |arg|
69
+ say $terminal.color(arg, :green)
70
+ end
71
+ end
72
+
73
+ ##
74
+ # 'Say' something using the WARNING color (yellow).
75
+ #
76
+ # === Examples
77
+ # say_warning 'This is a warning'
78
+ # say_warning 'Be careful', 'Think about it'
79
+ #
80
+
81
+ def say_warning *args
82
+ args.each do |arg|
83
+ say $terminal.color(arg, :yellow)
84
+ end
85
+ end
86
+
87
+ ##
88
+ # 'Say' something using the ERROR color (red).
89
+ #
90
+ # === Examples
91
+ # say_error 'Everything is not fine'
92
+ # say_error 'It is not ok', 'This is not ok too'
93
+ #
94
+
95
+ def say_error *args
96
+ args.each do |arg|
97
+ say $terminal.color(arg, :red)
98
+ end
99
+ end
100
+
101
+ ##
102
+ # 'Say' something using the specified color
103
+ #
104
+ # === Examples
105
+ # color 'I am blue', :blue
106
+ # color 'I am bold', :bold
107
+ # color 'White on Red', :white, :on_red
108
+ #
109
+ # === Notes
110
+ # You may use:
111
+ # * color: black blue cyan green magenta red white yellow
112
+ # * style: blink bold clear underline
113
+ # * highligh: on_<color>
114
+
115
+ def color(*args)
116
+ say $terminal.color(*args)
117
+ end
118
+
59
119
  ##
60
120
  # Speak _message_ using _voice_ which defaults
61
121
  # to 'Alex', which is one of the better voices.
@@ -1,4 +1,4 @@
1
1
 
2
2
  module Commander
3
- VERSION = '4.0.4'
3
+ VERSION = '4.0.5'
4
4
  end
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + '/spec_helper'
1
+ require 'spec_helper'
3
2
 
4
3
  describe Commander::Command do
5
4
 
@@ -131,4 +130,4 @@ describe Commander::Command do
131
130
  end
132
131
  end
133
132
 
134
- end
133
+ end
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require 'spec_helper'
3
2
 
4
3
  describe Array do
5
4
 
@@ -13,4 +12,4 @@ describe Array do
13
12
  end
14
13
  end
15
14
 
16
- end
15
+ end
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require 'spec_helper'
3
2
 
4
3
  describe Object do
5
4
 
@@ -19,4 +18,4 @@ describe Object do
19
18
  end
20
19
  end
21
20
 
22
- end
21
+ end
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + '/../spec_helper'
1
+ require 'spec_helper'
3
2
 
4
3
  describe Commander::HelpFormatter::Terminal do
5
4
 
@@ -65,4 +64,4 @@ describe Commander::HelpFormatter::Terminal do
65
64
  end
66
65
  end
67
66
 
68
- end
67
+ end
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + '/spec_helper'
1
+ require 'spec_helper'
3
2
 
4
3
  describe Commander do
5
4
  before :each do
@@ -110,6 +109,138 @@ describe Commander do
110
109
  quiet.should be_true
111
110
  end
112
111
  end
112
+
113
+ describe "#parse_global_options" do
114
+ it 'should parse global options before command' do
115
+ global_option = nil
116
+ new_command_runner('--testing-global', 'foo') do
117
+ global_option('--testing-global') { global_option = 'MAGIC' }
118
+
119
+ command :foo do |c|
120
+ c.when_called {}
121
+ end
122
+ end.run!
123
+ global_option.should == 'MAGIC'
124
+ end
125
+
126
+ it 'should parse global options after command' do
127
+ global_option = nil
128
+ new_command_runner('foo','--testing-global') do
129
+ global_option('--testing-global') { global_option = 'MAGIC' }
130
+
131
+ command :foo do |c|
132
+ c.when_called {}
133
+ end
134
+ end.run!
135
+ global_option.should == 'MAGIC'
136
+ end
137
+
138
+ it 'should parse global options placed before command options' do
139
+ global_option = nil
140
+ new_command_runner('foo', '--testing-global', '--testing-command') do
141
+ global_option('--testing-global') { global_option = 'MAGIC' }
142
+
143
+ command :foo do |c|
144
+ c.option('--testing-command') {}
145
+ c.when_called {}
146
+ end
147
+ end.run!
148
+
149
+ global_option.should == 'MAGIC'
150
+ end
151
+
152
+ it 'should parse global options placed after command options' do
153
+ global_option = nil
154
+ new_command_runner('foo', '--testing-command', '--testing-global') do
155
+ global_option('--testing-global') { global_option = 'MAGIC' }
156
+
157
+ command :foo do |c|
158
+ c.option('--testing-command') {}
159
+ c.when_called {}
160
+ end
161
+ end.run!
162
+
163
+ global_option.should == 'MAGIC'
164
+ end
165
+
166
+ it 'should parse global options surrounded by command options' do
167
+ global_option = nil
168
+ new_command_runner('foo', '--testing-command', '--testing-global', '--other-command') do
169
+ global_option('--testing-global') { global_option = 'MAGIC' }
170
+
171
+ command :foo do |c|
172
+ c.option('--testing-command') {}
173
+ c.option('--other-command') {}
174
+ c.when_called {}
175
+ end
176
+ end.run!
177
+
178
+ global_option.should == 'MAGIC'
179
+ end
180
+
181
+ it 'should not parse command options' do
182
+ global_option = nil
183
+ command_option = nil
184
+ new_command_runner('foo', '--testing-command', '--testing-global') do
185
+ global_option('--testing-global') { global_option = 'MAGIC' }
186
+
187
+ command :foo do |c|
188
+ c.option('--testing-command') { command_option = 'NO!' }
189
+ c.when_called {}
190
+ end
191
+ end.parse_global_options
192
+
193
+ command_option.should be_nil
194
+ global_option.should == 'MAGIC'
195
+ end
196
+
197
+ it 'should not affect command arguments with values' do
198
+ global_option = nil
199
+ command_option = nil
200
+ new_command_runner('foo', '--testing-command', 'bar', '--testing-global') do
201
+ global_option('--testing-global') { global_option = 'MAGIC' }
202
+
203
+ command :foo do |c|
204
+ c.option('--testing-command VALUE') { |v| command_option = v }
205
+ c.when_called {}
206
+ end
207
+ end.run!
208
+
209
+ command_option.should == 'bar'
210
+ global_option.should == 'MAGIC'
211
+ end
212
+
213
+ it 'should not affect global arguments with values' do
214
+ global_option = nil
215
+ new_command_runner('foo', '--testing-command', '--testing-global', 'bar') do
216
+ global_option('--testing-global VALUE') { |v| global_option = v }
217
+
218
+ command :foo do |c|
219
+ c.option('--testing-command') { }
220
+ c.when_called {}
221
+ end
222
+ end.run!
223
+
224
+ global_option.should == 'bar'
225
+ end
226
+
227
+ it 'should allow global arguments with values before command arguments (github issue #8)' do
228
+ global_option = nil
229
+ command_option = nil
230
+ new_command_runner('foo', '--config', 'path', 'bar') do
231
+ global_option('--config VALUE') { |v| global_option = v }
232
+
233
+ command :foo do |c|
234
+ c.option('bar') { command_option = 'bar' }
235
+ c.when_called {}
236
+ end
237
+ end.run!
238
+
239
+ global_option.should == 'path'
240
+ command_option.should == 'bar'
241
+ end
242
+ end
243
+
113
244
 
114
245
  describe "#remove_global_options" do
115
246
  it "should remove only specified switches" do
@@ -1,5 +1,4 @@
1
-
2
- require File.dirname(__FILE__) + '/spec_helper'
1
+ require 'spec_helper'
3
2
 
4
3
  describe Commander::UI do
5
4
 
@@ -0,0 +1,11 @@
1
+ desc 'Install development dependencies'
2
+ task :dev_setup do
3
+ ObjectSpace.each_object(Echoe) do |o|
4
+ o.development_dependencies.each do |gem_string|
5
+ gem_name, version = gem_string.split(' ', 2)
6
+ cmd = "gem install #{gem_name}"
7
+ cmd += " --version '#{version}'" if (version)
8
+ puts `#{cmd}`
9
+ end
10
+ end
11
+ end
@@ -1,6 +1,7 @@
1
1
 
2
2
  desc 'Build docs with sdoc gem'
3
3
  task :docs do
4
+ require "sdoc"
4
5
  sh 'sdoc -N lib/commander'
5
6
  end
6
7
 
metadata CHANGED
@@ -1,17 +1,22 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: commander
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 53
4
5
  prerelease:
5
- version: 4.0.4
6
+ segments:
7
+ - 4
8
+ - 0
9
+ - 5
10
+ version: 4.0.5
6
11
  platform: ruby
7
12
  authors:
8
13
  - TJ Holowaychuk
14
+ - Gabriel Gilder
9
15
  autorequire:
10
16
  bindir: bin
11
17
  cert_chain: []
12
18
 
13
- date: 2011-04-04 00:00:00 -07:00
14
- default_executable: commander
19
+ date: 2011-08-09 00:00:00 Z
15
20
  dependencies:
16
21
  - !ruby/object:Gem::Dependency
17
22
  name: highline
@@ -21,11 +26,63 @@ dependencies:
21
26
  requirements:
22
27
  - - ">="
23
28
  - !ruby/object:Gem::Version
29
+ hash: 3
30
+ segments:
31
+ - 1
32
+ - 5
33
+ - 0
24
34
  version: 1.5.0
25
35
  type: :runtime
26
36
  version_requirements: *id001
37
+ - !ruby/object:Gem::Dependency
38
+ name: echoe
39
+ prerelease: false
40
+ requirement: &id002 !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ">="
44
+ - !ruby/object:Gem::Version
45
+ hash: 63
46
+ segments:
47
+ - 4
48
+ - 0
49
+ - 0
50
+ version: 4.0.0
51
+ type: :development
52
+ version_requirements: *id002
53
+ - !ruby/object:Gem::Dependency
54
+ name: sdoc
55
+ prerelease: false
56
+ requirement: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ hash: 63
62
+ segments:
63
+ - 0
64
+ - 2
65
+ - 20
66
+ version: 0.2.20
67
+ type: :development
68
+ version_requirements: *id003
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec
71
+ prerelease: false
72
+ requirement: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 9
78
+ segments:
79
+ - 1
80
+ - 3
81
+ version: "1.3"
82
+ type: :development
83
+ version_requirements: *id004
27
84
  description: The complete solution for Ruby command-line executables
28
- email: tj@vision-media.ca
85
+ email: ggilder@tractionco.com
29
86
  executables:
30
87
  - commander
31
88
  extensions: []
@@ -53,9 +110,11 @@ extra_rdoc_files:
53
110
  - lib/commander/runner.rb
54
111
  - lib/commander/user_interaction.rb
55
112
  - lib/commander/version.rb
113
+ - tasks/dev_setup.rake
56
114
  - tasks/docs.rake
57
115
  - tasks/gemspec.rake
58
116
  files:
117
+ - DEVELOPMENT
59
118
  - History.rdoc
60
119
  - Manifest
61
120
  - README.rdoc
@@ -90,9 +149,9 @@ files:
90
149
  - spec/spec.opts
91
150
  - spec/spec_helper.rb
92
151
  - spec/ui_spec.rb
152
+ - tasks/dev_setup.rake
93
153
  - tasks/docs.rake
94
154
  - tasks/gemspec.rake
95
- has_rdoc: true
96
155
  homepage: http://visionmedia.github.com/commander
97
156
  licenses: []
98
157
 
@@ -111,17 +170,24 @@ required_ruby_version: !ruby/object:Gem::Requirement
111
170
  requirements:
112
171
  - - ">="
113
172
  - !ruby/object:Gem::Version
173
+ hash: 3
174
+ segments:
175
+ - 0
114
176
  version: "0"
115
177
  required_rubygems_version: !ruby/object:Gem::Requirement
116
178
  none: false
117
179
  requirements:
118
180
  - - ">="
119
181
  - !ruby/object:Gem::Version
182
+ hash: 11
183
+ segments:
184
+ - 1
185
+ - 2
120
186
  version: "1.2"
121
187
  requirements: []
122
188
 
123
189
  rubyforge_project: commander
124
- rubygems_version: 1.5.3
190
+ rubygems_version: 1.8.6
125
191
  signing_key:
126
192
  specification_version: 3
127
193
  summary: The complete solution for Ruby command-line executables