rake-pipeline-fork 0.8.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.
Files changed (75) hide show
  1. checksums.yaml +15 -0
  2. data/.gitignore +18 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +12 -0
  5. data/.yardopts +2 -0
  6. data/GETTING_STARTED.md +268 -0
  7. data/Gemfile +14 -0
  8. data/LICENSE +20 -0
  9. data/README.markdown +11 -0
  10. data/README.yard +178 -0
  11. data/Rakefile +21 -0
  12. data/bin/rakep +4 -0
  13. data/examples/copying_files.md +12 -0
  14. data/examples/minifying_files.md +37 -0
  15. data/examples/modifying_pipelines.md +67 -0
  16. data/examples/multiple_pipelines.md +77 -0
  17. data/lib/generators/rake/pipeline/install/install_generator.rb +70 -0
  18. data/lib/rake-pipeline.rb +462 -0
  19. data/lib/rake-pipeline/cli.rb +56 -0
  20. data/lib/rake-pipeline/dsl.rb +9 -0
  21. data/lib/rake-pipeline/dsl/pipeline_dsl.rb +246 -0
  22. data/lib/rake-pipeline/dsl/project_dsl.rb +108 -0
  23. data/lib/rake-pipeline/dynamic_file_task.rb +194 -0
  24. data/lib/rake-pipeline/error.rb +17 -0
  25. data/lib/rake-pipeline/file_wrapper.rb +182 -0
  26. data/lib/rake-pipeline/filter.rb +249 -0
  27. data/lib/rake-pipeline/filters.rb +4 -0
  28. data/lib/rake-pipeline/filters/concat_filter.rb +63 -0
  29. data/lib/rake-pipeline/filters/gsub_filter.rb +56 -0
  30. data/lib/rake-pipeline/filters/ordering_concat_filter.rb +38 -0
  31. data/lib/rake-pipeline/filters/pipeline_finalizing_filter.rb +21 -0
  32. data/lib/rake-pipeline/graph.rb +178 -0
  33. data/lib/rake-pipeline/manifest.rb +86 -0
  34. data/lib/rake-pipeline/manifest_entry.rb +34 -0
  35. data/lib/rake-pipeline/matcher.rb +141 -0
  36. data/lib/rake-pipeline/middleware.rb +72 -0
  37. data/lib/rake-pipeline/precompile.rake +8 -0
  38. data/lib/rake-pipeline/project.rb +335 -0
  39. data/lib/rake-pipeline/rails_plugin.rb +10 -0
  40. data/lib/rake-pipeline/railtie.rb +34 -0
  41. data/lib/rake-pipeline/reject_matcher.rb +29 -0
  42. data/lib/rake-pipeline/server.rb +15 -0
  43. data/lib/rake-pipeline/sorted_pipeline.rb +19 -0
  44. data/lib/rake-pipeline/version.rb +6 -0
  45. data/rails/init.rb +2 -0
  46. data/rake-pipeline.gemspec +24 -0
  47. data/spec/cli_spec.rb +71 -0
  48. data/spec/concat_filter_spec.rb +37 -0
  49. data/spec/dsl/pipeline_dsl_spec.rb +165 -0
  50. data/spec/dsl/project_dsl_spec.rb +41 -0
  51. data/spec/dynamic_file_task_spec.rb +119 -0
  52. data/spec/encoding_spec.rb +106 -0
  53. data/spec/file_wrapper_spec.rb +132 -0
  54. data/spec/filter_spec.rb +332 -0
  55. data/spec/graph_spec.rb +56 -0
  56. data/spec/gsub_filter_spec.rb +87 -0
  57. data/spec/manifest_entry_spec.rb +46 -0
  58. data/spec/manifest_spec.rb +67 -0
  59. data/spec/matcher_spec.rb +141 -0
  60. data/spec/middleware_spec.rb +199 -0
  61. data/spec/ordering_concat_filter_spec.rb +42 -0
  62. data/spec/pipeline_spec.rb +232 -0
  63. data/spec/project_spec.rb +295 -0
  64. data/spec/rake_acceptance_spec.rb +738 -0
  65. data/spec/rake_tasks_spec.rb +21 -0
  66. data/spec/reject_matcher_spec.rb +31 -0
  67. data/spec/sorted_pipeline_spec.rb +27 -0
  68. data/spec/spec_helper.rb +38 -0
  69. data/spec/support/spec_helpers/file_utils.rb +35 -0
  70. data/spec/support/spec_helpers/filters.rb +37 -0
  71. data/spec/support/spec_helpers/input_helpers.rb +23 -0
  72. data/spec/support/spec_helpers/memory_file_wrapper.rb +31 -0
  73. data/spec/support/spec_helpers/memory_manifest.rb +19 -0
  74. data/tools/perfs +101 -0
  75. metadata +215 -0
