clamp 0.6.4 → 0.6.5
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.
- checksums.yaml +4 -4
- data/CHANGES.md +4 -0
- data/lib/clamp/command.rb +2 -0
- data/lib/clamp/subcommand/declaration.rb +10 -0
- data/lib/clamp/version.rb +1 -1
- data/spec/clamp/command_group_spec.rb +22 -0
- data/spec/spec_helper.rb +4 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8d58bd5db9ac6b414b75d34a947149720909757
|
4
|
+
data.tar.gz: d61add398880941423c32234e2e9c1d57a1c38f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7df1c2418b54a047af268ca936cabc828ecc2ac2f24bb9ca7a0b8a83768dd9b03679178d61ae79b18cd5a932626c5ae5da3d98d353d8517f2f668b00f4971cb4
|
7
|
+
data.tar.gz: 9298c454fd95f1ad91e4a852fabf51bc0ebb3b915c6164a0f2e012625b2ed1a8e170244c376ec6a54580583c471d3b7a0bd1cab45d5ac1a0437bc739989b819a
|
data/CHANGES.md
CHANGED
data/lib/clamp/command.rb
CHANGED
@@ -35,6 +35,16 @@ module Clamp
|
|
35
35
|
recognised_subcommands.find { |sc| sc.is_called?(name) }
|
36
36
|
end
|
37
37
|
|
38
|
+
def find_subcommand_class(*names)
|
39
|
+
names.inject(self) do |command_class, name|
|
40
|
+
if command_class
|
41
|
+
if subcommand = command_class.find_subcommand(name)
|
42
|
+
subcommand.subcommand_class
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
38
48
|
def parameters_before_subcommand
|
39
49
|
parameters.take_while { |p| p != @subcommand_parameter }
|
40
50
|
end
|
data/lib/clamp/version.rb
CHANGED
@@ -66,6 +66,15 @@ describe Clamp::Command do
|
|
66
66
|
|
67
67
|
end
|
68
68
|
|
69
|
+
describe ".find_subcommand_class" do
|
70
|
+
|
71
|
+
it "finds subcommand classes" do
|
72
|
+
flip_class = command_class.find_subcommand_class("flip")
|
73
|
+
expect(flip_class.new("xx").message).to eq("FLIPPED")
|
74
|
+
end
|
75
|
+
|
76
|
+
end
|
77
|
+
|
69
78
|
end
|
70
79
|
|
71
80
|
context "with an aliased subcommand" do
|
@@ -112,9 +121,14 @@ describe Clamp::Command do
|
|
112
121
|
subcommand "foo", "Foo!" do
|
113
122
|
|
114
123
|
subcommand "bar", "Baaaa!" do
|
124
|
+
|
125
|
+
def self.this_is_bar
|
126
|
+
end
|
127
|
+
|
115
128
|
def execute
|
116
129
|
puts "FUBAR"
|
117
130
|
end
|
131
|
+
|
118
132
|
end
|
119
133
|
|
120
134
|
end
|
@@ -126,6 +140,14 @@ describe Clamp::Command do
|
|
126
140
|
expect(stdout).to match /FUBAR/
|
127
141
|
end
|
128
142
|
|
143
|
+
describe ".find_subcommand_class" do
|
144
|
+
|
145
|
+
it "finds nested subcommands" do
|
146
|
+
expect(command_class.find_subcommand_class("foo", "bar")).to respond_to(:this_is_bar)
|
147
|
+
end
|
148
|
+
|
149
|
+
end
|
150
|
+
|
129
151
|
end
|
130
152
|
|
131
153
|
context "with a default subcommand" do
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: clamp
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.6.
|
4
|
+
version: 0.6.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Mike Williams
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02
|
11
|
+
date: 2015-05-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: |
|
14
14
|
Clamp provides an object-model for command-line utilities.
|