visionmedia-commander 3.2.0 → 3.2.2
Sign up to get free protection for your applications and to get access to all the features.
- data/History.rdoc +9 -0
- data/Manifest +3 -4
- data/README.rdoc +15 -1
- data/commander.gemspec +4 -4
- data/lib/commander/help_formatters.rb +1 -0
- data/lib/commander/help_formatters/terminal.rb +1 -3
- data/lib/commander/help_formatters/terminal/command_help.erb +2 -2
- data/lib/commander/help_formatters/terminal/help.erb +4 -4
- data/lib/commander/help_formatters/terminal_compact.rb +12 -0
- data/lib/commander/help_formatters/terminal_compact/command_help.erb +27 -0
- data/lib/commander/help_formatters/terminal_compact/help.erb +30 -0
- data/lib/commander/runner.rb +1 -1
- data/lib/commander/version.rb +1 -1
- data/spec/runner_spec.rb +9 -9
- metadata +8 -6
data/History.rdoc
CHANGED
@@ -1,4 +1,13 @@
|
|
1
1
|
|
2
|
+
=== 3.2.2 / 2009-04-01
|
3
|
+
|
4
|
+
* Github's gem builder timed out ? ...
|
5
|
+
|
6
|
+
=== 3.2.1 / 2009-04-01
|
7
|
+
|
8
|
+
* Added Commander::HelpFormatter::TerminalCompact
|
9
|
+
* Fix; updated gemspec / manifest removing test/* causing issue [#26]
|
10
|
+
|
2
11
|
=== 3.2.0 / 2009-03-26
|
3
12
|
|
4
13
|
* Added implied small switches so they appear in help (-h, -v, etc)
|
data/Manifest
CHANGED
@@ -11,6 +11,9 @@ lib/commander/help_formatters/base.rb
|
|
11
11
|
lib/commander/help_formatters/terminal/command_help.erb
|
12
12
|
lib/commander/help_formatters/terminal/help.erb
|
13
13
|
lib/commander/help_formatters/terminal.rb
|
14
|
+
lib/commander/help_formatters/terminal_compact/command_help.erb
|
15
|
+
lib/commander/help_formatters/terminal_compact/help.erb
|
16
|
+
lib/commander/help_formatters/terminal_compact.rb
|
14
17
|
lib/commander/help_formatters.rb
|
15
18
|
lib/commander/runner.rb
|
16
19
|
lib/commander/user_interaction.rb
|
@@ -30,7 +33,3 @@ spec/spec_helper.rb
|
|
30
33
|
tasks/docs.rake
|
31
34
|
tasks/gemspec.rake
|
32
35
|
tasks/spec.rake
|
33
|
-
test/foo
|
34
|
-
test/pbar
|
35
|
-
test/re
|
36
|
-
test/ui
|
data/README.rdoc
CHANGED
@@ -12,11 +12,15 @@ features, and an elegant API.
|
|
12
12
|
* Parses options using OptionParser
|
13
13
|
* Auto-populates struct with options ( no more { |v| options[:recursive] = v } )
|
14
14
|
* Auto-generates help documentation via pluggable help formatters
|
15
|
+
* Packaged with two help formatters (Terminal, TerminalCompact)
|
15
16
|
* Imports the highline gem for interacting with the terminal
|
16
17
|
* Adds additional user interaction functionality
|
17
18
|
* Highly customizable progress bar with intuative, simple usage
|
18
19
|
* Multi-word command name support such as 'drupal module install MOD', rather than 'drupal module_install MOD'
|
19
20
|
* Use the 'commander' executable to initialize a commander driven program
|
21
|
+
* Optional default sub-command when none is present
|
22
|
+
* Global / Sub-command level options
|
23
|
+
* Sub-command aliasing (very powerful, as both switches and arguments can be used)
|
20
24
|
|
21
25
|
== Example
|
22
26
|
|
@@ -239,11 +243,21 @@ You may:
|
|
239
243
|
say 'foo' if options.verbose
|
240
244
|
...
|
241
245
|
|
246
|
+
=== Formatters
|
247
|
+
|
248
|
+
Two core formatters are currently available, the default Terminal formatter as well
|
249
|
+
as TerminalCompact. To utilize a different formatter simply use :help_formatter like below:
|
250
|
+
|
251
|
+
program :help_formatter, Commander::HelpFormatter::TerminalCompact
|
252
|
+
|
253
|
+
This abstraction could be utilized to generate HTML documentation for your executable.
|
254
|
+
|
242
255
|
== Tips
|
243
256
|
|
244
257
|
When adding a global or sub-command option, OptionParser implicitly adds a small
|
245
258
|
switch even when not explicitly created, for example -c will be the same as --config
|
246
|
-
in both examples
|
259
|
+
in both examples, however '-c' will only appear in the documentation when explicitly
|
260
|
+
assigning it.
|
247
261
|
|
248
262
|
global_option '-c', '--config FILE'
|
249
263
|
global_option '--config FILE'
|
data/commander.gemspec
CHANGED
@@ -2,17 +2,17 @@
|
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
4
|
s.name = %q{commander}
|
5
|
-
s.version = "3.2.
|
5
|
+
s.version = "3.2.2"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["TJ Holowaychuk"]
|
9
|
-
s.date = %q{2009-
|
9
|
+
s.date = %q{2009-04-01}
|
10
10
|
s.default_executable = %q{commander}
|
11
11
|
s.description = %q{The complete solution for Ruby command-line executables}
|
12
12
|
s.email = %q{tj@vision-media.ca}
|
13
13
|
s.executables = ["commander"]
|
14
|
-
s.extra_rdoc_files = ["bin/commander", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/core_ext/string.rb", "lib/commander/core_ext.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters.rb", "lib/commander/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "lib/commander.rb", "README.rdoc", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
|
15
|
-
s.files = ["bin/commander", "commander.gemspec", "History.rdoc", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/core_ext/string.rb", "lib/commander/core_ext.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters.rb", "lib/commander/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "lib/commander.rb", "Manifest", "Rakefile", "README.rdoc", "spec/command_spec.rb", "spec/core_ext/array_spec.rb", "spec/core_ext/object_spec.rb", "spec/core_ext/string_spec.rb", "spec/help_formatters/base_spec.rb", "spec/help_formatters/terminal_spec.rb", "spec/runner_spec.rb", "spec/spec_helper.rb", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"
|
14
|
+
s.extra_rdoc_files = ["bin/commander", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/core_ext/string.rb", "lib/commander/core_ext.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters/terminal_compact/command_help.erb", "lib/commander/help_formatters/terminal_compact/help.erb", "lib/commander/help_formatters/terminal_compact.rb", "lib/commander/help_formatters.rb", "lib/commander/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "lib/commander.rb", "README.rdoc", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
|
15
|
+
s.files = ["bin/commander", "commander.gemspec", "History.rdoc", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/core_ext/string.rb", "lib/commander/core_ext.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters/terminal_compact/command_help.erb", "lib/commander/help_formatters/terminal_compact/help.erb", "lib/commander/help_formatters/terminal_compact.rb", "lib/commander/help_formatters.rb", "lib/commander/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "lib/commander.rb", "Manifest", "Rakefile", "README.rdoc", "spec/command_spec.rb", "spec/core_ext/array_spec.rb", "spec/core_ext/object_spec.rb", "spec/core_ext/string_spec.rb", "spec/help_formatters/base_spec.rb", "spec/help_formatters/terminal_spec.rb", "spec/runner_spec.rb", "spec/spec_helper.rb", "tasks/docs.rake", "tasks/gemspec.rake", "tasks/spec.rake"]
|
16
16
|
s.has_rdoc = true
|
17
17
|
s.homepage = %q{http://visionmedia.github.com/commander}
|
18
18
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Commander", "--main", "README.rdoc"]
|
@@ -1,6 +1,4 @@
|
|
1
1
|
|
2
|
-
require 'erb'
|
3
|
-
|
4
2
|
module Commander
|
5
3
|
module HelpFormatter
|
6
4
|
class Terminal < Base
|
@@ -13,7 +11,7 @@ module Commander
|
|
13
11
|
end
|
14
12
|
|
15
13
|
def template name
|
16
|
-
ERB.new(File.read(File.
|
14
|
+
ERB.new(File.read(File.join(File.dirname(__FILE__), 'terminal', "#{name}.erb")), nil, '-')
|
17
15
|
end
|
18
16
|
end
|
19
17
|
end
|
@@ -17,7 +17,7 @@
|
|
17
17
|
<% unless @examples.empty? -%>
|
18
18
|
|
19
19
|
<%= $terminal.color "EXAMPLES", :bold %>:
|
20
|
-
<%
|
20
|
+
<% for description, command in @examples -%>
|
21
21
|
|
22
22
|
# <%= description %>
|
23
23
|
<%= command %>
|
@@ -26,7 +26,7 @@
|
|
26
26
|
<% unless @options.empty? -%>
|
27
27
|
|
28
28
|
<%= $terminal.color "OPTIONS", :bold %>:
|
29
|
-
<% @options
|
29
|
+
<% for option in @options -%>
|
30
30
|
|
31
31
|
<%= option[:switches].join ', ' %>
|
32
32
|
<%= option[:description] %>
|
@@ -8,27 +8,27 @@
|
|
8
8
|
<%= program :description %>
|
9
9
|
|
10
10
|
<%= $terminal.color "SUB-COMMANDS", :bold %>:
|
11
|
-
<%
|
11
|
+
<% for name, command in @commands -%>
|
12
12
|
<% unless alias? name %>
|
13
13
|
<%= "%-20s %s" % [command.name, command.summary || command.description] -%>
|
14
14
|
<% end -%>
|
15
15
|
<% end %>
|
16
16
|
<% unless @aliases.empty? %>
|
17
17
|
<%= $terminal.color "ALIASES", :bold %>:
|
18
|
-
<%
|
18
|
+
<% for alias_name, args in @aliases %>
|
19
19
|
<%= "%-20s %s %s" % [alias_name, command(alias_name).name, args.join(' ')] -%>
|
20
20
|
<% end %>
|
21
21
|
<% end %>
|
22
22
|
<% unless @options.empty? -%>
|
23
23
|
<%= $terminal.color "GLOBAL OPTIONS", :bold %>:
|
24
|
-
<% @options
|
24
|
+
<% for option in @options -%>
|
25
25
|
|
26
26
|
<%= option[:switches].join ', ' %>
|
27
27
|
<%= option[:description] %>
|
28
28
|
<% end -%>
|
29
29
|
<% end -%>
|
30
30
|
<% if program :help -%>
|
31
|
-
<% program(:help)
|
31
|
+
<% for title, body in program(:help) %>
|
32
32
|
<%= $terminal.color title.to_s.upcase, :bold %>:
|
33
33
|
|
34
34
|
<%= body %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
|
2
|
+
<%= @name %>
|
3
|
+
<% if @description || @summary -%>
|
4
|
+
|
5
|
+
<%= @description || @summary %>
|
6
|
+
<% end -%>
|
7
|
+
<% if @syntax -%>
|
8
|
+
|
9
|
+
Usage: <%= @syntax %>
|
10
|
+
<% end -%>
|
11
|
+
<% unless @examples.empty? -%>
|
12
|
+
|
13
|
+
Examples:
|
14
|
+
<% for description, command in @examples -%>
|
15
|
+
|
16
|
+
# <%= description %>
|
17
|
+
<%= command %>
|
18
|
+
<% end -%>
|
19
|
+
<% end -%>
|
20
|
+
<% unless @options.empty? -%>
|
21
|
+
|
22
|
+
Options:
|
23
|
+
<% for option in @options -%>
|
24
|
+
<%= "%-20s %s" % [option[:switches].join(', '), option[:description]] %>
|
25
|
+
<% end -%>
|
26
|
+
<% end -%>
|
27
|
+
|
@@ -0,0 +1,30 @@
|
|
1
|
+
|
2
|
+
<%= program :name %>
|
3
|
+
|
4
|
+
<%= program :description %>
|
5
|
+
|
6
|
+
Sub-Commands:
|
7
|
+
<% for name, command in @commands -%>
|
8
|
+
<% unless alias? name -%>
|
9
|
+
<%= "%-20s %s" % [command.name, command.summary || command.description] %>
|
10
|
+
<% end -%>
|
11
|
+
<% end -%>
|
12
|
+
<% unless @aliases.empty? %>
|
13
|
+
Aliases:
|
14
|
+
<% for alias_name, args in @aliases -%>
|
15
|
+
<%= "%-20s %s %s" % [alias_name, command(alias_name).name, args.join(' ')] %>
|
16
|
+
<% end -%>
|
17
|
+
<% end %>
|
18
|
+
<% unless @options.empty? -%>
|
19
|
+
Global Options:
|
20
|
+
<% for option in @options -%>
|
21
|
+
<%= "%-20s %s" % [option[:switches].join(', '), option[:description]] -%>
|
22
|
+
<% end -%>
|
23
|
+
<% end -%>
|
24
|
+
<% if program :help -%>
|
25
|
+
<% for title, body in program(:help) %>
|
26
|
+
<%= title %>:
|
27
|
+
<%= body %>
|
28
|
+
<% end %>
|
29
|
+
<% end -%>
|
30
|
+
|
data/lib/commander/runner.rb
CHANGED
@@ -98,9 +98,9 @@ module Commander
|
|
98
98
|
#
|
99
99
|
# === Keys:
|
100
100
|
#
|
101
|
-
# :name (required) Program name
|
102
101
|
# :version (required) Program version triple, ex: '0.0.1'
|
103
102
|
# :description (required) Program description
|
103
|
+
# :name Program name, defaults to basename of executable
|
104
104
|
# :help_formatter Defaults to Commander::HelpFormatter::Terminal
|
105
105
|
# :help Allows addition of arbitrary global help blocks
|
106
106
|
# :int_message Message to display when interrupted (CTRL + C)
|
data/lib/commander/version.rb
CHANGED
data/spec/runner_spec.rb
CHANGED
@@ -277,27 +277,27 @@ describe Commander do
|
|
277
277
|
end
|
278
278
|
|
279
279
|
it "when using multi-word commands" do
|
280
|
-
new_command_runner '--
|
281
|
-
command('my command') {}
|
280
|
+
new_command_runner '--verbose', 'my', 'command', 'something', 'foo', 'bar' do
|
281
|
+
command('my command') { |c| c.option('--verbose') }
|
282
282
|
command_runner.command_name_from_args.should == 'my command'
|
283
|
-
command_runner.args_without_command_name.should == ['--
|
283
|
+
command_runner.args_without_command_name.should == ['--verbose', 'something', 'foo', 'bar']
|
284
284
|
end.run!
|
285
285
|
end
|
286
286
|
|
287
287
|
it "when using multi-word commands with parts of the command name as arguments" do
|
288
|
-
new_command_runner '--
|
289
|
-
command('my command') {}
|
288
|
+
new_command_runner '--verbose', 'my', 'command', 'something', 'my', 'command' do
|
289
|
+
command('my command') { |c| c.option('--verbose') }
|
290
290
|
command_runner.command_name_from_args.should == 'my command'
|
291
|
-
command_runner.args_without_command_name.should == ['--
|
291
|
+
command_runner.args_without_command_name.should == ['--verbose', 'something', 'my', 'command']
|
292
292
|
end.run!
|
293
293
|
end
|
294
294
|
|
295
295
|
it "when using multi-word commands with other commands using the same words" do
|
296
|
-
new_command_runner '--
|
296
|
+
new_command_runner '--verbose', 'my', 'command', 'something', 'my', 'command' do
|
297
297
|
command('my command') {}
|
298
|
-
command('my command something') {}
|
298
|
+
command('my command something') { |c| c.option('--verbose') }
|
299
299
|
command_runner.command_name_from_args.should == 'my command something'
|
300
|
-
command_runner.args_without_command_name.should == ['--
|
300
|
+
command_runner.args_without_command_name.should == ['--verbose', 'my', 'command']
|
301
301
|
end.run!
|
302
302
|
end
|
303
303
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: visionmedia-commander
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.2.
|
4
|
+
version: 3.2.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- TJ Holowaychuk
|
@@ -9,7 +9,7 @@ autorequire:
|
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2009-
|
12
|
+
date: 2009-04-01 00:00:00 -07:00
|
13
13
|
default_executable: commander
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -40,6 +40,9 @@ extra_rdoc_files:
|
|
40
40
|
- lib/commander/help_formatters/terminal/command_help.erb
|
41
41
|
- lib/commander/help_formatters/terminal/help.erb
|
42
42
|
- lib/commander/help_formatters/terminal.rb
|
43
|
+
- lib/commander/help_formatters/terminal_compact/command_help.erb
|
44
|
+
- lib/commander/help_formatters/terminal_compact/help.erb
|
45
|
+
- lib/commander/help_formatters/terminal_compact.rb
|
43
46
|
- lib/commander/help_formatters.rb
|
44
47
|
- lib/commander/runner.rb
|
45
48
|
- lib/commander/user_interaction.rb
|
@@ -63,6 +66,9 @@ files:
|
|
63
66
|
- lib/commander/help_formatters/terminal/command_help.erb
|
64
67
|
- lib/commander/help_formatters/terminal/help.erb
|
65
68
|
- lib/commander/help_formatters/terminal.rb
|
69
|
+
- lib/commander/help_formatters/terminal_compact/command_help.erb
|
70
|
+
- lib/commander/help_formatters/terminal_compact/help.erb
|
71
|
+
- lib/commander/help_formatters/terminal_compact.rb
|
66
72
|
- lib/commander/help_formatters.rb
|
67
73
|
- lib/commander/runner.rb
|
68
74
|
- lib/commander/user_interaction.rb
|
@@ -82,10 +88,6 @@ files:
|
|
82
88
|
- tasks/docs.rake
|
83
89
|
- tasks/gemspec.rake
|
84
90
|
- tasks/spec.rake
|
85
|
-
- test/foo
|
86
|
-
- test/pbar
|
87
|
-
- test/re
|
88
|
-
- test/ui
|
89
91
|
has_rdoc: true
|
90
92
|
homepage: http://visionmedia.github.com/commander
|
91
93
|
post_install_message:
|