@@ -0,0 +1,21 @@
1
+ describe "Rake tasks" do
2
+ before do
3
+ @rake = Rake::Application.new
4
+ Rake.application = @rake
5
+ end
6
+
7
+ describe "assets:precompile" do
8
+ before do
9
+ load File.expand_path("../../lib/rake-pipeline/precompile.rake", __FILE__)
10
+ Rails = double("Rails")
11
+ Rails.stub_chain(:application, :config, :rake_pipeline_assetfile).and_return("Assetfile")
12
+ end
13
+
14
+ it "creates and invokes a new Project" do
15
+ project = double("Project")
16
+ project.should_receive(:invoke)
17
+ Rake::Pipeline::Project.should_receive(:new).with("Assetfile").and_return(project)
18
+ @rake["assets:precompile"].invoke
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,31 @@
1
+ describe "RejectMatcher" do
2
+ MemoryFileWrapper ||= Rake::Pipeline::SpecHelpers::MemoryFileWrapper
3
+
4
+ let(:input_files) {
5
+ [
6
+ MemoryFileWrapper.new("/path/to/input", "ember.js", "UTF-8"),
7
+ MemoryFileWrapper.new("/path/to/input", "jquery.js", "UTF-8")
8
+ ]
9
+ }
10
+
11
+ it "accepts a string to match against" do
12
+ pipeline = Rake::Pipeline::RejectMatcher.new
13
+ pipeline.glob = /jquery/
14
+ pipeline.output_root = "/path/to/output"
15
+ pipeline.input_files = input_files
16
+
17
+ pipeline.output_files.should == [MemoryFileWrapper.new("/path/to/input", "ember.js", "UTF-8")]
18
+ end
19
+
20
+ it "accepts a block to use" do
21
+ pipeline = Rake::Pipeline::RejectMatcher.new
22
+ pipeline.block = proc { |file|
23
+ file.path =~ /ember/
24
+ }
25
+
26
+ pipeline.output_root = "/path/to/output"
27
+ pipeline.input_files = input_files
28
+
29
+ pipeline.output_files.should == [MemoryFileWrapper.new("/path/to/input", "jquery.js", "UTF-8")]
30
+ end
31
+ end
@@ -0,0 +1,27 @@
1
+ describe "Rake::Pipeline" do
2
+ include Rake::Pipeline::SpecHelpers::InputHelpers
3
+
4
+ let(:pipeline) { Rake::Pipeline::SortedPipeline.new }
5
+
6
+ it "accepts a comparator" do
7
+ pipeline.comparator = :foo
8
+ pipeline.comparator.should == :foo
9
+ end
10
+
11
+ it "accepts a pipeline for mimicing the filter api" do
12
+ container = Rake::Pipeline.new
13
+ pipeline.pipeline = container
14
+ pipeline.pipeline.should == container
15
+ end
16
+
17
+ it "uses sorted input files for #output_files" do
18
+ # Reverse sort
19
+ pipeline.comparator = proc { |f1, f2|
20
+ f2 <=> f1
21
+ }
22
+
23
+ pipeline.input_files = [input_file("jquery.js"), input_file("jquery_ui.js")]
24
+ pipeline.output_files.first.path.should == 'jquery_ui.js'
25
+ pipeline.output_files.last.path.should == 'jquery.js'
26
+ end
27
+ end
@@ -0,0 +1,38 @@
1
+ unless ENV["TRAVIS"]
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_group "lib", "lib"
5
+ add_group "spec", "spec"
6
+ end
7
+ end
8
+
9
+ require 'pry'
10
+
11
+ require "rake-pipeline"
12
+ require "rake-pipeline/filters"
13
+
14
+ require "support/spec_helpers/file_utils"
15
+ require "support/spec_helpers/filters"
16
+ require "support/spec_helpers/input_helpers"
17
+ require "support/spec_helpers/memory_file_wrapper"
18
+ require "support/spec_helpers/memory_manifest"
19
+
20
+ RSpec.configure do |config|
21
+ original = Dir.pwd
22
+
23
+ config.include Rake::Pipeline::SpecHelpers::FileUtils
24
+
25
+ def tmp
26
+ File.expand_path("../tmp", __FILE__)
27
+ end
28
+
29
+ config.before do
30
+ rm_rf(tmp)
31
+ mkdir_p(tmp)
32
+ Dir.chdir(tmp)
33
+ end
34
+
35
+ config.after do
36
+ Dir.chdir(original)
37
+ end
38
+ end
@@ -0,0 +1,35 @@
1
+ class Rake::Pipeline
2
+ module SpecHelpers
3
+
4
+ # TODO: OS agnostic modules
5
+ module FileUtils
6
+ def mkdir_p(dir)
7
+ system "mkdir", "-p", dir
8
+ end
9
+
10
+ def touch(file)
11
+ system "touch", file
12
+ end
13
+
14
+ def rm_rf(dir)
15
+ system "rm", "-rf", dir
16
+ end
17
+
18
+ def touch_p(file)
19
+ dir = File.dirname(file)
20
+ mkdir_p dir
21
+ touch file
22
+ end
23
+
24
+ def age_existing_files
25
+ old_time = Time.now - 10
26
+ Dir[File.join(tmp, "**/*.js")].each do |file|
27
+ File.utime(old_time, old_time, file)
28
+ end
29
+ end
30
+ end
31
+
32
+ end
33
+ end
34
+
35
+
@@ -0,0 +1,37 @@
1
+ class Rake::Pipeline
2
+ module SpecHelpers
3
+
4
+ module Filters
5
+ ConcatFilter = Rake::Pipeline::ConcatFilter
6
+
7
+ class StripAssertsFilter < Rake::Pipeline::Filter
8
+ def generate_output(inputs, output)
9
+ inputs.each do |input|
10
+ output.write input.read.gsub(%r{^\s*assert\(.*\)\s*;?\s*$}m, '')
11
+ end
12
+ end
13
+ end
14
+
15
+ class DynamicImportFilter < Rake::Pipeline::Filter
16
+ def additional_dependencies(input)
17
+ includes(input)
18
+ end
19
+
20
+ def includes(input)
21
+ input.read.scan(/^@import\(\"(.*)\"\)$/).map(&:first).map do |inc|
22
+ File.join(input.root, "#{inc}.import")
23
+ end.select { |f| File.exists? f }
24
+ end
25
+
26
+ def generate_output(inputs, output)
27
+ inputs.each do |input|
28
+ output.write input.read
29
+ includes(input).each do |inc|
30
+ output.write File.read(inc)
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,23 @@
1
+ class Rake::Pipeline
2
+ module SpecHelpers
3
+ module InputHelpers
4
+ def input_file(path, root=File.join(tmp, "app/assets"))
5
+ Rake::Pipeline::FileWrapper.new root, path
6
+ end
7
+
8
+ def output_file(path, root=File.join(tmp, "public"))
9
+ input_file(path, root)
10
+ end
11
+
12
+ def create_files(files)
13
+ Array(files).each do |file|
14
+ mkdir_p File.dirname(file.fullpath)
15
+
16
+ File.open(file.fullpath, "w") do |file|
17
+ file.write "// This is #{file.path}\n"
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,31 @@
1
+ class Rake::Pipeline
2
+ module SpecHelpers
3
+ class MemoryFileWrapper < Struct.new(:root, :path, :encoding, :body)
4
+ @@files = {}
5
+
6
+ def self.files
7
+ @@files
8
+ end
9
+
10
+ def with_encoding(new_encoding)
11
+ self.class.new(root, path, new_encoding, body)
12
+ end
13
+
14
+ def fullpath
15
+ File.join(root, path)
16
+ end
17
+
18
+ def create
19
+ @@files[fullpath] = self
20
+ self.body = ""
21
+ yield
22
+ end
23
+
24
+ alias read body
25
+
26
+ def write(contents)
27
+ self.body << contents
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,19 @@
1
+ class Rake::Pipeline
2
+ module SpecHelpers
3
+ class MemoryManifest
4
+ def initialize
5
+ @entries = {}
6
+ end
7
+
8
+ # Look up an entry by filename.
9
+ def [](key)
10
+ @entries[key]
11
+ end
12
+
13
+ # Set an entry
14
+ def []=(key, value)
15
+ @entries[key] = value
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,101 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ $:.unshift File.expand_path('../../lib', __FILE__)
4
+ require 'rake-pipeline'
5
+ require 'rake-pipeline/middleware'
6
+
7
+ require 'fileutils'
8
+ require 'benchmark'
9
+ require 'ruby-prof'
10
+ require 'thor'
11
+ require 'rack/test'
12
+
13
+ class FakeServer
14
+ include Rack::Test::Methods
15
+
16
+ def app
17
+ Rake::Pipeline::Middleware.new(Rack::Directory.new('.'), 'Assetfile')
18
+ end
19
+ end
20
+
21
+ class Perfs < Thor
22
+ include FileUtils
23
+
24
+ class_option :clean, :type => :boolean, :default => true
25
+
26
+ desc "bench PROJECT_DIR", "Benchmark building and cleaning the given project"
27
+ def bench(project_dir)
28
+ setup(project_dir)
29
+
30
+ invoke_time = Benchmark.realtime do
31
+ project.invoke
32
+ end
33
+
34
+ clean_time = Benchmark.realtime do
35
+ project.clean
36
+ end
37
+
38
+ puts "build: #{invoke_time}"
39
+ puts "clean: #{clean_time}"
40
+ end
41
+
42
+ desc "profile PROJECT_DIR", "Profile a build"
43
+ method_option :rebuild, :type => :boolean, :aliases => "-r", :default => false
44
+ def profile(project_dir)
45
+ setup(project_dir)
46
+
47
+ if options[:rebuild]
48
+ project.invoke
49
+ result = RubyProf.profile do
50
+ project.invoke
51
+ end
52
+ else
53
+ result = RubyProf.profile do
54
+ project.invoke
55
+ end
56
+ end
57
+
58
+ printer = RubyProf::GraphHtmlPrinter.new(result)
59
+ printer.print
60
+ end
61
+
62
+ desc "bench_server PROJECT_DIR URL",
63
+ "Benchmark a GET request against a rakep server for the given PROJECT_DIR"
64
+ def bench_server(project_dir, url)
65
+ setup(project_dir)
66
+
67
+ server = FakeServer.new
68
+ result = Benchmark.realtime do
69
+ server.get url
70
+ end
71
+
72
+ puts result
73
+ end
74
+
75
+ desc "profile_server PROJECT_DIR URL",
76
+ "Profile a GET request against a rakep server for the given PROJECT_DIR"
77
+ def profile_server(project_dir, url)
78
+ setup(project_dir)
79
+
80
+ server = FakeServer.new
81
+ result = RubyProf.profile do
82
+ server.get url
83
+ end
84
+
85
+ printer = RubyProf::GraphHtmlPrinter.new(result)
86
+ printer.print
87
+ end
88
+
89
+ private
90
+
91
+ def setup(project_dir)
92
+ cd project_dir
93
+ project.clean
94
+ end
95
+
96
+ def project
97
+ @project ||= Rake::Pipeline::Project.new('Assetfile')
98
+ end
99
+ end
100
+
101
+ Perfs.start
metadata ADDED
@@ -0,0 +1,215 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rake-pipeline-fork
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.8.0
5
+ platform: ruby
6
+ authors:
7
+ - Yehuda Katz
8
+ - Tom Dale
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-04-22 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: rake
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - ~>
19
+ - !ruby/object:Gem::Version
20
+ version: 10.0.0
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - ~>
26
+ - !ruby/object:Gem::Version
27
+ version: 10.0.0
28
+ - !ruby/object:Gem::Dependency
29
+ name: thor
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - ! '>='
33
+ - !ruby/object:Gem::Version
34
+ version: '0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - ! '>='
40
+ - !ruby/object:Gem::Version
41
+ version: '0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: json
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ! '>='
47
+ - !ruby/object:Gem::Version
48
+ version: '0'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - ! '>='
54
+ - !ruby/object:Gem::Version
55
+ version: '0'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rspec
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - ! '>='
61
+ - !ruby/object:Gem::Version
62
+ version: '0'
63
+ type: :development
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rack-test
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - ! '>='
82
+ - !ruby/object:Gem::Version
83
+ version: '0'
84
+ description: Simple Asset Management
85
+ email:
86
+ - wycats@gmail.com
87
+ executables:
88
+ - rakep
89
+ extensions: []
90
+ extra_rdoc_files: []
91
+ files:
92
+ - .gitignore
93
+ - .rspec
94
+ - .travis.yml
95
+ - .yardopts
96
+ - GETTING_STARTED.md
97
+ - Gemfile
98
+ - LICENSE
99
+ - README.markdown
100
+ - README.yard
101
+ - Rakefile
102
+ - bin/rakep
103
+ - examples/copying_files.md
104
+ - examples/minifying_files.md
105
+ - examples/modifying_pipelines.md
106
+ - examples/multiple_pipelines.md
107
+ - lib/generators/rake/pipeline/install/install_generator.rb
108
+ - lib/rake-pipeline.rb
109
+ - lib/rake-pipeline/cli.rb
110
+ - lib/rake-pipeline/dsl.rb
111
+ - lib/rake-pipeline/dsl/pipeline_dsl.rb
112
+ - lib/rake-pipeline/dsl/project_dsl.rb
113
+ - lib/rake-pipeline/dynamic_file_task.rb
114
+ - lib/rake-pipeline/error.rb
115
+ - lib/rake-pipeline/file_wrapper.rb
116
+ - lib/rake-pipeline/filter.rb
117
+ - lib/rake-pipeline/filters.rb
118
+ - lib/rake-pipeline/filters/concat_filter.rb
119
+ - lib/rake-pipeline/filters/gsub_filter.rb
120
+ - lib/rake-pipeline/filters/ordering_concat_filter.rb
121
+ - lib/rake-pipeline/filters/pipeline_finalizing_filter.rb
122
+ - lib/rake-pipeline/graph.rb
123
+ - lib/rake-pipeline/manifest.rb
124
+ - lib/rake-pipeline/manifest_entry.rb
125
+ - lib/rake-pipeline/matcher.rb
126
+ - lib/rake-pipeline/middleware.rb
127
+ - lib/rake-pipeline/precompile.rake
128
+ - lib/rake-pipeline/project.rb
129
+ - lib/rake-pipeline/rails_plugin.rb
130
+ - lib/rake-pipeline/railtie.rb
131
+ - lib/rake-pipeline/reject_matcher.rb
132
+ - lib/rake-pipeline/server.rb
133
+ - lib/rake-pipeline/sorted_pipeline.rb
134
+ - lib/rake-pipeline/version.rb
135
+ - rails/init.rb
136
+ - rake-pipeline.gemspec
137
+ - spec/cli_spec.rb
138
+ - spec/concat_filter_spec.rb
139
+ - spec/dsl/pipeline_dsl_spec.rb
140
+ - spec/dsl/project_dsl_spec.rb
141
+ - spec/dynamic_file_task_spec.rb
142
+ - spec/encoding_spec.rb
143
+ - spec/file_wrapper_spec.rb
144
+ - spec/filter_spec.rb
145
+ - spec/graph_spec.rb
146
+ - spec/gsub_filter_spec.rb
147
+ - spec/manifest_entry_spec.rb
148
+ - spec/manifest_spec.rb
149
+ - spec/matcher_spec.rb
150
+ - spec/middleware_spec.rb
151
+ - spec/ordering_concat_filter_spec.rb
152
+ - spec/pipeline_spec.rb
153
+ - spec/project_spec.rb
154
+ - spec/rake_acceptance_spec.rb
155
+ - spec/rake_tasks_spec.rb
156
+ - spec/reject_matcher_spec.rb
157
+ - spec/sorted_pipeline_spec.rb
158
+ - spec/spec_helper.rb
159
+ - spec/support/spec_helpers/file_utils.rb
160
+ - spec/support/spec_helpers/filters.rb
161
+ - spec/support/spec_helpers/input_helpers.rb
162
+ - spec/support/spec_helpers/memory_file_wrapper.rb
163
+ - spec/support/spec_helpers/memory_manifest.rb
164
+ - tools/perfs
165
+ homepage: ''
166
+ licenses: []
167
+ metadata: {}
168
+ post_install_message:
169
+ rdoc_options: []
170
+ require_paths:
171
+ - lib
172
+ required_ruby_version: !ruby/object:Gem::Requirement
173
+ requirements:
174
+ - - ! '>='
175
+ - !ruby/object:Gem::Version
176
+ version: '0'
177
+ required_rubygems_version: !ruby/object:Gem::Requirement
178
+ requirements:
179
+ - - ! '>='
180
+ - !ruby/object:Gem::Version
181
+ version: '0'
182
+ requirements: []
183
+ rubyforge_project:
184
+ rubygems_version: 2.1.11
185
+ signing_key:
186
+ specification_version: 4
187
+ summary: Simple Asset Management
188
+ test_files:
189
+ - spec/cli_spec.rb
190
+ - spec/concat_filter_spec.rb
191
+ - spec/dsl/pipeline_dsl_spec.rb
192
+ - spec/dsl/project_dsl_spec.rb
193
+ - spec/dynamic_file_task_spec.rb
194
+ - spec/encoding_spec.rb
195
+ - spec/file_wrapper_spec.rb
196
+ - spec/filter_spec.rb
197
+ - spec/graph_spec.rb
198
+ - spec/gsub_filter_spec.rb
199
+ - spec/manifest_entry_spec.rb
200
+ - spec/manifest_spec.rb
201
+ - spec/matcher_spec.rb
202
+ - spec/middleware_spec.rb
203
+ - spec/ordering_concat_filter_spec.rb
204
+ - spec/pipeline_spec.rb
205
+ - spec/project_spec.rb
206
+ - spec/rake_acceptance_spec.rb
207
+ - spec/rake_tasks_spec.rb
208
+ - spec/reject_matcher_spec.rb
209
+ - spec/sorted_pipeline_spec.rb
210
+ - spec/spec_helper.rb
211
+ - spec/support/spec_helpers/file_utils.rb
212
+ - spec/support/spec_helpers/filters.rb
213
+ - spec/support/spec_helpers/input_helpers.rb
214
+ - spec/support/spec_helpers/memory_file_wrapper.rb
215
+ - spec/support/spec_helpers/memory_manifest.rb