clamp 0.1.1 → 0.1.2

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/examples/fubar ADDED
@@ -0,0 +1,23 @@
1
+ #! /usr/bin/env ruby
2
+
3
+ # An example of subcommands
4
+
5
+ require "clamp"
6
+
7
+ class Fubar < Clamp::Command
8
+
9
+ subcommand "foo", "Foo!" do
10
+
11
+ subcommand "bar", "Baaaa!" do
12
+
13
+ def execute
14
+ puts "FUBAR"
15
+ end
16
+
17
+ end
18
+
19
+ end
20
+
21
+ end
22
+
23
+ Fubar.run
@@ -30,9 +30,10 @@ module Clamp
30
30
  end
31
31
 
32
32
  def has_subcommands!
33
- unless method_defined?(:subcommand_name)
33
+ unless @has_subcommands
34
34
  parameter "SUBCOMMAND", "subcommand name", :attribute_name => :subcommand_name
35
35
  parameter "[ARGS] ...", "subcommand arguments", :attribute_name => :subcommand_arguments
36
+ @has_subcommands = true
36
37
  end
37
38
  end
38
39
 
data/lib/clamp/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Clamp
2
- VERSION = "0.1.1".freeze
2
+ VERSION = "0.1.2".freeze
3
3
  end
@@ -52,6 +52,29 @@ describe Clamp::Command do
52
52
 
53
53
  end
54
54
 
55
+ describe "with nested subcommands" do
56
+
57
+ given_command "fubar" do
58
+
59
+ subcommand "foo", "Foo!" do
60
+
61
+ subcommand "bar", "Baaaa!" do
62
+ def execute
63
+ puts "FUBAR"
64
+ end
65
+ end
66
+
67
+ end
68
+
69
+ end
70
+
71
+ it "delegates multiple levels" do
72
+ @command.run(["foo", "bar"])
73
+ stdout.should =~ /FUBAR/
74
+ end
75
+
76
+ end
77
+
55
78
  describe "each subcommand" do
56
79
 
57
80
  before do
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clamp
3
3
  version: !ruby/object:Gem::Version
4
- hash: 25
4
+ hash: 31
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 1
9
- - 1
10
- version: 0.1.1
9
+ - 2
10
+ version: 0.1.2
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mike Williams
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-11-15 00:00:00 +11:00
18
+ date: 2010-11-22 00:00:00 +11:00
19
19
  default_executable:
20
20
  dependencies: []
21
21
 
@@ -37,6 +37,7 @@ files:
37
37
  - Rakefile
38
38
  - clamp.gemspec
39
39
  - examples/flipflop
40
+ - examples/fubar
40
41
  - examples/speak
41
42
  - lib/clamp.rb
42
43
  - lib/clamp/attribute_declaration.rb