cape 1.6.0 → 1.6.1

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