commander 3.3.0 → 4.0.0
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/History.rdoc +12 -0
- data/Manifest +1 -1
- data/README.rdoc +23 -15
- data/bin/commander +2 -2
- data/commander.gemspec +4 -4
- data/lib/commander/command.rb +1 -0
- data/lib/commander/version.rb +1 -1
- data/spec/command_spec.rb +9 -0
- data/spec/core_ext/array_spec.rb +2 -0
- data/spec/core_ext/object_spec.rb +2 -0
- data/spec/help_formatters/base_spec.rb +2 -0
- data/spec/help_formatters/terminal_spec.rb +2 -0
- data/spec/runner_spec.rb +2 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +2 -1
- data/spec/ui_spec.rb +2 -0
- metadata +3 -4
- data/tasks/spec.rake +0 -25
data/History.rdoc
CHANGED
@@ -1,4 +1,16 @@
|
|
1
1
|
|
2
|
+
=== 4.0.0 / 2009-10-10
|
3
|
+
|
4
|
+
* Changed; Aliased #when_called as #action [#9]
|
5
|
+
* Changed; Sort commands and aliases alphabetically.
|
6
|
+
* Changed; Sort aliases alphabetically
|
7
|
+
* Changed; Sort commands alphabetically.
|
8
|
+
* Changed; require user to require 'commander/import' for dsl
|
9
|
+
* Fixed broken regexp; Changed :int_message, only traps INT when available
|
10
|
+
* Fixed Ruby 1.9 warning caused by removing object_id from Object
|
11
|
+
* Removed #eval const hack
|
12
|
+
* Moving to Gemcutter (GRRRR Github)
|
13
|
+
|
2
14
|
=== 3.3.0 / 2009-05-12
|
3
15
|
|
4
16
|
* Added #choose
|
data/Manifest
CHANGED
data/README.rdoc
CHANGED
@@ -27,13 +27,13 @@ features, and an elegant API.
|
|
27
27
|
|
28
28
|
== Installation
|
29
29
|
|
30
|
-
|
31
|
-
sudo gem install
|
30
|
+
Install [Gemcutter](http://gemcutter.org) and execute:
|
31
|
+
$ sudo gem install commander
|
32
32
|
|
33
33
|
== Example
|
34
34
|
|
35
35
|
For more option examples view the Commander::Command#option method. Also
|
36
|
-
an important feature to note is that
|
36
|
+
an important feature to note is that action may be a class to instantiate,
|
37
37
|
as well as an object, specifying a method to call, so view the RDoc for more information.
|
38
38
|
|
39
39
|
require 'rubygems'
|
@@ -47,7 +47,7 @@ as well as an object, specifying a method to call, so view the RDoc for more inf
|
|
47
47
|
command :foo do |c|
|
48
48
|
c.syntax = 'foobar foo'
|
49
49
|
c.description = 'Displays foo'
|
50
|
-
c.
|
50
|
+
c.action do |args, options|
|
51
51
|
say 'foo'
|
52
52
|
end
|
53
53
|
end
|
@@ -57,7 +57,7 @@ as well as an object, specifying a method to call, so view the RDoc for more inf
|
|
57
57
|
c.description = 'Display bar with optional prefix and suffix'
|
58
58
|
c.option '--prefix STRING', String, 'Adds a prefix to bar'
|
59
59
|
c.option '--suffix STRING', String, 'Adds a suffix to bar'
|
60
|
-
c.
|
60
|
+
c.action do |args, options|
|
61
61
|
options.default :prefix => '(', :suffix => ')'
|
62
62
|
say "#{options.prefix}bar#{options.suffix}"
|
63
63
|
end
|
@@ -186,13 +186,13 @@ simplify common tasks using the following methods:
|
|
186
186
|
|
187
187
|
=== Option Defaults
|
188
188
|
|
189
|
-
The options struct passed to #
|
189
|
+
The options struct passed to #action provides a #default method, allowing you
|
190
190
|
to set defaults in a clean manor to options which have not been set.
|
191
191
|
|
192
192
|
command :foo do |c|
|
193
193
|
c.option '--interval SECONDS', Integer, 'Interval in seconds'
|
194
194
|
c.option '--timeout SECONDS', Integer, 'Timeout in seconds'
|
195
|
-
c.
|
195
|
+
c.action do |args, options|
|
196
196
|
options.default \
|
197
197
|
:interval => 2,
|
198
198
|
:timeout => 60
|
@@ -204,7 +204,7 @@ to set defaults in a clean manor to options which have not been set.
|
|
204
204
|
Aliases can be created using the #alias_command method like below:
|
205
205
|
|
206
206
|
command :'install gem' do |c|
|
207
|
-
c.
|
207
|
+
c.action { puts 'foo' }
|
208
208
|
end
|
209
209
|
alias_command :'gem install', :'install gem'
|
210
210
|
|
@@ -214,7 +214,7 @@ as if it was invoked via the command line:
|
|
214
214
|
command :'install gem' do |c|
|
215
215
|
c.syntax = 'install gem <name> [options]'
|
216
216
|
c.option '--dest DIR', String, 'Destination directory'
|
217
|
-
c.
|
217
|
+
c.action { |args, options| puts "installing #{args.first} to #{options.dest}" }
|
218
218
|
end
|
219
219
|
alias_command :update, :'install gem', 'rubygems', '--dest', 'some_path'
|
220
220
|
|
@@ -270,7 +270,7 @@ means that instead of the following:
|
|
270
270
|
|
271
271
|
global_option('--verbose') { $verbose = true }
|
272
272
|
...
|
273
|
-
c.
|
273
|
+
c.action do |args, options|
|
274
274
|
say 'foo' if $verbose
|
275
275
|
...
|
276
276
|
|
@@ -278,20 +278,20 @@ You may:
|
|
278
278
|
|
279
279
|
global_option '--verbose'
|
280
280
|
...
|
281
|
-
c.
|
281
|
+
c.action do |args, options|
|
282
282
|
say 'foo' if options.verbose
|
283
283
|
...
|
284
284
|
|
285
285
|
=== Formatters
|
286
286
|
|
287
287
|
Two core formatters are currently available, the default Terminal formatter as well
|
288
|
-
as TerminalCompact. To utilize a different formatter simply use :
|
288
|
+
as TerminalCompact. To utilize a different formatter simply use :formatter like below:
|
289
289
|
|
290
|
-
program :
|
290
|
+
program :formatter, Commander::HelpFormatter::TerminalCompact
|
291
291
|
|
292
292
|
Or utilize the help formatter aliases:
|
293
293
|
|
294
|
-
program :
|
294
|
+
program :formatter, :compact
|
295
295
|
|
296
296
|
This abstraction could be utilized to generate HTML documentation for your executable.
|
297
297
|
|
@@ -322,10 +322,18 @@ To utilize the #notify and #notify_STATUS methods you need to install
|
|
322
322
|
http://github.com/visionmedia/growl which utilizes the 'growlnotify' executable.
|
323
323
|
Note that growl is auto-imported by Commander when available, no need to require.
|
324
324
|
|
325
|
+
== Running Specifications
|
326
|
+
|
327
|
+
$ autospec
|
328
|
+
|
329
|
+
OR
|
330
|
+
|
331
|
+
$ spec --color spec
|
332
|
+
|
325
333
|
== Contrib
|
326
334
|
|
327
335
|
Feel free to fork and request a pull, or submit a ticket
|
328
|
-
http://
|
336
|
+
http://github.com/visionmedia/commander/issues
|
329
337
|
|
330
338
|
== Known Issues
|
331
339
|
|
data/bin/commander
CHANGED
@@ -13,7 +13,7 @@ command :init do |c|
|
|
13
13
|
c.description = 'Initialize an empty <file> with a commander template,
|
14
14
|
allowing very quick creation of commander executables.'
|
15
15
|
c.example 'Create a new file with a commander template.', 'commander init bin/my_executable'
|
16
|
-
c.
|
16
|
+
c.action do |args, options|
|
17
17
|
file = args.shift || abort('file argument required.')
|
18
18
|
name = ask 'Machine name of program: '
|
19
19
|
description = ask 'Describe your program: '
|
@@ -39,7 +39,7 @@ command :init do |c|
|
|
39
39
|
c.description = ''
|
40
40
|
c.example 'description', 'command example'
|
41
41
|
c.option '--some-switch', 'Some switch that does something'
|
42
|
-
c.
|
42
|
+
c.action do |args, options|
|
43
43
|
# Do something or c.when_called #{name.capitalize}::Commands::#{command.capitalize}
|
44
44
|
end
|
45
45
|
end
|
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 = "
|
5
|
+
s.version = "4.0.0"
|
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-10-
|
9
|
+
s.date = %q{2009-10-10}
|
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 = ["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/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "tasks/docs.rake", "tasks/gemspec.rake"
|
15
|
-
s.files = ["History.rdoc", "Manifest", "README.rdoc", "Rakefile", "bin/commander", "commander.gemspec", "lib/commander.rb", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/delegates.rb", "lib/commander/help_formatters.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal_compact.rb", "lib/commander/help_formatters/terminal_compact/command_help.erb", "lib/commander/help_formatters/terminal_compact/help.erb", "lib/commander/import.rb", "lib/commander/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/base_spec.rb", "spec/help_formatters/terminal_spec.rb", "spec/runner_spec.rb", "spec/
|
14
|
+
s.extra_rdoc_files = ["README.rdoc", "bin/commander", "lib/commander.rb", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/delegates.rb", "lib/commander/help_formatters.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal_compact.rb", "lib/commander/help_formatters/terminal_compact/command_help.erb", "lib/commander/help_formatters/terminal_compact/help.erb", "lib/commander/import.rb", "lib/commander/runner.rb", "lib/commander/user_interaction.rb", "lib/commander/version.rb", "tasks/docs.rake", "tasks/gemspec.rake"]
|
15
|
+
s.files = ["History.rdoc", "Manifest", "README.rdoc", "Rakefile", "bin/commander", "commander.gemspec", "lib/commander.rb", "lib/commander/blank.rb", "lib/commander/command.rb", "lib/commander/core_ext.rb", "lib/commander/core_ext/array.rb", "lib/commander/core_ext/object.rb", "lib/commander/delegates.rb", "lib/commander/help_formatters.rb", "lib/commander/help_formatters/base.rb", "lib/commander/help_formatters/terminal.rb", "lib/commander/help_formatters/terminal/command_help.erb", "lib/commander/help_formatters/terminal/help.erb", "lib/commander/help_formatters/terminal_compact.rb", "lib/commander/help_formatters/terminal_compact/command_help.erb", "lib/commander/help_formatters/terminal_compact/help.erb", "lib/commander/import.rb", "lib/commander/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/base_spec.rb", "spec/help_formatters/terminal_spec.rb", "spec/runner_spec.rb", "spec/spec.opts", "spec/spec_helper.rb", "spec/ui_spec.rb", "tasks/docs.rake", "tasks/gemspec.rake"]
|
16
16
|
s.homepage = %q{http://visionmedia.github.com/commander}
|
17
17
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Commander", "--main", "README.rdoc"]
|
18
18
|
s.require_paths = ["lib"]
|
data/lib/commander/command.rb
CHANGED
data/lib/commander/version.rb
CHANGED
data/spec/command_spec.rb
CHANGED
@@ -1,4 +1,6 @@
|
|
1
1
|
|
2
|
+
require File.dirname(__FILE__) + '/spec_helper'
|
3
|
+
|
2
4
|
describe Commander::Command do
|
3
5
|
|
4
6
|
before :each do
|
@@ -54,6 +56,13 @@ describe Commander::Command do
|
|
54
56
|
@command.when_called object
|
55
57
|
@command.run 'foo'
|
56
58
|
end
|
59
|
+
|
60
|
+
it "should allow #action as an alias to #when_called" do
|
61
|
+
object = mock 'Object'
|
62
|
+
object.should_receive(:call).once
|
63
|
+
@command.action object
|
64
|
+
@command.run 'foo'
|
65
|
+
end
|
57
66
|
|
58
67
|
it "calling an arbitrary method when an object is called" do
|
59
68
|
object = mock 'Object'
|
data/spec/core_ext/array_spec.rb
CHANGED
data/spec/runner_spec.rb
CHANGED
data/spec/spec.opts
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
--color
|
data/spec/spec_helper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
|
2
|
+
$:.unshift File.dirname(__FILE__) + '/../lib'
|
2
3
|
require 'rubygems'
|
3
4
|
require 'commander/import'
|
4
5
|
require 'stringio'
|
@@ -47,7 +48,7 @@ end
|
|
47
48
|
|
48
49
|
def run *args
|
49
50
|
new_command_runner *args do
|
50
|
-
program :
|
51
|
+
program :formatter, Commander::HelpFormatter::Base
|
51
52
|
end.run!
|
52
53
|
@output.string
|
53
54
|
end
|
data/spec/ui_spec.rb
CHANGED
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
|
+
version: 4.0.0
|
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-10-
|
12
|
+
date: 2009-10-10 00:00:00 -07:00
|
13
13
|
default_executable: commander
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
@@ -52,7 +52,6 @@ extra_rdoc_files:
|
|
52
52
|
- lib/commander/version.rb
|
53
53
|
- tasks/docs.rake
|
54
54
|
- tasks/gemspec.rake
|
55
|
-
- tasks/spec.rake
|
56
55
|
files:
|
57
56
|
- History.rdoc
|
58
57
|
- Manifest
|
@@ -85,11 +84,11 @@ files:
|
|
85
84
|
- spec/help_formatters/base_spec.rb
|
86
85
|
- spec/help_formatters/terminal_spec.rb
|
87
86
|
- spec/runner_spec.rb
|
87
|
+
- spec/spec.opts
|
88
88
|
- spec/spec_helper.rb
|
89
89
|
- spec/ui_spec.rb
|
90
90
|
- tasks/docs.rake
|
91
91
|
- tasks/gemspec.rake
|
92
|
-
- tasks/spec.rake
|
93
92
|
has_rdoc: true
|
94
93
|
homepage: http://visionmedia.github.com/commander
|
95
94
|
licenses: []
|
data/tasks/spec.rake
DELETED
@@ -1,25 +0,0 @@
|
|
1
|
-
|
2
|
-
require 'spec/rake/spectask'
|
3
|
-
|
4
|
-
desc "Run all specifications"
|
5
|
-
Spec::Rake::SpecTask.new(:spec) do |t|
|
6
|
-
t.libs << "lib"
|
7
|
-
t.spec_opts = ["--color", "--require", "spec/spec_helper.rb"]
|
8
|
-
end
|
9
|
-
|
10
|
-
namespace :spec do
|
11
|
-
|
12
|
-
desc "Run all specifications verbosely"
|
13
|
-
Spec::Rake::SpecTask.new(:verbose) do |t|
|
14
|
-
t.libs << "lib"
|
15
|
-
t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
|
16
|
-
end
|
17
|
-
|
18
|
-
desc "Run specific specification verbosely (specify SPEC)"
|
19
|
-
Spec::Rake::SpecTask.new(:select) do |t|
|
20
|
-
t.libs << "lib"
|
21
|
-
t.spec_files = [ENV["SPEC"]]
|
22
|
-
t.spec_opts = ["--color", "--format", "specdoc", "--require", "spec/spec_helper.rb"]
|
23
|
-
end
|
24
|
-
|
25
|
-
end
|