cape 1.5.0 → 1.6.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.
@@ -1,6 +1,25 @@
1
+ language: ruby
1
2
  bundler_args: --without debug doc tooling
2
3
  rvm:
3
4
  - 1.8.7
5
+ - 1.9.2
4
6
  - 1.9.3
7
+ - ruby-head
5
8
  - ree
9
+ - jruby-18mode
10
+ - jruby-19mode
11
+ - jruby-head
12
+ - rbx-18mode
13
+ - rbx-19mode
14
+ - rbx-head
6
15
  script: "bundle exec rake"
16
+ matrix:
17
+ allow_failures:
18
+ - rvm: 1.9.2
19
+ - rvm: ruby-head
20
+ - rvm: jruby-18mode
21
+ - rvm: jruby-19mode
22
+ - rvm: jruby-head
23
+ - rvm: rbx-18mode
24
+ - rvm: rbx-19mode
25
+ - rvm: rbx-head
@@ -1,5 +1,9 @@
1
1
  # Version history for the _Cape_ project
2
2
 
3
+ ## <a name="v1.6.0"></a>v1.6.0, Wed 11/14/2012
4
+
5
+ * Enable mirroring and enumeration of hidden Rake tasks for versions of Rake that make it possible
6
+
3
7
  ## <a name="v1.5.0"></a>v1.5.0, Tue 10/09/2012
4
8
 
5
9
  * Automatically detect and use Bundler when running Rake
@@ -273,7 +273,13 @@ Note that Cape statements must be contained in a `Cape` block.
273
273
 
274
274
  ## Known issues
275
275
 
