cape 1.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/.gemtest +0 -0
- data/.gitignore +6 -0
- data/.travis.yml +7 -0
- data/.yardopts +1 -0
- data/Gemfile +18 -0
- data/History.markdown +7 -0
- data/MIT-LICENSE.markdown +10 -0
- data/README.markdown +157 -0
- data/Rakefile +49 -0
- data/cape.gemspec +36 -0
- data/features/dsl/each_rake_task/with_defined_namespace_argument.feature +43 -0
- data/features/dsl/each_rake_task/with_defined_task_argument.feature +37 -0
- data/features/dsl/each_rake_task/with_undefined_argument.feature +31 -0
- data/features/dsl/each_rake_task/without_arguments.feature +81 -0
- data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_namespace_argument.feature +93 -0
- data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_task_argument.feature +66 -0
- data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_undefined_argument.feature +39 -0
- data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/without_arguments.feature +263 -0
- data/features/dsl/mirror_rake_tasks/with_defined_namespace_argument.feature +85 -0
- data/features/dsl/mirror_rake_tasks/with_defined_task_argument.feature +60 -0
- data/features/dsl/mirror_rake_tasks/with_undefined_argument.feature +35 -0
- data/features/dsl/mirror_rake_tasks/without_arguments.feature +243 -0
- data/features/step_definitions.rb +33 -0
- data/features/support/env.rb +1 -0
- data/features/task_invocation/nonparameterized.feature +69 -0
- data/features/task_invocation/parameterized.feature +70 -0
- data/lib/cape.rb +22 -0
- data/lib/cape/capistrano.rb +86 -0
- data/lib/cape/core_ext.rb +10 -0
- data/lib/cape/core_ext/hash.rb +24 -0
- data/lib/cape/core_ext/symbol.rb +25 -0
- data/lib/cape/dsl.rb +81 -0
- data/lib/cape/rake.rb +60 -0
- data/lib/cape/strings.rb +25 -0
- data/lib/cape/version.rb +6 -0
- data/spec/cape/capistrano_spec.rb +0 -0
- data/spec/cape/core_ext/hash_spec.rb +12 -0
- data/spec/cape/core_ext/symbol_spec.rb +7 -0
- data/spec/cape/dsl_spec.rb +128 -0
- data/spec/cape/rake_spec.rb +0 -0
- data/spec/cape/strings_spec.rb +44 -0
- data/spec/cape/task_spec.rb +0 -0
- data/spec/cape/version_spec.rb +6 -0
- data/spec/cape_spec.rb +5 -0
- metadata +192 -0
data/lib/cape/strings.rb
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
module Cape
|
2
|
+
|
3
|
+
# Provides utility methods for String objects.
|
4
|
+
module Strings
|
5
|
+
|
6
|
+
extend self
|
7
|
+
|
8
|
+
# Returns the English plural form of _noun_, unless _count_ is +1+. The
|
9
|
+
# _count_ argument is optional, and defaults to +2+.
|
10
|
+
def pluralize(noun, count=2)
|
11
|
+
return noun if count == 1
|
12
|
+
|
13
|
+
"#{noun}s"
|
14
|
+
end
|
15
|
+
|
16
|
+
# Builds an English list phrase from the elements of _array_.
|
17
|
+
def to_list_phrase(array)
|
18
|
+
return array.join(' and ') if (array.length <= 2)
|
19
|
+
|
20
|
+
[array[0...-1].join(', '), array[-1]].join ', and '
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
end
|
data/lib/cape/version.rb
ADDED
File without changes
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'cape/core_ext/hash'
|
2
|
+
|
3
|
+
describe Hash do
|
4
|
+
describe '#slice' do
|
5
|
+
it 'should return the expected Hash' do
|
6
|
+
hash = {:foo => 'bar', :baz => 'qux', :quux => 'corge'}
|
7
|
+
hash.slice(:baz, :quux).should == {:baz => 'qux', :quux => 'corge'}
|
8
|
+
|
9
|
+
{}.slice(:foo).should == {}
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,128 @@
|
|
1
|
+
require 'cape/dsl'
|
2
|
+
require 'cape/capistrano'
|
3
|
+
require 'cape/core_ext/hash'
|
4
|
+
require 'cape/core_ext/symbol'
|
5
|
+
require 'cape/rake'
|
6
|
+
|
7
|
+
describe Cape::DSL do
|
8
|
+
subject do
|
9
|
+
Object.new.tap do |o|
|
10
|
+
o.extend described_class
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:mock_capistrano) { mock(Cape::Capistrano).as_null_object }
|
15
|
+
|
16
|
+
let(:mock_rake) { mock(Cape::Rake).as_null_object }
|
17
|
+
|
18
|
+
let(:task_expression) { 'task:expression' }
|
19
|
+
|
20
|
+
before :each do
|
21
|
+
Cape::Capistrano.stub!(:new).and_return mock_capistrano
|
22
|
+
Cape::Rake.stub!(:new).and_return mock_rake
|
23
|
+
end
|
24
|
+
|
25
|
+
describe 'when sent #each_rake_task' do
|
26
|
+
def do_each_rake_task(&block)
|
27
|
+
subject.each_rake_task(task_expression, &block)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should delegate to Rake#each_task' do
|
31
|
+
mock_rake.should_receive(:each_task).
|
32
|
+
with(task_expression).
|
33
|
+
and_yield({:name => task_expression})
|
34
|
+
do_each_rake_task do |t|
|
35
|
+
t.should == {:name => task_expression}
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should return itself' do
|
40
|
+
do_each_rake_task.should == subject
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
describe 'when sent #mirror_rake_tasks' do
|
45
|
+
before :each do
|
46
|
+
mock_rake.stub!(:each_task).and_yield({:name => task_expression})
|
47
|
+
subject.stub! :raise_unless_capistrano
|
48
|
+
end
|
49
|
+
|
50
|
+
def do_mirror_rake_tasks
|
51
|
+
subject.mirror_rake_tasks task_expression
|
52
|
+
end
|
53
|
+
|
54
|
+
it 'should collect Rake#each_task' do
|
55
|
+
mock_rake.should_receive(:each_task).with task_expression
|
56
|
+
do_mirror_rake_tasks
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'should verify that Capistrano is in use' do
|
60
|
+
subject.should_receive :raise_unless_capistrano
|
61
|
+
do_mirror_rake_tasks
|
62
|
+
end
|
63
|
+
|
64
|
+
describe 'should Capistrano#define Rake#each_task' do
|
65
|
+
it 'with the expected task' do
|
66
|
+
mock_capistrano.should_receive(:define).with do |task, options|
|
67
|
+
task == {:name => task_expression}
|
68
|
+
end
|
69
|
+
do_mirror_rake_tasks
|
70
|
+
end
|
71
|
+
|
72
|
+
it 'with the expected named options' do
|
73
|
+
mock_capistrano.should_receive(:define).with do |task, opts|
|
74
|
+
opts.keys.sort == [:binding, :rake]
|
75
|
+
end
|
76
|
+
do_mirror_rake_tasks
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'with a :binding option' do
|
80
|
+
mock_capistrano.should_receive(:define).with do |task, options|
|
81
|
+
options[:binding].is_a? Binding
|
82
|
+
end
|
83
|
+
do_mirror_rake_tasks
|
84
|
+
end
|
85
|
+
|
86
|
+
it 'with the expected :rake option' do
|
87
|
+
mock_capistrano.should_receive(:define).with do |task, options|
|
88
|
+
options[:rake] == mock_rake
|
89
|
+
end
|
90
|
+
do_mirror_rake_tasks
|
91
|
+
end
|
92
|
+
end
|
93
|
+
|
94
|
+
it 'should return itself' do
|
95
|
+
do_mirror_rake_tasks.should == subject
|
96
|
+
end
|
97
|
+
end
|
98
|
+
|
99
|
+
describe 'when sent #local_rake_executable' do
|
100
|
+
before :each do
|
101
|
+
mock_rake.stub!(:local_executable).and_return 'foo'
|
102
|
+
end
|
103
|
+
|
104
|
+
it 'should delegate to Rake#local_executable' do
|
105
|
+
mock_rake.should_receive :local_executable
|
106
|
+
subject.local_rake_executable
|
107
|
+
end
|
108
|
+
|
109
|
+
it 'should return the result of Rake#local_executable' do
|
110
|
+
subject.local_rake_executable.should == 'foo'
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
describe 'when sent #remote_rake_executable' do
|
115
|
+
before :each do
|
116
|
+
mock_rake.stub!(:remote_executable).and_return 'foo'
|
117
|
+
end
|
118
|
+
|
119
|
+
it 'should delegate to Rake#remote_executable' do
|
120
|
+
mock_rake.should_receive :remote_executable
|
121
|
+
subject.remote_rake_executable
|
122
|
+
end
|
123
|
+
|
124
|
+
it 'should return the result of Rake#remote_executable' do
|
125
|
+
subject.remote_rake_executable.should == 'foo'
|
126
|
+
end
|
127
|
+
end
|
128
|
+
end
|
File without changes
|
@@ -0,0 +1,44 @@
|
|
1
|
+
require 'cape/strings'
|
2
|
+
|
3
|
+
describe Cape::Strings do
|
4
|
+
describe '::pluralize' do
|
5
|
+
it "should pluralize 'foo' as expected" do
|
6
|
+
Cape::Strings.pluralize('foo').should == 'foos'
|
7
|
+
end
|
8
|
+
|
9
|
+
it "should pluralize 'foo' as expected for a count of 2" do
|
10
|
+
Cape::Strings.pluralize('foo', 2).should == 'foos'
|
11
|
+
end
|
12
|
+
|
13
|
+
it "should not pluralize for a count of 1" do
|
14
|
+
Cape::Strings.pluralize('foo', 1).should == 'foo'
|
15
|
+
end
|
16
|
+
|
17
|
+
it "should pluralize 'foo' as expected for a count of 0" do
|
18
|
+
Cape::Strings.pluralize('foo', 0).should == 'foos'
|
19
|
+
end
|
20
|
+
|
21
|
+
it "should pluralize 'foo' as expected for a count of -1" do
|
22
|
+
Cape::Strings.pluralize('foo', -1).should == 'foos'
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe '::to_list_phrase' do
|
27
|
+
it 'should make the expected list phrase of an empty array' do
|
28
|
+
Cape::Strings.to_list_phrase([]).should == ''
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'should make the expected list phrase of a 1-element array' do
|
32
|
+
Cape::Strings.to_list_phrase(%w(foo)).should == 'foo'
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'should make the expected list phrase of a 2-element array' do
|
36
|
+
Cape::Strings.to_list_phrase(%w(foo bar)).should == 'foo and bar'
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'should make the expected list phrase of a 3-element array' do
|
40
|
+
array = %w(foo bar baz)
|
41
|
+
Cape::Strings.to_list_phrase(array).should == 'foo, bar, and baz'
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
File without changes
|
data/spec/cape_spec.rb
ADDED
metadata
ADDED
@@ -0,0 +1,192 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cape
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 23
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 1
|
8
|
+
- 0
|
9
|
+
- 0
|
10
|
+
version: 1.0.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- Nils Jonsson
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-11-28 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: aruba
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: capistrano
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: rake
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rspec
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ~>
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 13
|
71
|
+
segments:
|
72
|
+
- 2
|
73
|
+
- 7
|
74
|
+
version: "2.7"
|
75
|
+
type: :development
|
76
|
+
version_requirements: *id004
|
77
|
+
description: Cape provides a simple DSL for selecting Rake tasks to be made available as documented Capistrano recipes. You can pass required arguments to Rake tasks via environment variables.
|
78
|
+
email:
|
79
|
+
- cape@nilsjonsson.com
|
80
|
+
executables: []
|
81
|
+
|
82
|
+
extensions: []
|
83
|
+
|
84
|
+
extra_rdoc_files: []
|
85
|
+
|
86
|
+
files:
|
87
|
+
- .gemtest
|
88
|
+
- .gitignore
|
89
|
+
- .travis.yml
|
90
|
+
- .yardopts
|
91
|
+
- Gemfile
|
92
|
+
- History.markdown
|
93
|
+
- MIT-LICENSE.markdown
|
94
|
+
- README.markdown
|
95
|
+
- Rakefile
|
96
|
+
- cape.gemspec
|
97
|
+
- features/dsl/each_rake_task/with_defined_namespace_argument.feature
|
98
|
+
- features/dsl/each_rake_task/with_defined_task_argument.feature
|
99
|
+
- features/dsl/each_rake_task/with_undefined_argument.feature
|
100
|
+
- features/dsl/each_rake_task/without_arguments.feature
|
101
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_namespace_argument.feature
|
102
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_task_argument.feature
|
103
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_undefined_argument.feature
|
104
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/without_arguments.feature
|
105
|
+
- features/dsl/mirror_rake_tasks/with_defined_namespace_argument.feature
|
106
|
+
- features/dsl/mirror_rake_tasks/with_defined_task_argument.feature
|
107
|
+
- features/dsl/mirror_rake_tasks/with_undefined_argument.feature
|
108
|
+
- features/dsl/mirror_rake_tasks/without_arguments.feature
|
109
|
+
- features/step_definitions.rb
|
110
|
+
- features/support/env.rb
|
111
|
+
- features/task_invocation/nonparameterized.feature
|
112
|
+
- features/task_invocation/parameterized.feature
|
113
|
+
- lib/cape.rb
|
114
|
+
- lib/cape/capistrano.rb
|
115
|
+
- lib/cape/core_ext.rb
|
116
|
+
- lib/cape/core_ext/hash.rb
|
117
|
+
- lib/cape/core_ext/symbol.rb
|
118
|
+
- lib/cape/dsl.rb
|
119
|
+
- lib/cape/rake.rb
|
120
|
+
- lib/cape/strings.rb
|
121
|
+
- lib/cape/version.rb
|
122
|
+
- spec/cape/capistrano_spec.rb
|
123
|
+
- spec/cape/core_ext/hash_spec.rb
|
124
|
+
- spec/cape/core_ext/symbol_spec.rb
|
125
|
+
- spec/cape/dsl_spec.rb
|
126
|
+
- spec/cape/rake_spec.rb
|
127
|
+
- spec/cape/strings_spec.rb
|
128
|
+
- spec/cape/task_spec.rb
|
129
|
+
- spec/cape/version_spec.rb
|
130
|
+
- spec/cape_spec.rb
|
131
|
+
homepage: ""
|
132
|
+
licenses:
|
133
|
+
- MIT
|
134
|
+
post_install_message:
|
135
|
+
rdoc_options: []
|
136
|
+
|
137
|
+
require_paths:
|
138
|
+
- lib
|
139
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
140
|
+
none: false
|
141
|
+
requirements:
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
hash: 57
|
145
|
+
segments:
|
146
|
+
- 1
|
147
|
+
- 8
|
148
|
+
- 7
|
149
|
+
version: 1.8.7
|
150
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
none: false
|
152
|
+
requirements:
|
153
|
+
- - ">="
|
154
|
+
- !ruby/object:Gem::Version
|
155
|
+
hash: 3
|
156
|
+
segments:
|
157
|
+
- 0
|
158
|
+
version: "0"
|
159
|
+
requirements: []
|
160
|
+
|
161
|
+
rubyforge_project:
|
162
|
+
rubygems_version: 1.8.10
|
163
|
+
signing_key:
|
164
|
+
specification_version: 3
|
165
|
+
summary: Dynamically generates Capistrano recipes for Rake tasks
|
166
|
+
test_files:
|
167
|
+
- features/dsl/each_rake_task/with_defined_namespace_argument.feature
|
168
|
+
- features/dsl/each_rake_task/with_defined_task_argument.feature
|
169
|
+
- features/dsl/each_rake_task/with_undefined_argument.feature
|
170
|
+
- features/dsl/each_rake_task/without_arguments.feature
|
171
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_namespace_argument.feature
|
172
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_task_argument.feature
|
173
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_undefined_argument.feature
|
174
|
+
- features/dsl/mirror_rake_tasks/inside_capistrano_namespace/without_arguments.feature
|
175
|
+
- features/dsl/mirror_rake_tasks/with_defined_namespace_argument.feature
|
176
|
+
- features/dsl/mirror_rake_tasks/with_defined_task_argument.feature
|
177
|
+
- features/dsl/mirror_rake_tasks/with_undefined_argument.feature
|
178
|
+
- features/dsl/mirror_rake_tasks/without_arguments.feature
|
179
|
+
- features/step_definitions.rb
|
180
|
+
- features/support/env.rb
|
181
|
+
- features/task_invocation/nonparameterized.feature
|
182
|
+
- features/task_invocation/parameterized.feature
|
183
|
+
- spec/cape/capistrano_spec.rb
|
184
|
+
- spec/cape/core_ext/hash_spec.rb
|
185
|
+
- spec/cape/core_ext/symbol_spec.rb
|
186
|
+
- spec/cape/dsl_spec.rb
|
187
|
+
- spec/cape/rake_spec.rb
|
188
|
+
- spec/cape/strings_spec.rb
|
189
|
+
- spec/cape/task_spec.rb
|
190
|
+
- spec/cape/version_spec.rb
|
191
|
+
- spec/cape_spec.rb
|
192
|
+
has_rdoc: true
|