anvil-core 0.0.1.alpha.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +20 -0
  3. data/.travis.yml +4 -0
  4. data/Gemfile +8 -0
  5. data/LICENSE.txt +22 -0
  6. data/README.md +30 -0
  7. data/Rakefile +6 -0
  8. data/anvil-core.gemspec +35 -0
  9. data/bin/anvil +8 -0
  10. data/lib/anvil.rb +13 -0
  11. data/lib/anvil/assure.rb +9 -0
  12. data/lib/anvil/assures/directory_assure.rb +11 -0
  13. data/lib/anvil/assures/file_assure.rb +11 -0
  14. data/lib/anvil/cli.rb +59 -0
  15. data/lib/anvil/config.rb +15 -0
  16. data/lib/anvil/config/class_methods.rb +41 -0
  17. data/lib/anvil/parser.rb +34 -0
  18. data/lib/anvil/rubygems.rb +19 -0
  19. data/lib/anvil/task.rb +47 -0
  20. data/lib/anvil/task/class_methods.rb +39 -0
  21. data/lib/anvil/task/naming.rb +28 -0
  22. data/lib/anvil/task/options.rb +41 -0
  23. data/lib/anvil/task/repositories.rb +13 -0
  24. data/lib/anvil/task_manager.rb +47 -0
  25. data/lib/anvil/version.rb +3 -0
  26. data/lib/gem_ext/mixlib.rb +22 -0
  27. data/lib/tasks/gem_build_task.rb +51 -0
  28. data/lib/tasks/help_task.rb +20 -0
  29. data/lib/tasks/projects/add_task.rb +31 -0
  30. data/lib/tasks/projects/list_task.rb +21 -0
  31. data/spec/lib/assure_spec.rb +15 -0
  32. data/spec/lib/assures/directory_assure_spec.rb +19 -0
  33. data/spec/lib/assures/file_assure_spec.rb +13 -0
  34. data/spec/lib/cli_spec.rb +54 -0
  35. data/spec/lib/config_spec.rb +24 -0
  36. data/spec/lib/task/naming_spec.rb +26 -0
  37. data/spec/lib/task/options_spec.rb +33 -0
  38. data/spec/lib/task_manager_spec.rb +45 -0
  39. data/spec/lib/task_spec.rb +74 -0
  40. data/spec/lib/tasks/gem_build_task_spec.rb +89 -0
  41. data/spec/lib/tasks/projects/add_task_spec.rb +26 -0
  42. data/spec/lib/tasks/projects/list_task_spec.rb +20 -0
  43. data/spec/spec_helper.rb +26 -0
  44. data/spec/support/dot_anvil/config.rb +2 -0
  45. data/spec/support/fixtures/dummy_after_task.rb +3 -0
  46. data/spec/support/fixtures/dummy_assure.rb +5 -0
  47. data/spec/support/fixtures/dummy_before_task.rb +3 -0
  48. data/spec/support/fixtures/dummy_failed_assure.rb +5 -0
  49. data/spec/support/fixtures/dummy_task.rb +15 -0
  50. data/spec/support/fixtures/foo/dummy_task.rb +5 -0
  51. data/spec/support/shared/config_context.rb +10 -0
  52. metadata +245 -0
