cape 1.6.0 → 1.6.1

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.
Files changed (41) hide show
  1. data/.rspec +2 -0
  2. data/Gemfile +1 -1
  3. data/Guardfile +4 -1
  4. data/History.markdown +4 -0
  5. data/License.markdown +1 -1
  6. data/README.markdown +9 -4
  7. data/Rakefile +3 -3
  8. data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace.feature +40 -0
  9. data/features/dsl/mirror_rake_tasks/with_defined_namespace_argument.feature +23 -53
  10. data/features/dsl/mirror_rake_tasks/with_defined_task_and_valid_options.feature +39 -0
  11. data/features/dsl/mirror_rake_tasks/with_defined_task_and_valid_options_arguments_and_environment_variables.feature +6 -186
  12. data/features/dsl/mirror_rake_tasks/with_defined_task_argument.feature +11 -26
  13. data/features/dsl/mirror_rake_tasks/with_defined_task_argument_and_environment_variables.feature +43 -0
  14. data/features/dsl/mirror_rake_tasks/with_environment_variables.feature +29 -0
  15. data/features/dsl/mirror_rake_tasks/with_undefined_argument.feature +3 -17
  16. data/features/dsl/mirror_rake_tasks/with_valid_options_argument.feature +2 -67
  17. data/features/dsl/mirror_rake_tasks/with_valid_options_arguments_and_environment_variables.feature +26 -0
  18. data/features/dsl/mirror_rake_tasks/without_arguments.feature +5 -2
  19. data/lib/cape/capistrano.rb +9 -6
  20. data/lib/cape/core_ext/hash.rb +1 -0
  21. data/lib/cape/core_ext/symbol.rb +1 -0
  22. data/lib/cape/dsl.rb +29 -13
  23. data/lib/cape/hash_list.rb +80 -0
  24. data/lib/cape/rake.rb +12 -7
  25. data/lib/cape/util.rb +3 -1
  26. data/lib/cape/version.rb +1 -1
  27. data/spec/cape/capistrano_spec.rb +1 -0
  28. data/spec/cape/core_ext/hash_spec.rb +1 -0
  29. data/spec/cape/core_ext/symbol_spec.rb +1 -0
  30. data/spec/cape/dsl_spec.rb +1 -1
  31. data/spec/cape/hash_list_spec.rb +48 -0
  32. data/spec/cape/rake_spec.rb +5 -2
  33. data/spec/cape/util_spec.rb +1 -0
  34. data/spec/cape/version_spec.rb +1 -0
  35. data/spec/cape_spec.rb +1 -0
  36. data/spec/spec_helper.rb +18 -3
  37. metadata +92 -80
  38. data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_namespace_argument.feature +0 -110
  39. data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_task_argument.feature +0 -60
  40. data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_undefined_argument.feature +0 -35
  41. data/features/dsl/mirror_rake_tasks/inside_capistrano_namespace/without_arguments.feature +0 -290
