commander 4.0.6 → 4.0.7
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/.gitignore +6 -0
- data/.travis.yml +8 -0
- data/DEVELOPMENT +6 -14
- data/Gemfile +3 -0
- data/History.rdoc +7 -0
- data/README.rdoc +1 -1
- data/Rakefile +7 -31
- data/bin/commander +13 -13
- data/commander.gemspec +17 -34
- data/lib/commander/help_formatters/terminal/command_help.erb +5 -5
- data/lib/commander/help_formatters/terminal_compact/command_help.erb +4 -4
- data/lib/commander/runner.rb +10 -2
- data/lib/commander/user_interaction.rb +14 -4
- data/lib/commander/version.rb +1 -2
- data/spec/command_spec.rb +12 -12
- data/spec/core_ext/array_spec.rb +2 -2
- data/spec/runner_spec.rb +81 -59
- data/spec/spec_helper.rb +4 -2
- data/spec/ui_spec.rb +1 -1
- metadata +38 -60
- data/spec/spec.opts +0 -1
- data/tasks/dev_setup.rake +0 -11
- data/tasks/docs.rake +0 -19
- data/tasks/gemspec.rake +0 -3
data/.gitignore
ADDED
data/.travis.yml
ADDED
data/DEVELOPMENT
CHANGED
@@ -1,23 +1,15 @@
|
|
1
|
-
To run the development rake tasks, you need
|
2
|
-
|
3
|
-
To install the rest of the development dependencies:
|
4
|
-
|
5
|
-
$ rake dev_setup
|
1
|
+
To run the development rake tasks, you need bundler installed.
|
6
2
|
|
7
3
|
Before you push any changes, run the RSpec suite:
|
8
4
|
|
9
5
|
$ rake spec
|
10
6
|
|
11
|
-
Build the docs:
|
12
|
-
|
13
|
-
$ rake docs
|
14
|
-
|
15
|
-
Build and check the docs:
|
16
|
-
|
17
|
-
$ rake docs:open
|
18
|
-
|
19
7
|
To build a new version of the gem:
|
20
8
|
|
21
9
|
$ rake build
|
22
|
-
$ rake gem
|
23
10
|
|
11
|
+
To push the new version to Rubygems:
|
12
|
+
|
13
|
+
$ rake release
|
14
|
+
|
15
|
+
(http://rubygems.org/gems/commander)
|
data/Gemfile
ADDED
data/History.rdoc
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
4.0.7 / 2012-01-23
|
2
|
+
==================
|
3
|
+
|
4
|
+
* Improved support for JRuby and Windows (and any other platforms that don't support Kernel.fork).
|
5
|
+
* Fixed bug #33 - support `--help` after commands.
|
6
|
+
* Reorganized help output to display synopsis before description (issue #12).
|
7
|
+
|
1
8
|
4.0.6 / 2011-09-15
|
2
9
|
==================
|
3
10
|
|
data/README.rdoc
CHANGED
@@ -202,7 +202,7 @@ growlnotify can also be installed via homebrew[http://mxcl.github.com/homebrew/]
|
|
202
202
|
=== Option Defaults
|
203
203
|
|
204
204
|
The options struct passed to #action provides a #default method, allowing you
|
205
|
-
to set defaults in a clean
|
205
|
+
to set defaults in a clean manner for options which have not been set.
|
206
206
|
|
207
207
|
command :foo do |c|
|
208
208
|
c.option '--interval SECONDS', Integer, 'Interval in seconds'
|
data/Rakefile
CHANGED
@@ -1,34 +1,10 @@
|
|
1
|
-
|
1
|
+
require "rspec/core/rake_task"
|
2
|
+
require "bundler/gem_tasks"
|
2
3
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
begin
|
8
|
-
require g
|
9
|
-
nil
|
10
|
-
rescue LoadError
|
11
|
-
"The #{g} gem is not installed. Please run:\n\tgem install #{g}"
|
12
|
-
end
|
13
|
-
end.compact
|
14
|
-
abort "Missing dependencies!\n" + load_errors.join("\n") unless load_errors.empty?
|
15
|
-
|
16
|
-
require 'commander'
|
17
|
-
require 'rake'
|
18
|
-
|
19
|
-
Echoe.new "commander", Commander::VERSION do |p|
|
20
|
-
p.email = "ggilder@tractionco.com"
|
21
|
-
p.summary = "The complete solution for Ruby command-line executables"
|
22
|
-
p.url = "http://visionmedia.github.com/commander"
|
23
|
-
p.runtime_dependencies << "highline ~>1.5.0"
|
24
|
-
p.development_dependencies << "echoe ~>4.0.0"
|
25
|
-
p.development_dependencies << "sdoc ~>0.3.11"
|
26
|
-
p.development_dependencies << "rspec <2"
|
27
|
-
|
28
|
-
p.eval = Proc.new do
|
29
|
-
self.authors = ["TJ Holowaychuk", "Gabriel Gilder"]
|
30
|
-
self.default_executable = "commander"
|
31
|
-
end
|
4
|
+
desc "Run specs"
|
5
|
+
RSpec::Core::RakeTask.new do |t|
|
6
|
+
t.verbose = false
|
7
|
+
t.rspec_opts = '--color'
|
32
8
|
end
|
33
9
|
|
34
|
-
|
10
|
+
task :default => :spec
|
data/bin/commander
CHANGED
@@ -8,17 +8,17 @@ program :version, Commander::VERSION
|
|
8
8
|
program :description, 'Commander utility program.'
|
9
9
|
|
10
10
|
command :init do |c|
|
11
|
-
|
12
|
-
|
13
|
-
|
11
|
+
c.syntax = 'commander init <file>'
|
12
|
+
c.summary = 'Initialize a commander template'
|
13
|
+
c.description = 'Initialize an empty <file> with a commander template,
|
14
14
|
allowing very quick creation of commander executables.'
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
15
|
+
c.example 'Create a new file with a commander template.', 'commander init bin/my_executable'
|
16
|
+
c.action do |args, options|
|
17
|
+
file = args.shift || abort('file argument required.')
|
18
|
+
name = ask 'Machine name of program: '
|
19
|
+
description = ask 'Describe your program: '
|
20
|
+
commands = ask_for_array 'List the commands you wish to create: '
|
21
|
+
begin
|
22
22
|
File.open(file, 'w') do |f|
|
23
23
|
f.write <<-"...".gsub!(/^ {10}/, '')
|
24
24
|
#!/usr/bin/env ruby
|
@@ -48,8 +48,8 @@ command :init do |c|
|
|
48
48
|
end
|
49
49
|
end
|
50
50
|
say "Initialized template in #{file}"
|
51
|
-
|
51
|
+
rescue Exception => e
|
52
52
|
abort e
|
53
|
-
|
54
|
-
|
53
|
+
end
|
54
|
+
end
|
55
55
|
end
|
data/commander.gemspec
CHANGED
@@ -1,42 +1,25 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "commander/version"
|
2
4
|
|
3
5
|
Gem::Specification.new do |s|
|
4
|
-
s.name
|
5
|
-
s.version
|
6
|
+
s.name = "commander"
|
7
|
+
s.version = Commander::VERSION
|
8
|
+
s.authors = ["TJ Holowaychuk", "Gabriel Gilder"]
|
9
|
+
s.email = ["ggilder@tractionco.com"]
|
10
|
+
s.homepage = "http://visionmedia.github.com/commander"
|
11
|
+
s.summary = "The complete solution for Ruby command-line executables"
|
12
|
+
s.description = "The complete solution for Ruby command-line executables. Commander bridges the gap between other terminal related libraries you know and love (OptionParser, HighLine), while providing many new features, and an elegant API."
|
6
13
|
|
7
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
|
-
s.authors = ["TJ Holowaychuk", "Gabriel Gilder"]
|
9
|
-
s.date = "2011-09-15"
|
10
|
-
s.description = "The complete solution for Ruby command-line executables"
|
11
|
-
s.email = "ggilder@tractionco.com"
|
12
|
-
s.executables = ["commander"]
|
13
|
-
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/dev_setup.rake", "tasks/docs.rake", "tasks/gemspec.rake"]
|
14
|
-
s.files = ["DEVELOPMENT", "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/dev_setup.rake", "tasks/docs.rake", "tasks/gemspec.rake"]
|
15
|
-
s.homepage = "http://visionmedia.github.com/commander"
|
16
|
-
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Commander", "--main", "README.rdoc"]
|
17
|
-
s.require_paths = ["lib"]
|
18
14
|
s.rubyforge_project = "commander"
|
19
|
-
s.rubygems_version = "1.8.10"
|
20
|
-
s.summary = "The complete solution for Ruby command-line executables"
|
21
15
|
|
22
|
-
|
23
|
-
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
24
20
|
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
s.add_development_dependency(%q<rspec>, ["< 2"])
|
30
|
-
else
|
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.3.11"])
|
34
|
-
s.add_dependency(%q<rspec>, ["< 2"])
|
35
|
-
end
|
36
|
-
else
|
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.3.11"])
|
40
|
-
s.add_dependency(%q<rspec>, ["< 2"])
|
41
|
-
end
|
21
|
+
s.add_runtime_dependency("highline", "~> 1.5.0")
|
22
|
+
s.add_development_dependency("rspec", "~> 2")
|
23
|
+
s.add_development_dependency("rake")
|
24
|
+
s.add_development_dependency("simplecov")
|
42
25
|
end
|
@@ -2,11 +2,6 @@
|
|
2
2
|
<%= $terminal.color "NAME", :bold %>:
|
3
3
|
|
4
4
|
<%= @name %>
|
5
|
-
|
6
|
-
<%= $terminal.color "DESCRIPTION", :bold %>:
|
7
|
-
|
8
|
-
<%= @description || @summary || 'No description.' -%>
|
9
|
-
|
10
5
|
<% if @syntax -%>
|
11
6
|
|
12
7
|
<%= $terminal.color "SYNOPSIS", :bold %>:
|
@@ -14,6 +9,11 @@
|
|
14
9
|
<%= @syntax -%>
|
15
10
|
|
16
11
|
<% end -%>
|
12
|
+
|
13
|
+
<%= $terminal.color "DESCRIPTION", :bold %>:
|
14
|
+
|
15
|
+
<%= @description || @summary || 'No description.' -%>
|
16
|
+
|
17
17
|
<% unless @examples.empty? -%>
|
18
18
|
|
19
19
|
<%= $terminal.color "EXAMPLES", :bold %>:
|
@@ -1,13 +1,13 @@
|
|
1
1
|
|
2
2
|
<%= @name %>
|
3
|
-
<% if @description || @summary -%>
|
4
|
-
|
5
|
-
<%= @description || @summary %>
|
6
|
-
<% end -%>
|
7
3
|
<% if @syntax -%>
|
8
4
|
|
9
5
|
Usage: <%= @syntax %>
|
10
6
|
<% end -%>
|
7
|
+
<% if @description || @summary -%>
|
8
|
+
|
9
|
+
<%= @description || @summary %>
|
10
|
+
<% end -%>
|
11
11
|
<% unless @examples.empty? -%>
|
12
12
|
|
13
13
|
Examples:
|
data/lib/commander/runner.rb
CHANGED
@@ -52,7 +52,11 @@ module Commander
|
|
52
52
|
require_program :version, :description
|
53
53
|
trap('INT') { abort program(:int_message) } if program(:int_message)
|
54
54
|
trap('INT') { program(:int_block).call } if program(:int_block)
|
55
|
-
global_option('-h', '--help', 'Display help documentation')
|
55
|
+
global_option('-h', '--help', 'Display help documentation') do
|
56
|
+
args = @args - %w[-h --help]
|
57
|
+
command(:help).run(*args)
|
58
|
+
return
|
59
|
+
end
|
56
60
|
global_option('-v', '--version', 'Display version information') { say version; return }
|
57
61
|
global_option('-t', '--trace', 'Display backtrace when an error occurs') { trace = true }
|
58
62
|
parse_global_options
|
@@ -271,7 +275,11 @@ module Commander
|
|
271
275
|
say help_formatter.render
|
272
276
|
else
|
273
277
|
command = command args.join(' ')
|
274
|
-
|
278
|
+
begin
|
279
|
+
require_valid_command command
|
280
|
+
rescue InvalidCommandError => e
|
281
|
+
abort "#{e}. Use --help for more information"
|
282
|
+
end
|
275
283
|
say help_formatter.render_command(command)
|
276
284
|
end
|
277
285
|
end
|
@@ -252,22 +252,32 @@ module Commander
|
|
252
252
|
|
253
253
|
def enable_paging
|
254
254
|
return unless $stdout.tty?
|
255
|
-
return
|
255
|
+
return unless Process.respond_to? :fork
|
256
256
|
read, write = IO.pipe
|
257
257
|
|
258
|
+
# Kernel.fork is not supported on all platforms and configurations.
|
259
|
+
# As of Ruby 1.9, `Process.respond_to? :fork` should return false on
|
260
|
+
# configurations that don't support it, but versions before 1.9 don't
|
261
|
+
# seem to do this reliably and instead raise a NotImplementedError
|
262
|
+
# (which is rescued below).
|
263
|
+
|
258
264
|
if Kernel.fork
|
259
265
|
$stdin.reopen read
|
260
|
-
|
266
|
+
write.close; read.close
|
261
267
|
Kernel.select [$stdin]
|
262
268
|
ENV['LESS'] = 'FSRX'
|
263
269
|
pager = ENV['PAGER'] || 'less'
|
264
270
|
exec pager rescue exec '/bin/sh', '-c', pager
|
265
271
|
else
|
272
|
+
# subprocess
|
266
273
|
$stdout.reopen write
|
267
274
|
$stderr.reopen write if $stderr.tty?
|
268
|
-
|
269
|
-
return
|
275
|
+
write.close; read.close
|
270
276
|
end
|
277
|
+
rescue NotImplementedError
|
278
|
+
ensure
|
279
|
+
write.close if write && !write.closed?
|
280
|
+
read.close if read && !read.closed?
|
271
281
|
end
|
272
282
|
|
273
283
|
##
|
data/lib/commander/version.rb
CHANGED
data/spec/command_spec.rb
CHANGED
@@ -15,13 +15,13 @@ describe Commander::Command do
|
|
15
15
|
it "should act like an open struct" do
|
16
16
|
@options.send = 'mail'
|
17
17
|
@options.call = true
|
18
|
-
@options.send.should
|
19
|
-
@options.call.should
|
18
|
+
@options.send.should eq('mail')
|
19
|
+
@options.call.should eq(true)
|
20
20
|
end
|
21
21
|
|
22
22
|
it "should allow __send__ to function as always" do
|
23
23
|
@options.send = 'foo'
|
24
|
-
@options.__send__(:send).should
|
24
|
+
@options.__send__(:send).should eq('foo')
|
25
25
|
end
|
26
26
|
end
|
27
27
|
|
@@ -37,7 +37,7 @@ describe Commander::Command do
|
|
37
37
|
|
38
38
|
it "should allow usage of common method names" do
|
39
39
|
@command.option '--open file'
|
40
|
-
@command.when_called { |_, options| options.open.should
|
40
|
+
@command.when_called { |_, options| options.open.should eq('foo') }
|
41
41
|
@command.run '--open', 'foo'
|
42
42
|
end
|
43
43
|
end
|
@@ -45,7 +45,7 @@ describe Commander::Command do
|
|
45
45
|
describe "#run" do
|
46
46
|
describe "should invoke #when_called" do
|
47
47
|
it "with arguments seperated from options" do
|
48
|
-
@command.when_called { |args, options| args.join(' ').should
|
48
|
+
@command.when_called { |args, options| args.join(' ').should eq('just some args') }
|
49
49
|
@command.run '--verbose', 'just', 'some', 'args'
|
50
50
|
end
|
51
51
|
|
@@ -86,32 +86,32 @@ describe Commander::Command do
|
|
86
86
|
|
87
87
|
it "mandatory arguments" do
|
88
88
|
@command.option '--file FILE'
|
89
|
-
@command.when_called { |_, options| options.file.should
|
89
|
+
@command.when_called { |_, options| options.file.should eq('foo') }
|
90
90
|
@command.run '--file', 'foo'
|
91
91
|
lambda { @command.run '--file' }.should raise_error(OptionParser::MissingArgument)
|
92
92
|
end
|
93
93
|
|
94
94
|
it "optional arguments" do
|
95
95
|
@command.option '--use-config [file] '
|
96
|
-
@command.when_called { |_, options| options.use_config.should
|
96
|
+
@command.when_called { |_, options| options.use_config.should eq('foo') }
|
97
97
|
@command.run '--use-config', 'foo'
|
98
98
|
@command.when_called { |_, options| options.use_config.should be_nil }
|
99
99
|
@command.run '--use-config'
|
100
100
|
@command.option '--interval N', Integer
|
101
|
-
@command.when_called { |_, options| options.interval.should
|
101
|
+
@command.when_called { |_, options| options.interval.should eq(5) }
|
102
102
|
@command.run '--interval', '5'
|
103
103
|
lambda { @command.run '--interval', 'invalid' }.should raise_error(OptionParser::InvalidArgument)
|
104
104
|
end
|
105
105
|
|
106
106
|
it "lists" do
|
107
107
|
@command.option '--fav COLORS', Array
|
108
|
-
@command.when_called { |_, options| options.fav.should
|
108
|
+
@command.when_called { |_, options| options.fav.should eq(['red', 'green', 'blue']) }
|
109
109
|
@command.run '--fav', 'red,green,blue'
|
110
110
|
end
|
111
111
|
|
112
112
|
it "lists with multi-word items" do
|
113
113
|
@command.option '--fav MOVIES', Array
|
114
|
-
@command.when_called { |_, options| options.fav.should
|
114
|
+
@command.when_called { |_, options| options.fav.should eq(['super\ bad', 'nightmare']) }
|
115
115
|
@command.run '--fav', 'super\ bad,nightmare'
|
116
116
|
end
|
117
117
|
|
@@ -122,8 +122,8 @@ describe Commander::Command do
|
|
122
122
|
options.default \
|
123
123
|
:files => ['foo', 'bar'],
|
124
124
|
:interval => 5
|
125
|
-
options.files.should
|
126
|
-
options.interval.should
|
125
|
+
options.files.should eq(['foo', 'bar'])
|
126
|
+
options.interval.should eq(15)
|
127
127
|
end
|
128
128
|
@command.run '--interval', '15'
|
129
129
|
end
|
data/spec/core_ext/array_spec.rb
CHANGED
@@ -4,11 +4,11 @@ describe Array do
|
|
4
4
|
|
5
5
|
describe "#parse" do
|
6
6
|
it "should seperate a list of words into an array" do
|
7
|
-
Array.parse('just a test').should
|
7
|
+
Array.parse('just a test').should eq(['just', 'a', 'test'])
|
8
8
|
end
|
9
9
|
|
10
10
|
it "should preserve escaped whitespace" do
|
11
|
-
Array.parse('just a\ test').should
|
11
|
+
Array.parse('just a\ test').should eq(['just', 'a test'])
|
12
12
|
end
|
13
13
|
end
|
14
14
|
|
data/spec/runner_spec.rb
CHANGED
@@ -6,34 +6,34 @@ describe Commander do
|
|
6
6
|
mock_terminal
|
7
7
|
create_test_command
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
describe "#program" do
|
11
11
|
it "should set / get program information" do
|
12
12
|
program :name, 'test'
|
13
|
-
|
13
|
+
program(:name).should eq('test')
|
14
14
|
end
|
15
15
|
|
16
16
|
it "should allow arbitrary blocks of global help documentation" do
|
17
17
|
program :help, 'Copyright', 'TJ Holowaychuk'
|
18
|
-
|
18
|
+
program(:help)['Copyright'].should eq('TJ Holowaychuk')
|
19
19
|
end
|
20
20
|
|
21
21
|
it "should raise an error when required info has not been set" do
|
22
22
|
new_command_runner '--help'
|
23
|
-
|
23
|
+
program :version, ''
|
24
24
|
lambda { run! }.should raise_error(Commander::Runner::CommandError)
|
25
25
|
end
|
26
26
|
|
27
27
|
it "should allow aliases of help formatters" do
|
28
28
|
program :help_formatter, :compact
|
29
|
-
program(:help_formatter).should
|
29
|
+
program(:help_formatter).should eq(Commander::HelpFormatter::TerminalCompact)
|
30
30
|
end
|
31
31
|
end
|
32
32
|
|
33
33
|
describe "#command" do
|
34
|
-
|
35
|
-
|
36
|
-
|
34
|
+
it "should return a command instance when only the name is passed" do
|
35
|
+
command(:test).should be_instance_of(Commander::Command)
|
36
|
+
end
|
37
37
|
|
38
38
|
it "should return nil when the command does not exist" do
|
39
39
|
command(:im_not_real).should be_nil
|
@@ -43,26 +43,26 @@ describe Commander do
|
|
43
43
|
describe "#separate_switches_from_description" do
|
44
44
|
it "should seperate switches and description returning both" do
|
45
45
|
switches, description = *Commander::Runner.separate_switches_from_description('-h', '--help', 'display help')
|
46
|
-
switches.should
|
47
|
-
description.should
|
46
|
+
switches.should eq(['-h', '--help'])
|
47
|
+
description.should eq('display help')
|
48
48
|
end
|
49
49
|
end
|
50
50
|
|
51
51
|
describe "#switch_to_sym" do
|
52
52
|
it "should return a symbol based on the switch name" do
|
53
|
-
Commander::Runner.switch_to_sym('--trace').should
|
54
|
-
Commander::Runner.switch_to_sym('--foo-bar').should
|
55
|
-
Commander::Runner.switch_to_sym('--[no-]feature"').should
|
56
|
-
Commander::Runner.switch_to_sym('--[no-]feature ARG').should
|
57
|
-
Commander::Runner.switch_to_sym('--file [ARG]').should
|
58
|
-
Commander::Runner.switch_to_sym('--colors colors').should
|
53
|
+
Commander::Runner.switch_to_sym('--trace').should eq(:trace)
|
54
|
+
Commander::Runner.switch_to_sym('--foo-bar').should eq(:foo_bar)
|
55
|
+
Commander::Runner.switch_to_sym('--[no-]feature"').should eq(:feature)
|
56
|
+
Commander::Runner.switch_to_sym('--[no-]feature ARG').should eq(:feature)
|
57
|
+
Commander::Runner.switch_to_sym('--file [ARG]').should eq(:file)
|
58
|
+
Commander::Runner.switch_to_sym('--colors colors').should eq(:colors)
|
59
59
|
end
|
60
60
|
end
|
61
61
|
|
62
62
|
describe "#alias_command" do
|
63
63
|
it "should alias a command" do
|
64
64
|
alias_command :foo, :test
|
65
|
-
command(:foo).should
|
65
|
+
command(:foo).should eq(command(:test))
|
66
66
|
end
|
67
67
|
|
68
68
|
it "should pass arguments passed to the alias when called" do
|
@@ -74,7 +74,7 @@ describe Commander do
|
|
74
74
|
end
|
75
75
|
alias_command :'install gem', :install, '--gem-name'
|
76
76
|
end.run!
|
77
|
-
gem_name.should
|
77
|
+
gem_name.should eq('commander')
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
@@ -84,7 +84,7 @@ describe Commander do
|
|
84
84
|
new_command_runner 'test', '--config', 'foo' do
|
85
85
|
global_option('--config FILE') { |f| file = f }
|
86
86
|
end.run!
|
87
|
-
file.should
|
87
|
+
file.should eq('foo')
|
88
88
|
end
|
89
89
|
|
90
90
|
it "should be inherited by commands" do
|
@@ -120,7 +120,7 @@ describe Commander do
|
|
120
120
|
c.when_called {}
|
121
121
|
end
|
122
122
|
end.run!
|
123
|
-
global_option.should
|
123
|
+
global_option.should eq('MAGIC')
|
124
124
|
end
|
125
125
|
|
126
126
|
it 'should parse global options after command' do
|
@@ -132,7 +132,7 @@ describe Commander do
|
|
132
132
|
c.when_called {}
|
133
133
|
end
|
134
134
|
end.run!
|
135
|
-
global_option.should
|
135
|
+
global_option.should eq('MAGIC')
|
136
136
|
end
|
137
137
|
|
138
138
|
it 'should parse global options placed before command options' do
|
@@ -146,7 +146,7 @@ describe Commander do
|
|
146
146
|
end
|
147
147
|
end.run!
|
148
148
|
|
149
|
-
global_option.should
|
149
|
+
global_option.should eq('MAGIC')
|
150
150
|
end
|
151
151
|
|
152
152
|
it 'should parse global options placed after command options' do
|
@@ -160,7 +160,7 @@ describe Commander do
|
|
160
160
|
end
|
161
161
|
end.run!
|
162
162
|
|
163
|
-
global_option.should
|
163
|
+
global_option.should eq('MAGIC')
|
164
164
|
end
|
165
165
|
|
166
166
|
it 'should parse global options surrounded by command options' do
|
@@ -175,7 +175,7 @@ describe Commander do
|
|
175
175
|
end
|
176
176
|
end.run!
|
177
177
|
|
178
|
-
global_option.should
|
178
|
+
global_option.should eq('MAGIC')
|
179
179
|
end
|
180
180
|
|
181
181
|
it 'should not parse command options' do
|
@@ -191,7 +191,7 @@ describe Commander do
|
|
191
191
|
end.parse_global_options
|
192
192
|
|
193
193
|
command_option.should be_nil
|
194
|
-
global_option.should
|
194
|
+
global_option.should eq('MAGIC')
|
195
195
|
end
|
196
196
|
|
197
197
|
it 'should not affect command arguments with values' do
|
@@ -206,8 +206,8 @@ describe Commander do
|
|
206
206
|
end
|
207
207
|
end.run!
|
208
208
|
|
209
|
-
command_option.should
|
210
|
-
global_option.should
|
209
|
+
command_option.should eq('bar')
|
210
|
+
global_option.should eq('MAGIC')
|
211
211
|
end
|
212
212
|
|
213
213
|
it 'should not affect global arguments with values' do
|
@@ -221,7 +221,7 @@ describe Commander do
|
|
221
221
|
end
|
222
222
|
end.run!
|
223
223
|
|
224
|
-
global_option.should
|
224
|
+
global_option.should eq('bar')
|
225
225
|
end
|
226
226
|
|
227
227
|
it 'should allow global arguments with values before command arguments (github issue #8)' do
|
@@ -236,8 +236,8 @@ describe Commander do
|
|
236
236
|
end
|
237
237
|
end.run!
|
238
238
|
|
239
|
-
global_option.should
|
240
|
-
command_option.should
|
239
|
+
global_option.should eq('path')
|
240
|
+
command_option.should eq('bar')
|
241
241
|
end
|
242
242
|
end
|
243
243
|
|
@@ -254,7 +254,7 @@ describe Commander do
|
|
254
254
|
args << '--command-with-arg' << 'rawr'
|
255
255
|
args << '--paths' << '"lib/**/*.js","spec/**/*.js"'
|
256
256
|
command_runner.remove_global_options options, args
|
257
|
-
args.should
|
257
|
+
args.should eq(['--command', '--command-with-arg', 'rawr'])
|
258
258
|
end
|
259
259
|
|
260
260
|
it "should not swallow an argument unless it expects an argument" do
|
@@ -267,7 +267,7 @@ describe Commander do
|
|
267
267
|
args << '-a' << 'deleted'
|
268
268
|
args << 'beta'
|
269
269
|
command_runner.remove_global_options options, args
|
270
|
-
args.should
|
270
|
+
args.should eq(['alpha', 'beta'])
|
271
271
|
end
|
272
272
|
end
|
273
273
|
|
@@ -292,7 +292,7 @@ describe Commander do
|
|
292
292
|
|
293
293
|
describe "--version" do
|
294
294
|
it "should output program version" do
|
295
|
-
run('--version').should
|
295
|
+
run('--version').should eq("test 1.2.3\n")
|
296
296
|
end
|
297
297
|
end
|
298
298
|
|
@@ -300,6 +300,10 @@ describe Commander do
|
|
300
300
|
it "should not output an invalid command message" do
|
301
301
|
run('--help').should_not == "invalid command. Use --help for more information\n"
|
302
302
|
end
|
303
|
+
|
304
|
+
it "can be used before or after the command and options" do
|
305
|
+
run('test', '--help').should eq("Implement help for test here\n")
|
306
|
+
end
|
303
307
|
end
|
304
308
|
|
305
309
|
describe "with invalid options" do
|
@@ -329,40 +333,58 @@ describe Commander do
|
|
329
333
|
end
|
330
334
|
end
|
331
335
|
|
336
|
+
describe "with invalid command passed to --help" do
|
337
|
+
it "should output an invalid command message" do
|
338
|
+
pending("JRuby's Kernel.abort implementation is not testable") if Commander::Platform::jruby?
|
339
|
+
lambda {
|
340
|
+
run('--help', 'does_not_exist')
|
341
|
+
}.should raise_error(SystemExit, /invalid command. Use --help for more information/)
|
342
|
+
end
|
343
|
+
end
|
344
|
+
|
345
|
+
describe "with invalid option passed to --help" do
|
346
|
+
it "should output an invalid option message" do
|
347
|
+
pending("JRuby's Kernel.abort implementation is not testable") if Commander::Platform::jruby?
|
348
|
+
lambda {
|
349
|
+
run('--help', 'test', '--invalid-option')
|
350
|
+
}.should raise_error(SystemExit, /invalid option: --invalid-option/)
|
351
|
+
end
|
352
|
+
end
|
353
|
+
|
332
354
|
describe "#valid_command_names_from" do
|
333
355
|
it "should return array of valid command names" do
|
334
356
|
command('foo bar') {}
|
335
|
-
|
336
|
-
|
357
|
+
command('foo bar foo') {}
|
358
|
+
command_runner.valid_command_names_from('foo', 'bar', 'foo').sort.should eq(['foo bar', 'foo bar foo'])
|
337
359
|
end
|
338
360
|
|
339
361
|
it "should return empty array when no possible command names exist" do
|
340
|
-
|
362
|
+
command_runner.valid_command_names_from('fake', 'command', 'name').should eq([])
|
341
363
|
end
|
342
364
|
end
|
343
365
|
|
344
366
|
describe "#command_name_from_args" do
|
345
367
|
it "should locate command within arbitrary arguments passed" do
|
346
|
-
|
347
|
-
|
368
|
+
new_command_runner '--help', '--arbitrary', 'test'
|
369
|
+
command_runner.command_name_from_args.should eq('test')
|
348
370
|
end
|
349
371
|
|
350
372
|
it "should support multi-word commands" do
|
351
|
-
|
352
|
-
|
353
|
-
|
373
|
+
new_command_runner '--help', '--arbitrary', 'some', 'long', 'command', 'foo'
|
374
|
+
command('some long command') {}
|
375
|
+
command_runner.command_name_from_args.should eq('some long command')
|
354
376
|
end
|
355
377
|
|
356
378
|
it "should match the longest possible command" do
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
379
|
+
new_command_runner '--help', '--arbitrary', 'foo', 'bar', 'foo'
|
380
|
+
command('foo bar') {}
|
381
|
+
command('foo bar foo') {}
|
382
|
+
command_runner.command_name_from_args.should eq('foo bar foo' )
|
361
383
|
end
|
362
384
|
|
363
385
|
it "should use the left-most command name when multiple are present" do
|
364
|
-
|
365
|
-
|
386
|
+
new_command_runner 'help', 'test'
|
387
|
+
command_runner.command_name_from_args.should eq('help' )
|
366
388
|
end
|
367
389
|
end
|
368
390
|
|
@@ -388,7 +410,7 @@ describe Commander do
|
|
388
410
|
new_command_runner '--trace' do
|
389
411
|
default_command :test
|
390
412
|
command(:test).should_receive(:run).once
|
391
|
-
command_runner.active_command.should
|
413
|
+
command_runner.active_command.should eq(command(:test))
|
392
414
|
end.run!
|
393
415
|
end
|
394
416
|
|
@@ -397,7 +419,7 @@ describe Commander do
|
|
397
419
|
default_command :test
|
398
420
|
command(:'foo bar'){}
|
399
421
|
command(:'foo bar').should_receive(:run).once
|
400
|
-
command_runner.active_command.should
|
422
|
+
command_runner.active_command.should eq(command(:'foo bar'))
|
401
423
|
end.run!
|
402
424
|
end
|
403
425
|
|
@@ -406,7 +428,7 @@ describe Commander do
|
|
406
428
|
default_command :'foo bar'
|
407
429
|
command(:'foo bar'){}
|
408
430
|
command(:'foo bar something'){}
|
409
|
-
command_runner.active_command.should
|
431
|
+
command_runner.active_command.should eq(command(:'foo bar something'))
|
410
432
|
end
|
411
433
|
|
412
434
|
it "should allow defaulting of command aliases" do
|
@@ -422,7 +444,7 @@ describe Commander do
|
|
422
444
|
it "when options are passed before the command name" do
|
423
445
|
new_command_runner '--verbose', 'test', 'foo', 'bar' do
|
424
446
|
@command.when_called do |args, options|
|
425
|
-
args.should
|
447
|
+
args.should eq(['foo', 'bar'])
|
426
448
|
options.verbose.should be_true
|
427
449
|
end
|
428
450
|
end.run!
|
@@ -431,7 +453,7 @@ describe Commander do
|
|
431
453
|
it "when options are passed after the command name" do
|
432
454
|
new_command_runner 'test', '--verbose', 'foo', 'bar' do
|
433
455
|
@command.when_called do |args, options|
|
434
|
-
args.should
|
456
|
+
args.should eq(['foo', 'bar'])
|
435
457
|
options.verbose.should be_true
|
436
458
|
end
|
437
459
|
end.run!
|
@@ -440,7 +462,7 @@ describe Commander do
|
|
440
462
|
it "when an argument passed is the same name as the command" do
|
441
463
|
new_command_runner 'test', '--verbose', 'foo', 'test', 'bar' do
|
442
464
|
@command.when_called do |args, options|
|
443
|
-
args.should
|
465
|
+
args.should eq(['foo', 'test', 'bar'])
|
444
466
|
options.verbose.should be_true
|
445
467
|
end
|
446
468
|
end.run!
|
@@ -449,16 +471,16 @@ describe Commander do
|
|
449
471
|
it "when using multi-word commands" do
|
450
472
|
new_command_runner '--verbose', 'my', 'command', 'something', 'foo', 'bar' do
|
451
473
|
command('my command') { |c| c.option('--verbose') }
|
452
|
-
command_runner.command_name_from_args.should
|
453
|
-
command_runner.args_without_command_name.should
|
474
|
+
command_runner.command_name_from_args.should eq('my command')
|
475
|
+
command_runner.args_without_command_name.should eq(['--verbose', 'something', 'foo', 'bar'])
|
454
476
|
end.run!
|
455
477
|
end
|
456
478
|
|
457
479
|
it "when using multi-word commands with parts of the command name as arguments" do
|
458
480
|
new_command_runner '--verbose', 'my', 'command', 'something', 'my', 'command' do
|
459
481
|
command('my command') { |c| c.option('--verbose') }
|
460
|
-
command_runner.command_name_from_args.should
|
461
|
-
command_runner.args_without_command_name.should
|
482
|
+
command_runner.command_name_from_args.should eq('my command')
|
483
|
+
command_runner.args_without_command_name.should eq(['--verbose', 'something', 'my', 'command'])
|
462
484
|
end.run!
|
463
485
|
end
|
464
486
|
|
@@ -466,8 +488,8 @@ describe Commander do
|
|
466
488
|
new_command_runner '--verbose', 'my', 'command', 'something', 'my', 'command' do
|
467
489
|
command('my command') {}
|
468
490
|
command('my command something') { |c| c.option('--verbose') }
|
469
|
-
command_runner.command_name_from_args.should
|
470
|
-
command_runner.args_without_command_name.should
|
491
|
+
command_runner.command_name_from_args.should eq('my command something')
|
492
|
+
command_runner.args_without_command_name.should eq(['--verbose', 'my', 'command'])
|
471
493
|
end.run!
|
472
494
|
end
|
473
495
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'simplecov'
|
3
|
+
SimpleCov.start
|
1
4
|
|
2
5
|
$:.unshift File.dirname(__FILE__) + '/../lib'
|
3
|
-
require 'rubygems'
|
4
6
|
require 'commander/import'
|
5
7
|
require 'stringio'
|
6
8
|
|
@@ -47,7 +49,7 @@ def command_runner
|
|
47
49
|
end
|
48
50
|
|
49
51
|
def run *args
|
50
|
-
new_command_runner
|
52
|
+
new_command_runner(*args) do
|
51
53
|
program :help_formatter, Commander::HelpFormatter::Base
|
52
54
|
end.run!
|
53
55
|
@output.string
|
data/spec/ui_spec.rb
CHANGED
@@ -5,7 +5,7 @@ describe Commander::UI do
|
|
5
5
|
describe ".replace_tokens" do
|
6
6
|
it "should replace tokens within a string, with hash values" do
|
7
7
|
result = Commander::UI.replace_tokens 'Welcome :name, enjoy your :object'.freeze, :name => 'TJ', :object => 'cookie'
|
8
|
-
result.should
|
8
|
+
result.should eq('Welcome TJ, enjoy your cookie')
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: commander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.7
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -10,11 +10,11 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2012-01-23 00:00:00.000000000Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: highline
|
17
|
-
requirement: &
|
17
|
+
requirement: &70326274634880 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,73 +22,54 @@ dependencies:
|
|
22
22
|
version: 1.5.0
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *70326274634880
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
|
-
name:
|
28
|
-
requirement: &
|
27
|
+
name: rspec
|
28
|
+
requirement: &70326274634380 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version:
|
33
|
+
version: '2'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *70326274634380
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
|
-
name:
|
39
|
-
requirement: &
|
38
|
+
name: rake
|
39
|
+
requirement: &70326274634000 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
|
-
- -
|
42
|
+
- - ! '>='
|
43
43
|
- !ruby/object:Gem::Version
|
44
|
-
version: 0
|
44
|
+
version: '0'
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *70326274634000
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
|
-
name:
|
50
|
-
requirement: &
|
49
|
+
name: simplecov
|
50
|
+
requirement: &70326274633540 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - ! '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
59
|
-
description: The complete solution for Ruby command-line executables
|
60
|
-
|
58
|
+
version_requirements: *70326274633540
|
59
|
+
description: The complete solution for Ruby command-line executables. Commander bridges
|
60
|
+
the gap between other terminal related libraries you know and love (OptionParser,
|
61
|
+
HighLine), while providing many new features, and an elegant API.
|
62
|
+
email:
|
63
|
+
- ggilder@tractionco.com
|
61
64
|
executables:
|
62
65
|
- commander
|
63
66
|
extensions: []
|
64
|
-
extra_rdoc_files:
|
65
|
-
- README.rdoc
|
66
|
-
- bin/commander
|
67
|
-
- lib/commander.rb
|
68
|
-
- lib/commander/blank.rb
|
69
|
-
- lib/commander/command.rb
|
70
|
-
- lib/commander/core_ext.rb
|
71
|
-
- lib/commander/core_ext/array.rb
|
72
|
-
- lib/commander/core_ext/object.rb
|
73
|
-
- lib/commander/delegates.rb
|
74
|
-
- lib/commander/help_formatters.rb
|
75
|
-
- lib/commander/help_formatters/base.rb
|
76
|
-
- lib/commander/help_formatters/terminal.rb
|
77
|
-
- lib/commander/help_formatters/terminal/command_help.erb
|
78
|
-
- lib/commander/help_formatters/terminal/help.erb
|
79
|
-
- lib/commander/help_formatters/terminal_compact.rb
|
80
|
-
- lib/commander/help_formatters/terminal_compact/command_help.erb
|
81
|
-
- lib/commander/help_formatters/terminal_compact/help.erb
|
82
|
-
- lib/commander/import.rb
|
83
|
-
- lib/commander/platform.rb
|
84
|
-
- lib/commander/runner.rb
|
85
|
-
- lib/commander/user_interaction.rb
|
86
|
-
- lib/commander/version.rb
|
87
|
-
- tasks/dev_setup.rake
|
88
|
-
- tasks/docs.rake
|
89
|
-
- tasks/gemspec.rake
|
67
|
+
extra_rdoc_files: []
|
90
68
|
files:
|
69
|
+
- .gitignore
|
70
|
+
- .travis.yml
|
91
71
|
- DEVELOPMENT
|
72
|
+
- Gemfile
|
92
73
|
- History.rdoc
|
93
74
|
- Manifest
|
94
75
|
- README.rdoc
|
@@ -120,22 +101,12 @@ files:
|
|
120
101
|
- spec/core_ext/object_spec.rb
|
121
102
|
- spec/help_formatters/terminal_spec.rb
|
122
103
|
- spec/runner_spec.rb
|
123
|
-
- spec/spec.opts
|
124
104
|
- spec/spec_helper.rb
|
125
105
|
- spec/ui_spec.rb
|
126
|
-
- tasks/dev_setup.rake
|
127
|
-
- tasks/docs.rake
|
128
|
-
- tasks/gemspec.rake
|
129
106
|
homepage: http://visionmedia.github.com/commander
|
130
107
|
licenses: []
|
131
108
|
post_install_message:
|
132
|
-
rdoc_options:
|
133
|
-
- --line-numbers
|
134
|
-
- --inline-source
|
135
|
-
- --title
|
136
|
-
- Commander
|
137
|
-
- --main
|
138
|
-
- README.rdoc
|
109
|
+
rdoc_options: []
|
139
110
|
require_paths:
|
140
111
|
- lib
|
141
112
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -149,11 +120,18 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
149
120
|
requirements:
|
150
121
|
- - ! '>='
|
151
122
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
123
|
+
version: '0'
|
153
124
|
requirements: []
|
154
125
|
rubyforge_project: commander
|
155
|
-
rubygems_version: 1.8.
|
126
|
+
rubygems_version: 1.8.12
|
156
127
|
signing_key:
|
157
128
|
specification_version: 3
|
158
129
|
summary: The complete solution for Ruby command-line executables
|
159
|
-
test_files:
|
130
|
+
test_files:
|
131
|
+
- spec/command_spec.rb
|
132
|
+
- spec/core_ext/array_spec.rb
|
133
|
+
- spec/core_ext/object_spec.rb
|
134
|
+
- spec/help_formatters/terminal_spec.rb
|
135
|
+
- spec/runner_spec.rb
|
136
|
+
- spec/spec_helper.rb
|
137
|
+
- spec/ui_spec.rb
|
data/spec/spec.opts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
--color
|
data/tasks/dev_setup.rake
DELETED
@@ -1,11 +0,0 @@
|
|
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
|
data/tasks/docs.rake
DELETED
@@ -1,19 +0,0 @@
|
|
1
|
-
|
2
|
-
desc 'Build docs with sdoc gem'
|
3
|
-
task :docs do
|
4
|
-
require "sdoc"
|
5
|
-
sh 'sdoc -N lib/commander'
|
6
|
-
end
|
7
|
-
|
8
|
-
namespace :docs do
|
9
|
-
|
10
|
-
desc 'Remove rdoc products'
|
11
|
-
task :remove => [:clobber_docs]
|
12
|
-
|
13
|
-
desc 'Build docs, and open in browser for viewing (specify BROWSER)'
|
14
|
-
task :open => [:docs] do
|
15
|
-
browser = ENV["BROWSER"] || "safari"
|
16
|
-
sh "open -a #{browser} doc/index.html"
|
17
|
-
end
|
18
|
-
|
19
|
-
end
|
data/tasks/gemspec.rake
DELETED