276
- **A Rake task that lacks a description cannot be mirrored or enumerated.** This is pending [an enhancement to Rake](http://github.com/jimweirich/rake/pull/99 "Rake pull request #99 (“Add ‘--include-hidden-tasks option to enhance ‘-T’ and ‘-D’ ”)").
276
+ **A Rake task that lacks a description can be mirrored or enumerated only if Rake v0.9.3 or newer is installed.** Older versions of Rake did not support enumerating such tasks. You may want to make Rake v0.9.3 a dependency of your project:
277
+
278
+ # Gemfile
279
+
280
+ source 'http://rubygems.org'
281
+
282
+ gem 'rake', '>= 0.9.3'
277
283
 
278
284
  **A Rake task whose name collides with a Ruby method cannot be mirrored.** For example, the name of [Rails](http://rubyonrails.org)’s _db:fixtures:load_ task collides with the Ruby Core Library’s [_Kernel::load_ method](http://ruby-doc.org/core/Kernel.html#method-i-load) because that method is mixed into all objects. If you try to mirror _db:fixtures:load_, Capistrano will raise an exception. There is [a questionable workaround](http://github.com/njonsson/cape/issues/7#issuecomment-5632718 "Comment on Cape issue #7 (“defining a task named ‘load’ would shadow an existing method with that name (ArgumentError)”)") for this.
279
285
 
@@ -32,6 +32,6 @@ Gem::Specification.new do |s|
32
32
 
33
33
  s.add_development_dependency 'aruba', '~> 0'
34
34
  s.add_development_dependency 'capistrano', '~> 2'
35
- s.add_development_dependency 'rake', '~> 0'
35
+ s.add_development_dependency 'rake'
36
36
  s.add_development_dependency 'rspec', '~> 2'
37
37
  end
@@ -21,7 +21,7 @@ Feature: The #each_rake_task DSL method with an argument of a defined namespace
21
21
  end
22
22
  end
23
23
  """
24
- When I run `cap -T`
24
+ When I run `cap -vT`
25
25
  Then the output should not contain:
26
26
  """
27
27
 
@@ -20,7 +20,7 @@ Feature: The #each_rake_task DSL method with an argument of a defined task
20
20
  end
21
21
  end
22
22
  """
23
- When I run `cap -T`
23
+ When I run `cap -vT`
24
24
  Then the output should contain:
25
25
  """
26
26
 
@@ -20,7 +20,7 @@ Feature: The #each_rake_task DSL method with an undefined argument
20
20
  end
21
21
  end
22
22
  """
23
- When I run `cap -T`
23
+ When I run `cap -vT`
24
24
  Then the output should not contain:
25
25
  """
26
26
 
@@ -44,7 +44,7 @@ Feature: The #each_rake_task DSL method with an undefined argument
44
44
  end
45
45
  end
46
46
  """
47
- When I run `cap -T`
47
+ When I run `cap -vT`
48
48
  Then the output should not contain:
49
49
  """
50
50
 
@@ -4,7 +4,7 @@ Feature: The #each_rake_task DSL method without arguments
4
4
  As a developer using Cape,
5
5
  I want to use the Cape DSL.
6
6
 
7
- Scenario: enumerate all non-hidden Rake tasks
7
+ Scenario: enumerate all Rake tasks
8
8
  Given a full-featured Rakefile
9
9
  And a Capfile with:
10
10
  """
@@ -21,7 +21,7 @@ Feature: The #each_rake_task DSL method without arguments
21
21
  end
22
22
  end
23
23
  """
24
- When I run `cap -T`
24
+ When I run `cap -vT`
25
25
  Then the output should contain:
26
26
  """
27
27
 
@@ -80,8 +80,3 @@ Feature: The #each_rake_task DSL method without arguments
80
80
  Parameters: ["an_arg1", "an_arg2", "an_arg3"]
81
81
  Description: "My task with three arguments"
82
82
  """
83
- And the output should not contain:
84
- """
85
-
86
- Name: "hidden_task"
87
- """
@@ -14,7 +14,7 @@ Feature: The #mirror_rake_tasks DSL method, inside a Capistrano namespace, with
14
14
  end
15
15
  end
16
16
  """
17
- When I run `cap -T`
17
+ When I run `cap -vT`
18
18
  Then the output should not contain "cap ns:with_period"
19
19
  And the output should contain:
20
20
  """
@@ -14,7 +14,7 @@ Feature: The #mirror_rake_tasks DSL method, inside a Capistrano namespace, with
14
14
  end
15
15
  end
16
16
  """
17
- When I run `cap -T`
17
+ When I run `cap -vT`
18
18
  Then the output should contain:
19
19
  """
20
20
  cap ns:with_period # Ends with period.
@@ -14,7 +14,7 @@ Feature: The #mirror_rake_tasks DSL method, inside a Capistrano namespace, with
14
14
  end
15
15
  end
16
16
  """
17
- When I run `cap -T`
17
+ When I run `cap -vT`
18
18
  Then the output should not contain "cap ns:with_period"
19
19
 
20
20
  Scenario: do not mirror Rake task 'with_period'
@@ -4,7 +4,7 @@ Feature: The #mirror_rake_tasks DSL method, inside a Capistrano namespace, witho
4
4
  As a developer using Cape,
5
5
  I want to use the Cape DSL.
6
6
 
7
- Scenario: mirror all non-hidden Rake tasks
7
+ Scenario: mirror all Rake tasks
8
8
  Given a full-featured Rakefile
9
9
  And a Capfile with:
10
10
  """
@@ -14,7 +14,7 @@ Feature: The #mirror_rake_tasks DSL method, inside a Capistrano namespace, witho
14
14
  end
15
15
  end
16
16
  """
17
- When I run `cap -T`
17
+ When I run `cap -vT`
18
18
  Then the output should contain:
19
19
  """
20
20
  cap ns:with_period # Ends with period.
@@ -51,7 +51,6 @@ Feature: The #mirror_rake_tasks DSL method, inside a Capistrano namespace, witho
51
51
  """
52
52
  cap ns:with_three_args # My task with three arguments.
53
53
  """
54
- And the output should not contain "cap hidden_task"
55
54
 
56
55
  Scenario: mirror Rake task 'with_period' with its description
57
56
  Given a full-featured Rakefile
@@ -288,21 +287,4 @@ Feature: The #mirror_rake_tasks DSL method, inside a Capistrano namespace, witho
288
287
  task arguments.
289
288
 
290
289
 
291
- """
292
-
293
- Scenario: do not mirror Rake task 'hidden_task'
294
- Given a full-featured Rakefile
295
- And a Capfile with:
296
- """
297
- namespace :ns do
298
- Cape do |cape|
299
- cape.mirror_rake_tasks
300
- end
301
- end
302
- """
303
- When I run `cap -e ns:hidden_task`
304
- Then the output should contain exactly:
305
- """
306
- The task `ns:hidden_task' does not exist.
307
-
308
290
  """
@@ -12,7 +12,7 @@ Feature: The #mirror_rake_tasks DSL method with an argument of a defined namespa
12
12
  mirror_rake_tasks 'my_namespace'
13
13
  end
14
14
  """
15
- When I run `cap -T`
15
+ When I run `cap -vT`
16
16
  Then the output should not contain "cap with_period"
17
17
  And the output should contain:
18
18
  """
@@ -4,7 +4,7 @@ Feature: The #mirror_rake_tasks DSL method with arguments of a defined task and
4
4
  As a developer using Cape,
5
5
  I want to use the Cape DSL.
6
6
 
7
- Scenario: mirror all non-hidden Rake tasks with the specified options
7
+ Scenario: mirror all Rake tasks with the specified options
8
8
  Given a full-featured Rakefile
9
9
  And a Capfile with:
10
10
  """
@@ -14,7 +14,7 @@ Feature: The #mirror_rake_tasks DSL method with arguments of a defined task and
14
14
  end
15
15
  end
16
16
  """
17
- When I run `cap -T`
17
+ When I run `cap -vT`
18
18
  Then the output should contain:
19
19
  """
20
20
  cap with_period # Ends with period.
@@ -51,7 +51,6 @@ Feature: The #mirror_rake_tasks DSL method with arguments of a defined task and
51
51
  """
52
52
  cap with_three_args # My task with three arguments.
53
53
  """
54
- And the output should not contain "cap hidden_task"
55
54
 
56
55
  Scenario: mirror Rake task 'with_period' with its description
57
56
  Given a full-featured Rakefile
@@ -222,20 +221,3 @@ Feature: The #mirror_rake_tasks DSL method with arguments of a defined task and
222
221
  * executing "cd /path/to/current/deployed/application && /usr/bin/env `/usr/bin/env bundle check >/dev/null 2>&1; case $? in 0|1 ) echo bundle exec ;; esac` rake with_three_args[,\"a value for an_arg2\",] RAILS_ENV=\"production\""
223
222
  `with_three_args' is only run for servers matching {:roles=>:app}, but no servers matched
224
223
  """
225
-
226
- Scenario: do not mirror Rake task 'hidden_task'
227
- Given a full-featured Rakefile
228
- And a Capfile with:
229
- """
230
- Cape do
231
- mirror_rake_tasks :roles => :app do |env|
232
- env['RAILS_ENV'] = rails_env
233
- end
234
- end
235
- """
236
- When I run `cap -e hidden_task`
237
- Then the output should contain exactly:
238
- """
239
- The task `hidden_task' does not exist.
240
-
241
- """
@@ -12,7 +12,7 @@ Feature: The #mirror_rake_tasks DSL method with an argument of a defined task
12
12
  mirror_rake_tasks 'with_period'
13
13
  end
14
14
  """
15
- When I run `cap -T`
15
+ When I run `cap -vT`
16
16
  Then the output should contain:
17
17
  """
18
18
  cap with_period # Ends with period.
@@ -12,7 +12,7 @@ Feature: The #mirror_rake_tasks DSL method with an undefined argument
12
12
  mirror_rake_tasks 'this_does_not_exist'
13
13
  end
14
14
  """
15
- When I run `cap -T`
15
+ When I run `cap -vT`
16
16
  Then the output should not contain "cap with_period"
17
17
 
18
18
  Scenario: do not mirror Rake task 'with_period'
@@ -4,7 +4,7 @@ Feature: The #mirror_rake_tasks DSL method with arguments of a defined task and
4
4
  As a developer using Cape,
5
5
  I want to use the Cape DSL.
6
6
 
7
- Scenario: mirror all non-hidden Rake tasks with the specified options
7
+ Scenario: mirror all Rake tasks with the specified options
8
8
  Given a full-featured Rakefile
9
9
  And a Capfile with:
10
10
  """
@@ -12,7 +12,7 @@ Feature: The #mirror_rake_tasks DSL method with arguments of a defined task and
12
12
  mirror_rake_tasks :roles => :app
13
13
  end
14
14
  """
15
- When I run `cap -T`
15
+ When I run `cap -vT`
16
16
  Then the output should contain:
17
17
  """
18
18
  cap with_period # Ends with period.
@@ -49,7 +49,6 @@ Feature: The #mirror_rake_tasks DSL method with arguments of a defined task and
49
49
  """
50
50
  cap with_three_args # My task with three arguments.
51
51
  """
52
- And the output should not contain "cap hidden_task"
53
52
 
54
53
  Scenario: mirror Rake task 'with_period' with its description
55
54
  Given a full-featured Rakefile
@@ -4,7 +4,7 @@ Feature: The #mirror_rake_tasks DSL method without arguments
4
4
  As a developer using Cape,
5
5
  I want to use the Cape DSL.
6
6
 
7
- Scenario: mirror all non-hidden Rake tasks
7
+ Scenario: mirror all Rake tasks
8
8
  Given a full-featured Rakefile
9
9
  And a Capfile with:
10
10
  """
@@ -12,7 +12,7 @@ Feature: The #mirror_rake_tasks DSL method without arguments
12
12
  mirror_rake_tasks
13
13
  end
14
14
  """
15
- When I run `cap -T`
15
+ When I run `cap -vT`
16
16
  Then the output should contain:
17
17
  """
18
18
  cap with_period # Ends with period.
@@ -49,7 +49,6 @@ Feature: The #mirror_rake_tasks DSL method without arguments
49
49
  """
50
50
  cap with_three_args # My task with three arguments.
51
51
  """
52
- And the output should not contain "cap hidden_task"
53
52
 
54
53
  Scenario: mirror Rake task 'with_period' with its description
55
54
  Given a full-featured Rakefile
@@ -318,18 +317,3 @@ Feature: The #mirror_rake_tasks DSL method without arguments
318
317
  * executing "cd /path/to/current/deployed/application && /usr/bin/env `/usr/bin/env bundle check >/dev/null 2>&1; case $? in 0|1 ) echo bundle exec ;; esac` rake with_three_args[,\"a value for an_arg2\",]"
319
318
 
320
319
  """
321
-
322
- Scenario: do not mirror Rake task 'hidden_task'
323
- Given a full-featured Rakefile
324
- And a Capfile with:
325
- """
326
- Cape do
327
- mirror_rake_tasks
328
- end
329
- """
330
- When I run `cap -e hidden_task`
331
- Then the output should contain exactly:
332
- """
333
- The task `hidden_task' does not exist.
334
-
335
- """
@@ -24,7 +24,7 @@ Feature: The #local_rake_executable and #remote_rake_executable DSL attributes
24
24
  end
25
25
  end
26
26
  """