@@ -0,0 +1,80 @@
1
+ module Cape
2
+
3
+ # A HashList is a collection of key-value pairs. It is similar to an Array,
4
+ # except that indexing is done via arbitrary keys of any object type, not an
5
+ # integer index. Hashes enumerate their values in the order that the
6
+ # corresponding keys were inserted.
7
+ #
8
+ # This class exists because in Ruby v1.8.7 and earlier, Hash did not preserve
9
+ # the insertion order of keys.
10
+ class HashList < ::Array
11
+
12
+ # Constructs a new HashList using the specified _arguments_.
13
+ #
14
+ # @param [Hash] arguments attribute values
15
+ def initialize(*arguments)
16
+ super Hash[*arguments].to_a
17
+ end
18
+
19
+ # Compares a HashList to another object.
20
+ #
21
+ # @param [Object] other another object
22
+ #
23
+ # @return [true] the HashList has the same number of keys as _other_, and
24
+ # each key-value pair is equal (according to Object#==)
25
+ # @return [false] the HashList is not equal to _other_
26
+ def ==(other)
27
+ other.is_a?(::Hash) ? (other == to_hash) : super(other)
28
+ end
29
+
30
+ # Retrieves a value from the HashList.
31
+ #
32
+ # @param [Object] key a key
33
+ #
34
+ # @return [Object] the value for _key_
35
+ # @return [nil] if there is no value for _key_
36
+ def [](key)
37
+ entry = find do |pair|
38
+ Array(pair).first == key
39
+ end
40
+ entry ? Array(entry).last : nil
41
+ end
42
+
43
+ # Sets a value in the HashList.
44
+ #
45
+ # @param [Object] key a key
46
+ # @param [Object] value a value for _key_
47
+ #
48
+ # @return [HashList] the HashList
49
+ def []=(key, value)
50
+ index = find_index do |pair|
51
+ Array(pair).first == key
52
+ end
53
+ if index
54
+ super key, value
55
+ else
56
+ self << [key, value]
57
+ end
58
+ self
59
+ end
60
+
61
+ # Provides a string representation of the HashList.
62
+ #
63
+ # @return [String] a string representation of the HashList
64
+ def inspect
65
+ entries = collect do |pair|
66
+ Array(pair).collect(&:inspect).join '=>'
67
+ end
68
+ "{#{entries.join ', '}}"
69
+ end
70
+
71
+ # Converts the HashList to a Hash.
72
+ #
73
+ # @return [Hash] a hash
74
+ def to_hash
75
+ ::Hash[to_a]
76
+ end
77
+
78
+ end
79
+
80
+ end
@@ -4,8 +4,8 @@ module Cape
4
4
  class Rake
5
5
 
6
6
  # The default command used to run Rake. We use `bundle check` to detect the
