commander 4.1.2 → 4.1.3
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/.travis.yml +3 -2
- data/History.rdoc +7 -1
- data/README.rdoc +2 -0
- data/bin/commander +2 -2
- data/lib/commander/core_ext/array.rb +7 -6
- data/lib/commander/runner.rb +1 -1
- data/lib/commander/version.rb +2 -2
- data/spec/core_ext/array_spec.rb +7 -2
- data/spec/runner_spec.rb +5 -0
- metadata +31 -11
data/.travis.yml
CHANGED
data/History.rdoc
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
=== 4.1.3 / 2012-12-15
|
2
|
+
|
3
|
+
* Remove use of eval in Array.parse
|
4
|
+
* Make generated template executable and set better defaults (@suan)
|
5
|
+
* Fixed valid_command_names_from to match exact commands only (@fgalassi)
|
6
|
+
|
1
7
|
=== 4.1.2 / 2012-02-17
|
2
8
|
|
3
9
|
* Improvement to `ask_editor` to be more portable across *nix variants. (thanks to Federico Galassi)
|
@@ -336,4 +342,4 @@
|
|
336
342
|
|
337
343
|
=== 1.0.0 / 2008-10-31
|
338
344
|
|
339
|
-
* Initial release
|
345
|
+
* Initial release
|
data/README.rdoc
CHANGED
data/bin/commander
CHANGED
@@ -25,9 +25,8 @@ command :init do |c|
|
|
25
25
|
|
26
26
|
require 'rubygems'
|
27
27
|
require 'commander/import'
|
28
|
-
require '#{name}'
|
29
28
|
|
30
|
-
program :version,
|
29
|
+
program :version, '0.0.1'
|
31
30
|
program :description, '#{description}'
|
32
31
|
|
33
32
|
...
|
@@ -47,6 +46,7 @@ command :init do |c|
|
|
47
46
|
...
|
48
47
|
end
|
49
48
|
end
|
49
|
+
File.chmod 0755, file
|
50
50
|
say "Initialized template in #{file}"
|
51
51
|
rescue Exception => e
|
52
52
|
abort e
|
@@ -1,6 +1,6 @@
|
|
1
1
|
|
2
|
-
class Array
|
3
|
-
|
2
|
+
class Array
|
3
|
+
|
4
4
|
##
|
5
5
|
# Split _string_ into an array. Used in
|
6
6
|
# conjunction with Highline's #ask, or #ask_for_array
|
@@ -10,16 +10,17 @@ class Array
|
|
10
10
|
# the arguments foo bar\ baz will become ['foo', 'bar baz']
|
11
11
|
#
|
12
12
|
# === Example
|
13
|
-
#
|
13
|
+
#
|
14
14
|
# # ask invokes Array#parse
|
15
15
|
# list = ask 'Favorite cookies:', Array
|
16
16
|
#
|
17
17
|
# # or use ask_for_CLASS
|
18
18
|
# list = ask_for_array 'Favorite cookies: '
|
19
19
|
#
|
20
|
-
|
20
|
+
|
21
21
|
def self.parse string
|
22
|
-
|
22
|
+
# Using reverse + lookahead to work around Ruby 1.8's lack of lookbehind
|
23
|
+
string.reverse.split(/\s(?!\\)/).reverse.map { |s| s.reverse.gsub('\\ ', ' ') }
|
23
24
|
end
|
24
|
-
|
25
|
+
|
25
26
|
end
|
data/lib/commander/runner.rb
CHANGED
@@ -223,7 +223,7 @@ module Commander
|
|
223
223
|
|
224
224
|
def valid_command_names_from *args
|
225
225
|
arg_string = args.delete_if { |value| value =~ /^-/ }.join ' '
|
226
|
-
commands.keys.find_all { |name| name if /^#{name}/.match arg_string }
|
226
|
+
commands.keys.find_all { |name| name if /^#{name}\b/.match arg_string }
|
227
227
|
end
|
228
228
|
|
229
229
|
##
|
data/lib/commander/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
module Commander
|
2
|
-
VERSION = '4.1.
|
3
|
-
end
|
2
|
+
VERSION = '4.1.3'
|
3
|
+
end
|
data/spec/core_ext/array_spec.rb
CHANGED
@@ -1,15 +1,20 @@
|
|
1
1
|
require 'spec_helper'
|
2
2
|
|
3
3
|
describe Array do
|
4
|
-
|
4
|
+
|
5
5
|
describe "#parse" do
|
6
6
|
it "should seperate a list of words into an array" do
|
7
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
11
|
Array.parse('just a\ test').should eq(['just', 'a test'])
|
12
12
|
end
|
13
|
+
|
14
|
+
it "should match %w behavior with multiple backslashes" do
|
15
|
+
str = 'just a\\ test'
|
16
|
+
Array.parse(str).should eq(eval("%w(#{str})"))
|
17
|
+
end
|
13
18
|
end
|
14
19
|
|
15
20
|
end
|
data/spec/runner_spec.rb
CHANGED
@@ -361,6 +361,11 @@ describe Commander do
|
|
361
361
|
it "should return empty array when no possible command names exist" do
|
362
362
|
command_runner.valid_command_names_from('fake', 'command', 'name').should eq([])
|
363
363
|
end
|
364
|
+
|
365
|
+
it "should match exact commands only" do
|
366
|
+
command('foo') {}
|
367
|
+
command_runner.valid_command_names_from('foobar').should eq([])
|
368
|
+
end
|
364
369
|
end
|
365
370
|
|
366
371
|
describe "#command_name_from_args" do
|
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.1.
|
4
|
+
version: 4.1.3
|
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: 2012-
|
13
|
+
date: 2012-12-16 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: highline
|
17
|
-
requirement:
|
17
|
+
requirement: !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,15 @@ dependencies:
|
|
22
22
|
version: 1.6.11
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
|
-
version_requirements:
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
none: false
|
27
|
+
requirements:
|
28
|
+
- - ~>
|
29
|
+
- !ruby/object:Gem::Version
|
30
|
+
version: 1.6.11
|
26
31
|
- !ruby/object:Gem::Dependency
|
27
32
|
name: rspec
|
28
|
-
requirement:
|
33
|
+
requirement: !ruby/object:Gem::Requirement
|
29
34
|
none: false
|
30
35
|
requirements:
|
31
36
|
- - ~>
|
@@ -33,10 +38,15 @@ dependencies:
|
|
33
38
|
version: '2'
|
34
39
|
type: :development
|
35
40
|
prerelease: false
|
36
|
-
version_requirements:
|
41
|
+
version_requirements: !ruby/object:Gem::Requirement
|
42
|
+
none: false
|
43
|
+
requirements:
|
44
|
+
- - ~>
|
45
|
+
- !ruby/object:Gem::Version
|
46
|
+
version: '2'
|
37
47
|
- !ruby/object:Gem::Dependency
|
38
48
|
name: rake
|
39
|
-
requirement:
|
49
|
+
requirement: !ruby/object:Gem::Requirement
|
40
50
|
none: false
|
41
51
|
requirements:
|
42
52
|
- - ! '>='
|
@@ -44,10 +54,15 @@ dependencies:
|
|
44
54
|
version: '0'
|
45
55
|
type: :development
|
46
56
|
prerelease: false
|
47
|
-
version_requirements:
|
57
|
+
version_requirements: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
59
|
+
requirements:
|
60
|
+
- - ! '>='
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0'
|
48
63
|
- !ruby/object:Gem::Dependency
|
49
64
|
name: simplecov
|
50
|
-
requirement:
|
65
|
+
requirement: !ruby/object:Gem::Requirement
|
51
66
|
none: false
|
52
67
|
requirements:
|
53
68
|
- - ! '>='
|
@@ -55,7 +70,12 @@ dependencies:
|
|
55
70
|
version: '0'
|
56
71
|
type: :development
|
57
72
|
prerelease: false
|
58
|
-
version_requirements:
|
73
|
+
version_requirements: !ruby/object:Gem::Requirement
|
74
|
+
none: false
|
75
|
+
requirements:
|
76
|
+
- - ! '>='
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
version: '0'
|
59
79
|
description: The complete solution for Ruby command-line executables. Commander bridges
|
60
80
|
the gap between other terminal related libraries you know and love (OptionParser,
|
61
81
|
HighLine), while providing many new features, and an elegant API.
|
@@ -123,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
123
143
|
version: '0'
|
124
144
|
requirements: []
|
125
145
|
rubyforge_project: commander
|
126
|
-
rubygems_version: 1.8.
|
146
|
+
rubygems_version: 1.8.22
|
127
147
|
signing_key:
|
128
148
|
specification_version: 3
|
129
149
|
summary: The complete solution for Ruby command-line executables
|