cape 1.5.0 → 1.6.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -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