7
- # presence of Bundler and a Bundler configuration. If Bundler is installed
8
- # on the computer and configured, we prepend `rake` with `bundle exec`.
7
+ # presence of Bundler and a Bundler configuration. If Bundler is installed on
8
+ # the computer and configured, we prepend `rake` with `bundle exec`.
9
9
  DEFAULT_EXECUTABLE = (
10
10
  '/usr/bin/env ' +
11
11
  '`' +
@@ -24,10 +24,13 @@ module Cape
24
24
  # Sets the command used to run Rake on remote computers.
25
25
  #
26
26
  # @param [String] value the command used to run Rake on remote computers
27
+ #
27
28
  # @return [String] _value_
28
29
  attr_writer :remote_executable
29
30
 
30
31
  # Constructs a new Rake object with the specified _attributes_.
32
+ #
33
+ # @param [Hash] attributes attribute values
31
34
  def initialize(attributes={})
32
35
  attributes.each do |name, value|
33
36
  send "#{name}=", value
@@ -37,8 +40,9 @@ module Cape
37
40
  # Compares the Rake object to another.
38
41
  #
39
42
  # @param [Object] other another object
40
- # @return [true] the Rake object is equal to _other_
41
- # @return [false] the Rake object is unequal to _other_
43
+ #
44
+ # @return [true] the {Rake} object is equal to _other_
45
+ # @return [false] the {Rake} object is unequal to _other_
42
46
  def ==(other)
43
47
  other.kind_of?(Rake) &&
44
48
  (other.local_executable == local_executable) &&
@@ -48,7 +52,7 @@ module Cape
48
52
  # Enumerates Rake tasks.
49
53
  #
50
54
  # @param [String, Symbol] task_expression the full name of a task or
51
- # namespace to filter; optional
55
+ # namespace to filter
52
56
  #
53
57
  # @yield [task] a block that processes tasks
54
58
  # @yieldparam [Hash] task metadata on a task
@@ -73,8 +77,8 @@ module Cape
73
77
  end
74
78
  if previous_task
75
79
  all_but_last_segment = this_task[:name].split(':')[0...-1].join(':')
76
- previous_task[:default] = (all_but_last_segment ==
77
- previous_task[:name])
80
+ previous_task[:default] = all_but_last_segment ==
81
+ previous_task[:name]
78
82
  yield previous_task
79
83
  end
80
84
  end
@@ -101,6 +105,7 @@ module Cape
101
105
  # cached Rake task metadata.
102
106
  #
103
107
  # @param [String] value the command used to run Rake on the local computer
108
+ #
104
109
  # @return [String] _value_
105
110
  #
106
111
  # @see #expire_cache!
@@ -6,7 +6,8 @@ module Cape
6
6
  # Conditionally transforms the specified _noun_ into its plural form.
7
7
  #
8
8
  # @param [String] singular_noun a singular noun
9
- # @param [Fixnum] count the quantity of _singular_noun_; optional
9
+ # @param [Fixnum] count the quantity of _singular_noun_
10
+ #
10
11
  # @return [String] the plural of _singular_noun_, unless _count_ is +1+
11
12
  def self.pluralize(singular_noun, count=2)
12
13
  return singular_noun if count == 1
@@ -17,6 +18,7 @@ module Cape
17
18
  # Builds a list phrase from the elements of the specified _array_.
18
19
  #
19
20
  # @param [Array of String] array zero or more nouns
21
+ #
20
22
  # @return [String] the elements of _array_, joined with commas and "and", as
21
23
  # appropriate
22
24
  def self.to_list_phrase(array)
@@ -1,6 +1,6 @@
1
1
  module Cape
2
2
 
3
3
  # The version of Cape.
4
- VERSION = '1.6.0'
4
+ VERSION = '1.6.1'
5
5
 
6
6
  end
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'cape/capistrano'
2
3
  require 'cape/rake'
3
4
 
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'cape/core_ext/hash'
2
3
 
3
4
  describe Hash do
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'cape/core_ext/symbol'
2
3
 
3
4
  describe Symbol do
@@ -1,9 +1,9 @@
1
+ require 'spec_helper'
1
2
  require 'cape/dsl'
2
3
  require 'cape/capistrano'
3
4
  require 'cape/core_ext/hash'
4
5
  require 'cape/core_ext/symbol'
5
6
  require 'cape/rake'
6
- require ::File.expand_path('../../spec_helper', __FILE__)
7
7
 
8
8
  describe Cape::DSL do
9
9
  subject do
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+ require 'cape/hash_list'
3
+
4
+ describe Cape::HashList do
5
+ describe 'that is empty' do
6
+ it { should be_empty }
7
+
8
+ its(:inspect) { should == '{}' }
9
+
10
+ its(:to_a) { should == [] }
11
+
12
+ its(:to_hash) { should == {} }
13
+
14
+ describe 'when values are added out of order' do
15
+ before :each do
16
+ subject['foo'] = 'bar'
17
+ subject['baz'] = 'qux'
18
+ end
19
+
20
+ it { should == {'foo' => 'bar', 'baz' => 'qux'} }
21
+
22
+ its(:inspect) { should == '{"foo"=>"bar", "baz"=>"qux"}' }
23
+
24
+ its(:to_a) { should == [%w(foo bar), %w(baz qux)] }
25
+
26
+ its(:to_hash) { should == {'foo' => 'bar', 'baz' => 'qux'} }
27
+ end
28
+ end
29
+
30
+ describe 'that has values out of order' do
31
+ subject { described_class.new 'foo' => 'bar', 'baz' => 'qux' }
32
+
33
+ it { should == {'foo' => 'bar', 'baz' => 'qux'} }
34
+
35
+ it 'should index the values as expected' do
36
+ subject['foo'].should == 'bar'
37
+ subject['baz'].should == 'qux'
38
+ end
39
+
40
+ describe 'when sent #clear' do
41
+ before :each do
42
+ subject.clear
43
+ end
44
+
45
+ it { should be_empty }
46
+ end
47
+ end
48
+ end
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'cape/rake'
2
3
 
3
4
  describe Cape::Rake do
@@ -29,8 +30,10 @@ describe Cape::Rake do
29
30
 
30
31
  describe '-- with specified attributes --' do
31
32
  subject {
32
- described_class.new :local_executable => 'the specified value of #local_executable',
33
- :remote_executable => 'the specified value of #remote_executable'
33
+ described_class.new :local_executable => ('the specified value of ' +
34
+ '#local_executable'),
35
+ :remote_executable => ('the specified value of ' +
36
+ '#remote_executable')
34
37
  }
35
38
 
36
39
  its(:local_executable) {
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'cape/util'
2
3
 
3
4
  describe Cape::Util do
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'cape/version'
2
3
 
3
4
  describe 'Cape::VERSION' do
@@ -1,3 +1,4 @@
1
+ require 'spec_helper'
1
2
  require 'cape'
2
3
  require 'cape/dsl'
3
4
 
@@ -1,4 +1,19 @@
1
- RSpec.configure do |c|
2
- c.alias_it_should_behave_like_to :should_behave_like,
3
- 'should behave like'
1
+ # This file was generated by the `rspec --init` command. Conventionally, all
2
+ # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
+ # Require this file using `require "spec_helper"` to ensure that it is only
4
+ # loaded once.
5
+ #
6
+ # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
7
+ RSpec.configure do |config|
8
+ config.treat_symbols_as_metadata_keys_with_true_values = true
9
+ config.run_all_when_everything_filtered = true
10
+ config.filter_run :focus
11
+
12
+ # Run specs in random order to surface order dependencies. If you find an
13
+ # order dependency and want to debug it, you can fix the order by providing
14
+ # the seed, which is printed after each run.
15
+ # --seed 1234
16
+ config.order = 'random'
17
+
18
+ config.alias_it_should_behave_like_to :should_behave_like, 'should behave like'
4
19
  end
metadata CHANGED
@@ -1,95 +1,95 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: cape
3
- version: !ruby/object:Gem::Version
4
- version: 1.6.0
3
+ version: !ruby/object:Gem::Version
4
+ hash: 13
5
5
  prerelease:
6
+ segments:
7
+ - 1
8
+ - 6
9
+ - 1
10
+ version: 1.6.1
6
11
  platform: ruby
7
- authors:
12
+ authors:
8
13
  - Nils Jonsson
9
14
  autorequire:
10
15
  bindir: bin
11
16
  cert_chain: []
12
- date: 2012-11-14 00:00:00.000000000 Z
13
- dependencies:
14
- - !ruby/object:Gem::Dependency
17
+
18
+ date: 2013-02-18 00:00:00 Z
19
+ dependencies:
20
+ - !ruby/object:Gem::Dependency
15
21
  name: aruba
16
- requirement: !ruby/object:Gem::Requirement
22
+ version_requirements: &id001 !ruby/object:Gem::Requirement
17
23
  none: false
18
- requirements:
24
+ requirements:
19
25
  - - ~>
20
- - !ruby/object:Gem::Version
21
- version: '0'
26
+ - !ruby/object:Gem::Version
27
+ hash: 3
28
+ segments:
29
+ - 0
30
+ version: "0"
22
31
  type: :development
32
+ requirement: *id001
23
33
  prerelease: false
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
34
+ - !ruby/object:Gem::Dependency
31
35
  name: capistrano
32
- requirement: !ruby/object:Gem::Requirement
36
+ version_requirements: &id002 !ruby/object:Gem::Requirement
33
37
  none: false
34
- requirements:
38
+ requirements:
35
39
  - - ~>
36
- - !ruby/object:Gem::Version
37
- version: '2'
40
+ - !ruby/object:Gem::Version
41
+ hash: 7
42
+ segments:
43
+ - 2
44
+ version: "2"
38
45
  type: :development
46
+ requirement: *id002
39
47
  prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
- none: false
42
- requirements:
43
- - - ~>
44
- - !ruby/object:Gem::Version
45
- version: '2'
46
- - !ruby/object:Gem::Dependency
48
+ - !ruby/object:Gem::Dependency
47
49
  name: rake
48
- requirement: !ruby/object:Gem::Requirement
50
+ version_requirements: &id003 !ruby/object:Gem::Requirement
49
51
  none: false
50
- requirements:
51
- - - ! '>='
52
- - !ruby/object:Gem::Version
53
- version: '0'
52
+ requirements:
53
+ - - ">="
54
+ - !ruby/object:Gem::Version
55
+ hash: 3
56
+ segments:
57
+ - 0
58
+ version: "0"
54
59
  type: :development
60
+ requirement: *id003
55
61
  prerelease: false
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
62
+ - !ruby/object:Gem::Dependency
63
63
  name: rspec
64
- requirement: !ruby/object:Gem::Requirement
64
+ version_requirements: &id004 !ruby/object:Gem::Requirement
65
65
  none: false
66
- requirements:
66
+ requirements:
67
67
  - - ~>
68
- - !ruby/object:Gem::Version
69
- version: '2'
68
+ - !ruby/object:Gem::Version
69
+ hash: 7
70
+ segments:
71
+ - 2
72
+ version: "2"
70
73
  type: :development
74
+ requirement: *id004
71
75
  prerelease: false
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
-
76
+ description: |-
77
+ Cape dynamically generates Capistrano recipes for Rake tasks.
80
78
  It provides a DSL for reflecting on Rake tasks and mirroring
81
-
82
79
  them as documented Capistrano recipes. You can pass Rake task
83
-
84
- arguments via environment variables.'
85
- email:
80
+ arguments via environment variables.
81
+ email:
86
82
  - cape@nilsjonsson.com
87
83
  executables: []
84
+
88
85
  extensions: []
86
+
89
87
  extra_rdoc_files: []
90
- files:
88
+
89
+ files:
91
90
  - .gemtest
92
91
  - .gitignore
92
+ - .rspec
93
93
  - .travis.yml
94
94
  - .yardopts
95
95
  - Gemfile
@@ -103,15 +103,16 @@ files:
103
103
  - features/dsl/each_rake_task/with_defined_task_argument.feature
104
104
  - features/dsl/each_rake_task/with_undefined_argument.feature
105
105
  - features/dsl/each_rake_task/without_arguments.feature
106
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_namespace_argument.feature
107
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_task_argument.feature
108
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_undefined_argument.feature
109
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/without_arguments.feature
106
+ - features/dsl/mirror_rake_tasks/inside_capistrano_namespace.feature
110
107
  - features/dsl/mirror_rake_tasks/with_defined_namespace_argument.feature
108
+ - features/dsl/mirror_rake_tasks/with_defined_task_and_valid_options.feature
111
109
  - features/dsl/mirror_rake_tasks/with_defined_task_and_valid_options_arguments_and_environment_variables.feature
112
110
  - features/dsl/mirror_rake_tasks/with_defined_task_argument.feature
111
+ - features/dsl/mirror_rake_tasks/with_defined_task_argument_and_environment_variables.feature
112
+ - features/dsl/mirror_rake_tasks/with_environment_variables.feature
113
113
  - features/dsl/mirror_rake_tasks/with_undefined_argument.feature
114
114
  - features/dsl/mirror_rake_tasks/with_valid_options_argument.feature
115
+ - features/dsl/mirror_rake_tasks/with_valid_options_arguments_and_environment_variables.feature
115
116
  - features/dsl/mirror_rake_tasks/without_arguments.feature
116
117
  - features/dsl/rake_executable.feature
117
118
  - features/step_definitions.rb
@@ -122,6 +123,7 @@ files:
122
123
  - lib/cape/core_ext/hash.rb
123
124
  - lib/cape/core_ext/symbol.rb
124
125
  - lib/cape/dsl.rb
126
+ - lib/cape/hash_list.rb
125
127
  - lib/cape/rake.rb
126
128
  - lib/cape/util.rb
127
129
  - lib/cape/version.rb
@@ -129,53 +131,62 @@ files:
129
131
  - spec/cape/core_ext/hash_spec.rb
130
132
  - spec/cape/core_ext/symbol_spec.rb
131
133
  - spec/cape/dsl_spec.rb
134
+ - spec/cape/hash_list_spec.rb
132
135
  - spec/cape/rake_spec.rb
133
136
  - spec/cape/util_spec.rb
134
137
  - spec/cape/version_spec.rb
135
138
  - spec/cape_spec.rb
136
139
  - spec/spec_helper.rb
137
140
  homepage: http://njonsson.github.com/cape
138
- licenses:
141
+ licenses:
139
142
  - MIT
140
143
  post_install_message:
141
144
  rdoc_options: []
142
- require_paths:
145
+
146
+ require_paths:
143
147
  - lib
144
- required_ruby_version: !ruby/object:Gem::Requirement
148
+ required_ruby_version: !ruby/object:Gem::Requirement
145
149
  none: false
146
- requirements:
147
- - - ! '>='
148
- - !ruby/object:Gem::Version
150
+ requirements:
151
+ - - ">="
152
+ - !ruby/object:Gem::Version
153
+ hash: 57
154
+ segments:
155
+ - 1
156
+ - 8
157
+ - 7
149
158
  version: 1.8.7
150
- required_rubygems_version: !ruby/object:Gem::Requirement
159
+ required_rubygems_version: !ruby/object:Gem::Requirement
151
160
  none: false
152
- requirements:
153
- - - ! '>='
154
- - !ruby/object:Gem::Version
155
- version: '0'
156
- segments:
161
+ requirements:
162
+ - - ">="
163
+ - !ruby/object:Gem::Version
164
+ hash: 3
165
+ segments:
157
166
  - 0
158
- hash: -2402539198101569570
167
+ version: "0"
159
168
  requirements: []
169
+
160
170
  rubyforge_project: cape
161
171
  rubygems_version: 1.8.24
162
172
  signing_key:
163
173
  specification_version: 3
164
174
  summary: Dynamically generates Capistrano recipes for Rake tasks
165
- test_files:
175
+ test_files:
166
176
  - features/dsl/each_rake_task/with_defined_namespace_argument.feature
167
177
  - features/dsl/each_rake_task/with_defined_task_argument.feature
168
178
  - features/dsl/each_rake_task/with_undefined_argument.feature
169
179
  - features/dsl/each_rake_task/without_arguments.feature
170
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_namespace_argument.feature
171
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_defined_task_argument.feature
172
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/with_undefined_argument.feature
173
- - features/dsl/mirror_rake_tasks/inside_capistrano_namespace/without_arguments.feature
180
+ - features/dsl/mirror_rake_tasks/inside_capistrano_namespace.feature
174
181
  - features/dsl/mirror_rake_tasks/with_defined_namespace_argument.feature
182
+ - features/dsl/mirror_rake_tasks/with_defined_task_and_valid_options.feature
175
183
  - features/dsl/mirror_rake_tasks/with_defined_task_and_valid_options_arguments_and_environment_variables.feature
176
184
  - features/dsl/mirror_rake_tasks/with_defined_task_argument.feature
185
+ - features/dsl/mirror_rake_tasks/with_defined_task_argument_and_environment_variables.feature
186
+ - features/dsl/mirror_rake_tasks/with_environment_variables.feature
177
187
  - features/dsl/mirror_rake_tasks/with_undefined_argument.feature
178
188
  - features/dsl/mirror_rake_tasks/with_valid_options_argument.feature
189
+ - features/dsl/mirror_rake_tasks/with_valid_options_arguments_and_environment_variables.feature
179
190
  - features/dsl/mirror_rake_tasks/without_arguments.feature
180
191
  - features/dsl/rake_executable.feature
181
192
  - features/step_definitions.rb
@@ -184,6 +195,7 @@ test_files:
184
195
  - spec/cape/core_ext/hash_spec.rb
185
196
  - spec/cape/core_ext/symbol_spec.rb
186
197
  - spec/cape/dsl_spec.rb
198
+ - spec/cape/hash_list_spec.rb
187
199
  - spec/cape/rake_spec.rb
188
200
  - spec/cape/util_spec.rb
189
201
  - spec/cape/version_spec.rb