@@ -0,0 +1,33 @@
1
+ require 'spec_helper'
2
+ require 'anvil/task/options'
3
+
4
+ describe Anvil::Task::Options do
5
+ let(:klass) { DummyTask }
6
+
7
+ describe '.define_parser' do
8
+ it 'returns an instance of Anvil::Parser' do
9
+ expect(klass.define_parser).to be_kind_of(Anvil::Parser)
10
+ end
11
+ end
12
+
13
+ describe '.parse_options!' do
14
+ let(:klass) do
15
+ Class.new(DummyTask) do
16
+ parser do
17
+ on('-i', '--install') do |i|
18
+ options[:install] = i
19
+ end
20
+ end
21
+ end
22
+ end
23
+
24
+ let(:arguments) { %w{arg1 arg2 --install} }
25
+
26
+ let(:expected) do
27
+ ['arg1', 'arg2', { install: true }]
28
+ end
29
+ it 'returns the correct arguments and options' do
30
+ expect(klass.parse_options!(arguments)).to be_eql(expected)
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,45 @@
1
+ require 'spec_helper'
2
+ require 'anvil/task_manager'
3
+
4
+ describe Anvil::TaskManager do
5
+ describe '.all_tasks' do
6
+ it 'returns the Anvil::Task descendants' do
7
+ expect(::Anvil::Task).to receive(:descendants)
8
+ described_class.all_tasks
9
+ end
10
+ end
11
+
12
+ describe '.files_from_current_project' do
13
+ let(:gemfile_path) { File.dirname(Bundler::SharedHelpers.default_gemfile) }
14
+ let(:project_task_path) { gemfile_path + '/lib/anvil/' }
15
+
16
+ it 'returns the task files in the path' do
17
+ expect(described_class)
18
+ .to receive(:files_from_path).with(project_task_path)
19
+
20
+ described_class.files_from_current_project
21
+ end
22
+ end
23
+
24
+ describe '.files_from_gems' do
25
+ it 'asks Gem to return the anvil tasks' do
26
+ expect(Gem).to receive(:find_latest_files).with('anvil/tasks/**/*_task.rb')
27
+ described_class.files_from_gems
28
+ end
29
+ end
30
+
31
+ describe '.load_tasks' do
32
+ let(:all_files) { %w[file1 file2] }
33
+
34
+ before do
35
+ described_class.stub(:all_files).and_return(all_files)
36
+ end
37
+
38
+ it 'loads the files' do
39
+ expect(described_class).to receive(:load).with(all_files[0])
40
+ expect(described_class).to receive(:load).with(all_files[1])
41
+
42
+ described_class.load_tasks
43
+ end
44
+ end
45
+ end
@@ -0,0 +1,74 @@
1
+ require 'spec_helper'
2
+
3
+ describe Anvil::Task do
4
+ let(:dummy_task) { DummyTask }
5
+ let(:after_task) { DummyAfterTask }
6
+ let(:before_task) { DummyBeforeTask }
7
+ let(:assure) { DummyAssure }
8
+ let(:arguments) { { argument: 'value' } }
9
+
10
+ describe '.after' do
11
+ before { dummy_task.class_eval { after :dummy_after, argument: 'value' } }
12
+
13
+ it 'adds DummyBeforeTask to the after callbacks' do
14
+ dummy_task.afters.should include([after_task, arguments])
15
+ end
16
+ end
17
+
18
+ describe '.assure' do
19
+ before { dummy_task.class_eval { assure :dummy } }
20
+
21
+ it 'adds DummyAssure to the assures' do
22
+ dummy_task.assures.should include(assure)
23
+ end
24
+ end
25
+
26
+ describe '.before' do
27
+ before do
28
+ dummy_task.class_eval { before :dummy_before, argument: 'value' }
29
+ end
30
+
31
+ it 'adds DummyBeforeTask to the before callbacks' do
32
+ dummy_task.befores.should include([before_task, arguments])
33
+ end
34
+ end
35
+
36
+ describe '#run' do
37
+ before do
38
+ dummy_task.class_eval do
39
+ before :dummy_before
40
+ after :dummy_after
41
+ end
42
+ end
43
+ subject { dummy_task.new }
44
+
45
+ context 'with a passing assure' do
46
+ before { dummy_task.stub(:assures).and_return([DummyAssure]) }
47
+
48
+ it 'runs the callbacks and the task' do
49
+ subject.should_receive(:run_before_callbacks)
50
+ subject.should_receive(:run_after_callbacks)
51
+ subject.should_receive(:run_task)
52
+ subject.run
53
+ end
54
+ end
55
+
56
+ context 'with a non passing assure' do
57
+ before { dummy_task.stub(:assures).and_return([DummyFailedAssure]) }
58
+
59
+ it 'does not run the callbacks nor the task' do
60
+ subject.should_not_receive(:run_before_callbacks)
61
+ subject.should_not_receive(:run_after_callbacks)
62
+ subject.should_not_receive(:run_task)
63
+ subject.run
64
+ end
65
+ end
66
+ end
67
+
68
+ describe '.run' do
69
+ it 'calls run in a instance of the task' do
70
+ dummy_task.any_instance.should_receive(:run)
71
+ dummy_task.run(1, 2)
72
+ end
73
+ end
74
+ end
@@ -0,0 +1,89 @@
1
+ require 'spec_helper'
2
+ require 'tasks/gem_build_task'
3
+
4
+ describe GemBuildTask do
5
+ let(:output) do
6
+ <<-END
7
+ Successfully built RubyGem
8
+ Name: anvil
9
+ Version: 2.0.0
10
+ File: anvil-2.0.0.gem
11
+ END
12
+ end
13
+ let(:gemspec_file) { 'anvil.gemspec' }
14
+ let(:options) { {} }
15
+
16
+ subject { GemBuildTask.new(gemspec_file, options) }
17
+
18
+ describe '#task' do
19
+ before do
20
+ expect(subject).to receive(:build_gem).and_return('anvil-2.0.0.gem')
21
+ end
22
+
23
+ context 'without install or no-install option' do
24
+ it 'calls #install_gem' do
25
+ expect(Anvil::Rubygems).to receive(:install)
26
+
27
+ expect(subject.task).to be_eql('anvil-2.0.0.gem')
28
+ end
29
+ end
30
+
31
+ context 'with install: false option' do
32
+ let(:options) { { install: false } }
33
+
34
+ it 'doenst call install_gem ' do
35
+ expect(Anvil::Rubygems).to_not receive(:install_gem)
36
+
37
+ subject.task
38
+ end
39
+ end
40
+ end
41
+
42
+ describe '#extract_gem_file' do
43
+ it 'extracts the gem file' do
44
+ expect(subject.extract_gem_file(output)).to be_eql('anvil-2.0.0.gem')
45
+ end
46
+ end
47
+
48
+ describe '#build_gem' do
49
+ let(:gem_file) { 'alfred.gem' }
50
+
51
+ before do
52
+ Anvil::Rubygems.stub(:build) do
53
+ FileUtils.touch('anvil-2.0.0.gem')
54
+
55
+ output
56
+ end
57
+ end
58
+
59
+ it 'builds the gem' do
60
+ subject.build_gem(gem_file)
61
+
62
+ expect(File.exists?('pkg/anvil-2.0.0.gem')).to be_true
63
+ end
64
+
65
+ it 'returns the gem file path' do
66
+ expect(subject.build_gem(gem_file)).to be_eql('/pkg/anvil-2.0.0.gem')
67
+ end
68
+ end
69
+
70
+ describe '.parse_options!' do
71
+ context 'with install option' do
72
+ let(:arguments) { ['anvil.gem', '--install'] }
73
+
74
+ it 'returns the correct arguments' do
75
+ expect(GemBuildTask.parse_options!(arguments))
76
+ .to be_eql(['anvil.gem', { install: true }])
77
+ end
78
+ end
79
+
80
+ context 'with --no-install option' do
81
+ let(:arguments) { ['anvil.gem', '--no-install'] }
82
+
83
+ it 'returns the correct arguments' do
84
+ expect(GemBuildTask.parse_options!(arguments))
85
+ .to be_eql(['anvil.gem', { install: false }])
86
+ end
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,26 @@
1
+ require 'spec_helper'
2
+ require 'tasks/projects/add_task'
3
+ require 'fileutils'
4
+
5
+ describe Projects::AddTask do
6
+ let(:repo_url) { 'git@github.com:account/repo' }
7
+
8
+ subject { described_class.new('repo', 'account/repo') }
9
+
10
+ describe '#task' do
11
+ it 'clones the repo with proper arguments' do
12
+ expect(subject).to receive(:clone_repo)
13
+ .with(repo_url, 'repo')
14
+
15
+ subject.task
16
+ end
17
+ end
18
+
19
+ describe '#clone_repo', config: true do
20
+ it 'clones the repo with Git' do
21
+ Git.should_receive(:clone)
22
+
23
+ subject.clone_repo(repo_url, 'repo')
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+ require 'tasks/projects/list_task'
3
+ require 'fileutils'
4
+
5
+ describe Projects::ListTask do
6
+ let(:projects) { %w[a b c] }
7
+
8
+ describe '#task', config: true do
9
+ let(:base) { Anvil::Config.base_projects_path }
10
+
11
+ before do
12
+ projects.each { |p| FileUtils.mkdir_p(base + "/#{p}") }
13
+ end
14
+
15
+ it 'list the projects in the projects path' do
16
+ expect(subject).to receive(:list_projects).with(projects)
17
+ subject.task
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,26 @@
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
+
8
+ require 'byebug'
9
+ require 'fakefs/spec_helpers'
10
+ require 'anvil'
11
+
12
+ Dir["#{File.dirname(__FILE__)}/support/fixtures/**/*.rb"].each { |f| require f }
13
+ Dir["#{File.dirname(__FILE__)}/support/shared/**/*.rb"].each { |f| require f }
14
+
15
+ RSpec.configure do |config|
16
+ config.treat_symbols_as_metadata_keys_with_true_values = true
17
+ config.run_all_when_everything_filtered = true
18
+ config.filter_run :focus
19
+
20
+ # Run specs in random order to surface order dependencies. If you find an
21
+ # order dependency and want to debug it, you can fix the order by providing
22
+ # the seed, which is printed after each run.
23
+ # --seed 1234
24
+ config.order = 'random'
25
+ config.include FakeFS::SpecHelpers
26
+ end
@@ -0,0 +1,2 @@
1
+ github.user 'dummy_user'
2
+ github.token 'dummy_token'
@@ -0,0 +1,3 @@
1
+ class DummyAfterTask < Anvil::Task
2
+ def task; end
3
+ end
@@ -0,0 +1,5 @@
1
+ class DummyAssure < Anvil::Assure
2
+ def assured?
3
+ true
4
+ end
5
+ end
@@ -0,0 +1,3 @@
1
+ class DummyBeforeTask < Anvil::Task
2
+ def task; end
3
+ end
@@ -0,0 +1,5 @@
1
+ class DummyFailedAssure < Anvil::Assure
2
+ def assured?
3
+ false
4
+ end
5
+ end
@@ -0,0 +1,15 @@
1
+ class DummyTask < Anvil::Task
2
+ parser do
3
+ on('-a', '--argument [VALUE]') do |val|
4
+ options[:argument] = val
5
+ end
6
+ end
7
+
8
+ def initialize(*args)
9
+ @options = args.extract_options!
10
+ @arg1 = args[0]
11
+ @arg2 = args[1]
12
+ end
13
+
14
+ def task; end
15
+ end
@@ -0,0 +1,5 @@
1
+ module Foo
2
+ class DummyTask < Anvil::Task
3
+ def task; end
4
+ end
5
+ end
@@ -0,0 +1,10 @@
1
+ shared_context 'init anvil config', config: true do
2
+ let(:test_config_path) do
3
+ File.expand_path('./spec/support/dot_anvil', File.dirname(__FILE__))
4
+ end
5
+
6
+ before do
7
+ Anvil::Config.stub(:base_path).and_return(test_config_path)
8
+ Anvil::Config.init
9
+ end
10
+ end
metadata ADDED
@@ -0,0 +1,245 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: anvil-core
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.alpha.1
5
+ platform: ruby
6
+ authors:
7
+ - Fran Casas
8
+ - Jon de Andres
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2014-02-27 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: git
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '1.2'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '1.2'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activesupport
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '4.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '4.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: mixlib-config
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '2.1'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '2.1'
56
+ - !ruby/object:Gem::Dependency
57
+ name: cocaine
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '0.5'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '0.5'
70
+ - !ruby/object:Gem::Dependency
71
+ name: bundler
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '1.5'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '1.5'
84
+ - !ruby/object:Gem::Dependency
85
+ name: rspec
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '2.14'
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '2.14'
98
+ - !ruby/object:Gem::Dependency
99
+ name: byebug
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - "~>"
103
+ - !ruby/object:Gem::Version
104
+ version: '2.6'
105
+ type: :development
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - "~>"
110
+ - !ruby/object:Gem::Version
111
+ version: '2.6'
112
+ - !ruby/object:Gem::Dependency
113
+ name: fakefs
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - "~>"
117
+ - !ruby/object:Gem::Version
118
+ version: '0.5'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - "~>"
124
+ - !ruby/object:Gem::Version
125
+ version: '0.5'
126
+ - !ruby/object:Gem::Dependency
127
+ name: rubocop
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - "~>"
131
+ - !ruby/object:Gem::Version
132
+ version: '0.18'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - "~>"
138
+ - !ruby/object:Gem::Version
139
+ version: '0.18'
140
+ description: Anvil is a tool for building tools.
141
+ email:
142
+ - nflamel@otrobloggeek.com
143
+ - jondeandres@gmail.com
144
+ executables:
145
+ - anvil
146
+ extensions: []
147
+ extra_rdoc_files: []
148
+ files:
149
+ - ".gitignore"
150
+ - ".travis.yml"
151
+ - Gemfile
152
+ - LICENSE.txt
153
+ - README.md
154
+ - Rakefile
155
+ - anvil-core.gemspec
156
+ - bin/anvil
157
+ - lib/anvil.rb
158
+ - lib/anvil/assure.rb
159
+ - lib/anvil/assures/directory_assure.rb
160
+ - lib/anvil/assures/file_assure.rb
161
+ - lib/anvil/cli.rb
162
+ - lib/anvil/config.rb
163
+ - lib/anvil/config/class_methods.rb
164
+ - lib/anvil/parser.rb
165
+ - lib/anvil/rubygems.rb
166
+ - lib/anvil/task.rb
167
+ - lib/anvil/task/class_methods.rb
168
+ - lib/anvil/task/naming.rb
169
+ - lib/anvil/task/options.rb
170
+ - lib/anvil/task/repositories.rb
171
+ - lib/anvil/task_manager.rb
172
+ - lib/anvil/version.rb
173
+ - lib/gem_ext/mixlib.rb
174
+ - lib/tasks/gem_build_task.rb
175
+ - lib/tasks/help_task.rb
176
+ - lib/tasks/projects/add_task.rb
177
+ - lib/tasks/projects/list_task.rb
178
+ - spec/lib/assure_spec.rb
179
+ - spec/lib/assures/directory_assure_spec.rb
180
+ - spec/lib/assures/file_assure_spec.rb
181
+ - spec/lib/cli_spec.rb
182
+ - spec/lib/config_spec.rb
183
+ - spec/lib/task/naming_spec.rb
184
+ - spec/lib/task/options_spec.rb
185
+ - spec/lib/task_manager_spec.rb
186
+ - spec/lib/task_spec.rb
187
+ - spec/lib/tasks/gem_build_task_spec.rb
188
+ - spec/lib/tasks/projects/add_task_spec.rb
189
+ - spec/lib/tasks/projects/list_task_spec.rb
190
+ - spec/spec_helper.rb
191
+ - spec/support/dot_anvil/config.rb
192
+ - spec/support/fixtures/dummy_after_task.rb
193
+ - spec/support/fixtures/dummy_assure.rb
194
+ - spec/support/fixtures/dummy_before_task.rb
195
+ - spec/support/fixtures/dummy_failed_assure.rb
196
+ - spec/support/fixtures/dummy_task.rb
197
+ - spec/support/fixtures/foo/dummy_task.rb
198
+ - spec/support/shared/config_context.rb
199
+ homepage: http://github.com/anvil-src/anvil-core
200
+ licenses:
201
+ - MIT
202
+ metadata: {}
203
+ post_install_message:
204
+ rdoc_options: []
205
+ require_paths:
206
+ - lib
207
+ required_ruby_version: !ruby/object:Gem::Requirement
208
+ requirements:
209
+ - - ">="
210
+ - !ruby/object:Gem::Version
211
+ version: '0'
212
+ required_rubygems_version: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - ">"
215
+ - !ruby/object:Gem::Version
216
+ version: 1.3.1
217
+ requirements: []
218
+ rubyforge_project:
219
+ rubygems_version: 2.2.0
220
+ signing_key:
221
+ specification_version: 4
222
+ summary: Anvil is a tool for building tools. A tool that a real craftsmen uses to
223
+ build its tools.
224
+ test_files:
225
+ - spec/lib/assure_spec.rb
226
+ - spec/lib/assures/directory_assure_spec.rb
227
+ - spec/lib/assures/file_assure_spec.rb
228
+ - spec/lib/cli_spec.rb
229
+ - spec/lib/config_spec.rb
230
+ - spec/lib/task/naming_spec.rb
231
+ - spec/lib/task/options_spec.rb
232
+ - spec/lib/task_manager_spec.rb
233
+ - spec/lib/task_spec.rb
234
+ - spec/lib/tasks/gem_build_task_spec.rb
235
+ - spec/lib/tasks/projects/add_task_spec.rb
236
+ - spec/lib/tasks/projects/list_task_spec.rb
237
+ - spec/spec_helper.rb
238
+ - spec/support/dot_anvil/config.rb
239
+ - spec/support/fixtures/dummy_after_task.rb
240
+ - spec/support/fixtures/dummy_assure.rb
241
+ - spec/support/fixtures/dummy_before_task.rb
242
+ - spec/support/fixtures/dummy_failed_assure.rb
243
+ - spec/support/fixtures/dummy_task.rb
244
+ - spec/support/fixtures/foo/dummy_task.rb
245
+ - spec/support/shared/config_context.rb