27
- When I run `cap -T`
27
+ When I run `cap -vT`
28
28
  Then the output should contain:
29
29
  """
30
30
  We changed the local Rake executable to "echo \"rake this-comes-from-overridden-rake # This comes from overridden Rake\" #"
@@ -64,7 +64,9 @@ module Cape
64
64
  return nil unless task[:description]
65
65
 
66
66
  description = [task[:description]]
67
- description << '.' unless task[:description].end_with?('.')
67
+ unless task[:description].empty? || task[:description].end_with?('.')
68
+ description << '.'
69
+ end
68
70
 
69
71
  unless (parameters = Array(task[:parameters])).empty?
70
72
  noun = Util.pluralize('variable', parameters.length)
@@ -59,7 +59,7 @@ module Cape
59
59
  task_expression = task_expression ?
60
60
  ::Regexp.escape(task_expression.to_s) :
61
61
  '.+?'
62
- regexp = /^rake (#{task_expression}(?::.+?)?)(?:\[(.+?)\])?\s+# (.+)/
62
+ regexp = /^rake (#{task_expression}(?::.+?)?)(?:\[(.+?)\])?\s+#\s*(.*)/
63
63
  each_output_line do |l|
64
64
  unless (matches = l.chomp.match(regexp))
65
65
  next
@@ -143,7 +143,7 @@ module Cape
143
143
  end
144
144
 
145
145
  def fetch_output
146
- `#{local_executable} --tasks 2>/dev/null`
146
+ `#{local_executable} --all --tasks 2>/dev/null || #{local_executable} --tasks 2>/dev/null`
147
147
  end
148
148
  end
149
149
 
@@ -1,6 +1,6 @@
1
1
  module Cape
2
2
 
3
3
  # The version of Cape.
4
- VERSION = '1.5.0'
4
+ VERSION = '1.6.0'
5
5
 
6
6
  end
metadata CHANGED
@@ -1,92 +1,93 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cape
3
- version: !ruby/object:Gem::Version
4
- hash: 3
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.6.0
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 5
9
- - 0
10
- version: 1.5.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Nils Jonsson
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-10-09 00:00:00 Z
19
- dependencies:
20
- - !ruby/object:Gem::Dependency
12
+ date: 2012-11-14 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
21
15
  name: aruba
22
- version_requirements: &id001 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
23
17
  none: false
24
- requirements:
18
+ requirements:
25
19
  - - ~>
26
- - !ruby/object:Gem::Version
27
- hash: 3
28
- segments:
29
- - 0
30
- version: "0"
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
31
22
  type: :development
32
- requirement: *id001
33
23
  prerelease: false
34
- - !ruby/object:Gem::Dependency
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
35
31
  name: capistrano
36
- version_requirements: &id002 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
37
33
  none: false
38
- requirements:
34
+ requirements:
39
35
  - - ~>
40
- - !ruby/object:Gem::Version
41
- hash: 7
42
- segments:
43
- - 2
44
- version: "2"
36
+ - !ruby/object:Gem::Version
37
+ version: '2'
45
38
  type: :development
46
- requirement: *id002
47
39
  prerelease: false
48
- - !ruby/object:Gem::Dependency
49
- name: rake
50
- version_requirements: &id003 !ruby/object:Gem::Requirement
40
+ version_requirements: !ruby/object:Gem::Requirement
51
41
  none: false
52
- requirements:
42
+ requirements:
53
43
  - - ~>
54
- - !ruby/object:Gem::Version
55
- hash: 3
56
- segments:
57
- - 0
58
- version: "0"
44
+ - !ruby/object:Gem::Version
45
+ version: '2'
46
+ - !ruby/object:Gem::Dependency
47
+ name: rake
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
59
54
  type: :development
60
- requirement: *id003
61
55
  prerelease: false
62
- - !ruby/object:Gem::Dependency
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
- version_requirements: &id004 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
65
65
  none: false
66
- requirements:
66
+ requirements:
67
67
  - - ~>
68
- - !ruby/object:Gem::Version
69
- hash: 7
70
- segments:
71
- - 2
72
- version: "2"
68
+ - !ruby/object:Gem::Version
69
+ version: '2'
73
70
  type: :development
74
- requirement: *id004
75
71
  prerelease: false
76
- description: |-
77
- Cape dynamically generates Capistrano recipes for Rake tasks.
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: '2'
78
+ description: ! 'Cape dynamically generates Capistrano recipes for Rake tasks.
79
+
78
80
  It provides a DSL for reflecting on Rake tasks and mirroring
81
+
79
82
  them as documented Capistrano recipes. You can pass Rake task
80
- arguments via environment variables.
81
- email:
83
+
84
+ arguments via environment variables.'
85
+ email:
82
86
  - cape@nilsjonsson.com
83
87
  executables: []
84
-
85
88
  extensions: []
86
-
87
89
  extra_rdoc_files: []
88
-
89
- files:
90
+ files:
90
91
  - .gemtest
91
92
  - .gitignore
92
93
  - .travis.yml
@@ -134,41 +135,34 @@ files:
134
135
  - spec/cape_spec.rb
135
136
  - spec/spec_helper.rb
136
137
  homepage: http://njonsson.github.com/cape
137
- licenses:
138
+ licenses:
138
139
  - MIT
139
140
  post_install_message:
140
141
  rdoc_options: []
141
-
142
- require_paths:
142
+ require_paths:
143
143
  - lib
144
- required_ruby_version: !ruby/object:Gem::Requirement
144
+ required_ruby_version: !ruby/object:Gem::Requirement
145
145
  none: false
146
- requirements:
147
- - - ">="
148
- - !ruby/object:Gem::Version
149
- hash: 57
150
- segments:
151
- - 1
152
- - 8
153
- - 7
146
+ requirements:
147
+ - - ! '>='
148
+ - !ruby/object:Gem::Version
154
149
  version: 1.8.7
155
- required_rubygems_version: !ruby/object:Gem::Requirement
150
+ required_rubygems_version: !ruby/object:Gem::Requirement
156
151
  none: false
157
- requirements:
158
- - - ">="
159
- - !ruby/object:Gem::Version
160
- hash: 3
161
- segments:
152
+ requirements:
153
+ - - ! '>='
154
+ - !ruby/object:Gem::Version
155
+ version: '0'
156
+ segments:
162
157
  - 0
163
- version: "0"
158
+ hash: -2402539198101569570
164
159
  requirements: []
165
-
166
160
  rubyforge_project: cape
167
161
  rubygems_version: 1.8.24
168
162
  signing_key:
169
163
  specification_version: 3
170
164
  summary: Dynamically generates Capistrano recipes for Rake tasks
171
- test_files:
165
+ test_files:
172
166
  - features/dsl/each_rake_task/with_defined_namespace_argument.feature
173
167
  - features/dsl/each_rake_task/with_defined_task_argument.feature
174
168
  - features/dsl/each_rake_task/with_undefined_argument.feature