commander 4.0.6 → 4.0.7
Sign up to get free protection for your applications and to get access to all the features.
- 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