rake-pipeline-fork 0.8.0

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