schlepp 0.0.1.pre.alpha.1 → 0.0.1.pre.alpha.2

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 (48) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +6 -5
  3. data/Gemfile +2 -1
  4. data/lib/schlepp/sink/filter/chunker.rb +40 -0
  5. data/lib/schlepp/sink/filter/compressor/stream.rb +44 -0
  6. data/lib/schlepp/sink/filter/compressor/writer.rb +36 -0
  7. data/lib/schlepp/sink/filter/compressor.rb +20 -0
  8. data/lib/schlepp/sink/filter/formatter/csv/writer.rb +25 -0
  9. data/lib/schlepp/sink/filter/formatter/csv.rb +21 -0
  10. data/lib/schlepp/sink/filter.rb +20 -0
  11. data/lib/schlepp/sink/table_object/carosel.rb +65 -0
  12. data/lib/schlepp/sink/table_object/factory.rb +28 -0
  13. data/lib/schlepp/sink/table_object/filter/observer.rb +23 -0
  14. data/lib/schlepp/sink/table_object/filter/writer.rb +26 -0
  15. data/lib/schlepp/sink/table_object/filters.rb +22 -0
  16. data/lib/schlepp/sink/table_object/stream.rb +25 -0
  17. data/lib/schlepp/sink/table_object/writer/factory.rb +22 -0
  18. data/lib/schlepp/sink.rb +17 -2
  19. data/lib/schlepp/source/csv.rb +1 -1
  20. data/lib/schlepp/version.rb +1 -1
  21. data/test/integration/mock/sink.rb +51 -0
  22. data/test/integration/mock/source.rb +9 -0
  23. data/test/integration/schlepp_test.rb +27 -8
  24. data/test/integration/test_helper.rb +13 -6
  25. data/test/unit/schlepp/table_object/carosel_test.rb +104 -0
  26. data/test/unit/schlepp/table_object/factory_test.rb +55 -0
  27. data/test/unit/schlepp_test.rb +5 -4
  28. data/test/unit/test_helper.rb +13 -6
  29. metadata +27 -29
  30. data/bin/schlepp.rb +0 -29
  31. data/lib/schlepp/sink/chunker.rb +0 -30
  32. data/lib/schlepp/sink/data_object.rb +0 -26
  33. data/lib/schlepp/sink/data_stream.rb +0 -39
  34. data/lib/schlepp/sink/loader.rb +0 -35
  35. data/lib/schlepp/sink/sequencer.rb +0 -42
  36. data/lib/schlepp/sinks/fs/chunker.rb +0 -38
  37. data/lib/schlepp/sinks/fs/sequencer.rb +0 -21
  38. data/lib/schlepp/sinks/fs/table_object/collection.rb +0 -23
  39. data/lib/schlepp/sinks/fs/table_object/writer.rb +0 -33
  40. data/lib/schlepp/sinks/fs/table_object.rb +0 -31
  41. data/lib/schlepp/sinks/fs.rb +0 -2
  42. data/lib/schlepp/table_object/chunker.rb +0 -33
  43. data/test/unit/schlepp/sink/data_object_test.rb +0 -0
  44. data/test/unit/schlepp/sink/data_stream_test.rb +0 -0
  45. data/test/unit/schlepp/sink/loader_test.rb +0 -29
  46. data/test/unit/schlepp/sink/sequencer_test.rb +0 -0
  47. data/test/unit/schlepp/table_object/chunker_test.rb +0 -0
  48. /data/test/unit/schlepp/{sink/chunker_test.rb → table_object/writer/factory_test.rb} +0 -0
@@ -0,0 +1,104 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ require 'schlepp/sink/table_object/carosel'
4
+
5
+ class Schlepp::Sink::TableObject::CaroselTest < Test::Unit::TestCase
6
+ include TestHelper
7
+
8
+ setup do
9
+ @mock_factory = mock
10
+
11
+ @mock_table_object = mock
12
+
13
+ @mock_filters = 5.times.map do |wf|
14
+ mock
15
+ end
16
+
17
+ @mock_table_object_factory = mock
18
+ Schlepp::Sink::TableObject::Factory.expects(:new).with(@mock_factory, @mock_filters).returns(@mock_table_object_factory)
19
+
20
+ @mock_table_object_factory.expects(:new).returns(@mock_table_object)
21
+
22
+ mock_table_object_writer_factory = mock
23
+ Schlepp::Sink::TableObject::Writer::Factory.expects(:new).with(@mock_factory, @mock_filters, @mock_table_object).returns(mock_table_object_writer_factory)
24
+
25
+ @mock_writer = mock
26
+ mock_table_object_writer_factory.expects(:new).returns(@mock_writer)
27
+
28
+ @carosel = Schlepp::Sink::TableObject::Carosel.new(@mock_factory, @mock_filters)
29
+ end
30
+
31
+ test "#write" do
32
+ mock_data = mock
33
+
34
+ @mock_filters.each do |f|
35
+ f.expects(:should_rotate?).returns(false)
36
+ end
37
+
38
+ @mock_writer.expects(:write).with(mock_data)
39
+
40
+ @carosel.write(mock_data)
41
+ end
42
+
43
+ test "#write with rotation" do
44
+ mock_data = mock
45
+
46
+ rotation_state = states('rotation').starts_as('unrotated')
47
+
48
+ @mock_filters.first.expects(:should_rotate?).
49
+ when(rotation_state.is('unrotated')).
50
+ then(rotation_state.is('rotated')).
51
+ returns(true)
52
+
53
+
54
+ @mock_filters.each do |f|
55
+ f.expects(:should_rotate?).when(rotation_state.is('rotated')).returns(false)
56
+ end
57
+
58
+ @mock_writer.expects(:finalize)
59
+
60
+ mock_second_table_object = mock
61
+ @mock_table_object_factory.expects(:new).returns(mock_second_table_object)
62
+
63
+ mock_table_object_writer_factory = mock
64
+ Schlepp::Sink::TableObject::Writer::Factory.expects(:new).with(@mock_factory, @mock_filters, mock_second_table_object).returns(mock_table_object_writer_factory)
65
+
66
+ mock_replacement_writer = mock
67
+ mock_table_object_writer_factory.expects(:new).returns(mock_replacement_writer)
68
+
69
+ mock_replacement_writer.expects(:write).with(mock_data)
70
+
71
+ @carosel.write(mock_data)
72
+ end
73
+ test "#write with endless rotation should fail" do
74
+ mock_data = mock
75
+
76
+ rotation_state = states('rotation').starts_as('unrotated')
77
+
78
+ @mock_filters.first.expects(:should_rotate?).
79
+ when(rotation_state.is('unrotated')).
80
+ then(rotation_state.is('rotated')).
81
+ returns(true)
82
+
83
+ @mock_filters.first.expects(:should_rotate?).
84
+ when(rotation_state.is('rotated')).
85
+ returns(true)
86
+
87
+
88
+ @mock_writer.expects(:finalize)
89
+
90
+ mock_second_table_object = mock
91
+ @mock_table_object_factory.expects(:new).returns(mock_second_table_object)
92
+
93
+ mock_table_object_writer_factory = mock
94
+ Schlepp::Sink::TableObject::Writer::Factory.expects(:new).with(@mock_factory, @mock_filters, mock_second_table_object).returns(mock_table_object_writer_factory)
95
+
96
+ mock_replacement_writer = mock
97
+ mock_table_object_writer_factory.expects(:new).returns(mock_replacement_writer)
98
+
99
+ assert_raises do
100
+ @carosel.write(mock_data)
101
+ end
102
+ end
103
+ end
104
+
@@ -0,0 +1,55 @@
1
+ require File.expand_path('../../../test_helper', __FILE__)
2
+
3
+ require 'schlepp/sink/table_object/factory'
4
+
5
+ class Schlepp::Sink::TableObject::FactoryTest < Test::Unit::TestCase
6
+ include TestHelper
7
+ setup do
8
+ @mock_factory = mock
9
+
10
+ url = URI("file:///tmp/example")
11
+
12
+ @mock_factory.expects(:url).returns(url)
13
+
14
+ mock_model = mock
15
+
16
+ @mock_factory.expects(:model).returns(mock_model)
17
+
18
+
19
+ @mock_filters = 5.times.map do |wf|
20
+ mock_filter = mock
21
+ mock_filter.expects(:rotate)
22
+
23
+ mock_filter
24
+ end
25
+
26
+ @mock_filters.each_with_index do |f, idx|
27
+ f.expects(:extension).returns(idx)
28
+ end
29
+
30
+ @mock_table_object = mock
31
+ expected_url = URI("file:///tmp/example.0.1.2.3.4")
32
+ Hydrogen::TableObject.expects(:new).with(mock_model, expected_url).returns(@mock_table_object)
33
+
34
+ @factory = Schlepp::Sink::TableObject::Factory.new(@mock_factory, @mock_filters)
35
+ end
36
+ test "#new" do
37
+ res = @factory.new
38
+
39
+ assert_equal res, @mock_table_object
40
+ end
41
+
42
+ test "#writer" do
43
+
44
+ mock_table_object_writer_factory = mock
45
+ Schlepp::Sink::TableObject::Writer::Factory.expects(:new).with(@mock_factory, @mock_filters, @mock_table_object).returns(mock_table_object_writer_factory)
46
+
47
+ mock_writer = mock
48
+ mock_table_object_writer_factory.expects(:new).returns(mock_writer)
49
+
50
+
51
+ res = @factory.writer
52
+
53
+ assert_equal res, mock_writer
54
+ end
55
+ end
@@ -5,8 +5,6 @@ require 'schlepp'
5
5
  class SchleppTest < Test::Unit::TestCase
6
6
  include TestHelper
7
7
  test '.schlepp' do
8
- table_object = Hydrogen::TableObject.new(@mock_model)
9
-
10
8
  mock_source = mock
11
9
 
12
10
  mock_source.expects(:each).multiple_yields("foo", "bar", "baz")
@@ -17,8 +15,11 @@ class SchleppTest < Test::Unit::TestCase
17
15
  mock_sink.expects(:write).with("bar")
18
16
  mock_sink.expects(:write).with("baz")
19
17
 
20
- mock_sink.expects(:finalize)
18
+ mock_parts = mock
19
+ mock_sink.expects(:finalize).returns(mock_parts)
20
+
21
+ parts = Schlepp.schlepp(mock_source, mock_sink)
21
22
 
22
- Schlepp.schlepp(mock_source, mock_sink)
23
+ assert_equal parts, mock_parts
23
24
  end
24
25
  end
@@ -1,10 +1,17 @@
1
- require 'coveralls'
2
- Coveralls.wear!
3
-
4
- if ENV["ENABLE_SIMPLE_COV"]
1
+ if ENV["COVERAGE"]
2
+ require 'coveralls'
3
+ require 'codeclimate-test-reporter'
5
4
  require 'simplecov'
6
- require File.expand_path('../../simplecov_helper', __FILE__)
7
- SimpleCov.start 'pocketchange'
5
+ SimpleCov.start do
6
+ add_group "Lib", "lib"
7
+ add_filter "/test/"
8
+ command_name "Unit Tests"
9
+ formatter SimpleCov::Formatter::MultiFormatter[
10
+ SimpleCov::Formatter::HTMLFormatter,
11
+ Coveralls::SimpleCov::Formatter,
12
+ CodeClimate::TestReporter::Formatter
13
+ ]
14
+ end
8
15
  end
9
16
 
10
17
  require 'test/unit'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: schlepp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.pre.alpha.1
4
+ version: 0.0.1.pre.alpha.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ed Carrel
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-09-21 00:00:00.000000000 Z
11
+ date: 2014-10-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -111,8 +111,7 @@ dependencies:
111
111
  description: An extensible chunking file transferer
112
112
  email:
113
113
  - edward@carrel.org
114
- executables:
115
- - schlepp.rb
114
+ executables: []
116
115
  extensions: []
117
116
  extra_rdoc_files: []
118
117
  files:
@@ -123,34 +122,34 @@ files:
123
122
  - LICENSE
124
123
  - README.md
125
124
  - Rakefile
126
- - bin/schlepp.rb
127
125
  - lib/schlepp.rb
128
126
  - lib/schlepp/env.rb
129
127
  - lib/schlepp/sink.rb
130
- - lib/schlepp/sink/chunker.rb
131
- - lib/schlepp/sink/data_object.rb
132
- - lib/schlepp/sink/data_stream.rb
133
- - lib/schlepp/sink/loader.rb
134
- - lib/schlepp/sink/sequencer.rb
135
- - lib/schlepp/sinks/fs.rb
136
- - lib/schlepp/sinks/fs/chunker.rb
137
- - lib/schlepp/sinks/fs/sequencer.rb
138
- - lib/schlepp/sinks/fs/table_object.rb
139
- - lib/schlepp/sinks/fs/table_object/collection.rb
140
- - lib/schlepp/sinks/fs/table_object/writer.rb
128
+ - lib/schlepp/sink/filter.rb
129
+ - lib/schlepp/sink/filter/chunker.rb
130
+ - lib/schlepp/sink/filter/compressor.rb
131
+ - lib/schlepp/sink/filter/compressor/stream.rb
132
+ - lib/schlepp/sink/filter/compressor/writer.rb
133
+ - lib/schlepp/sink/filter/formatter/csv.rb
134
+ - lib/schlepp/sink/filter/formatter/csv/writer.rb
135
+ - lib/schlepp/sink/table_object/carosel.rb
136
+ - lib/schlepp/sink/table_object/factory.rb
137
+ - lib/schlepp/sink/table_object/filter/observer.rb
138
+ - lib/schlepp/sink/table_object/filter/writer.rb
139
+ - lib/schlepp/sink/table_object/filters.rb
140
+ - lib/schlepp/sink/table_object/stream.rb
141
+ - lib/schlepp/sink/table_object/writer/factory.rb
141
142
  - lib/schlepp/source.rb
142
143
  - lib/schlepp/source/csv.rb
143
- - lib/schlepp/table_object/chunker.rb
144
144
  - lib/schlepp/version.rb
145
145
  - schlepp.gemspec
146
+ - test/integration/mock/sink.rb
147
+ - test/integration/mock/source.rb
146
148
  - test/integration/schlepp_test.rb
147
149
  - test/integration/test_helper.rb
148
- - test/unit/schlepp/sink/chunker_test.rb
149
- - test/unit/schlepp/sink/data_object_test.rb
150
- - test/unit/schlepp/sink/data_stream_test.rb
151
- - test/unit/schlepp/sink/loader_test.rb
152
- - test/unit/schlepp/sink/sequencer_test.rb
153
- - test/unit/schlepp/table_object/chunker_test.rb
150
+ - test/unit/schlepp/table_object/carosel_test.rb
151
+ - test/unit/schlepp/table_object/factory_test.rb
152
+ - test/unit/schlepp/table_object/writer/factory_test.rb
154
153
  - test/unit/schlepp_test.rb
155
154
  - test/unit/test_helper.rb
156
155
  homepage: https://github.com/azanar/schlepp
@@ -178,13 +177,12 @@ signing_key:
178
177
  specification_version: 4
179
178
  summary: An extensible chunking file transferer
180
179
  test_files:
180
+ - test/integration/mock/sink.rb
181
+ - test/integration/mock/source.rb
181
182
  - test/integration/schlepp_test.rb
182
183
  - test/integration/test_helper.rb
183
- - test/unit/schlepp/sink/chunker_test.rb
184
- - test/unit/schlepp/sink/data_object_test.rb
185
- - test/unit/schlepp/sink/data_stream_test.rb
186
- - test/unit/schlepp/sink/loader_test.rb
187
- - test/unit/schlepp/sink/sequencer_test.rb
188
- - test/unit/schlepp/table_object/chunker_test.rb
184
+ - test/unit/schlepp/table_object/carosel_test.rb
185
+ - test/unit/schlepp/table_object/factory_test.rb
186
+ - test/unit/schlepp/table_object/writer/factory_test.rb
189
187
  - test/unit/schlepp_test.rb
190
188
  - test/unit/test_helper.rb
data/bin/schlepp.rb DELETED
@@ -1,29 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $LOAD_PATH.push(File.dirname(__FILE__) + '/../lib')
3
-
4
- require 'hydrogen'
5
- require 'schlepp/sinks/fs'
6
-
7
- config = {
8
- :table_name => 'foo',
9
- :source => {:file => 'data.csv'},
10
- :columns => %w{foo bar baz}
11
- }
12
-
13
- AWS.config(
14
- access_key_id: 'ACCESS_KEY_ID',
15
- secret_access_key: 'SECRET_ACCESS_KEY',
16
- stub_requests: Schlepp.env.test?,
17
- )
18
-
19
- model = Hydrogen::Model.new(config)
20
-
21
- to = Hydrogen::TableObject.new(model)
22
-
23
- source = Schlepp::Source::CSV.new(File.new('data.csv','r'))
24
-
25
- l = Schlepp::Sink::Fs::Sequencer.new(to, :chunk_size => 40000)
26
-
27
- res = Schlepp.schlepp(source, l)
28
-
29
- puts res.inspect
@@ -1,30 +0,0 @@
1
- require 'schlepp/sink/loader'
2
- require 'schlepp/table_object/chunker'
3
-
4
- module Schlepp
5
- module Sink
6
- class Chunker
7
- def initialize(table_object, opts = {})
8
- @table_object = table_object
9
- end
10
-
11
- def sequence
12
- chunker.sequence
13
- end
14
-
15
- def parts
16
- chunker.parts
17
- end
18
-
19
- def next
20
- chunker.next
21
- end
22
-
23
- private
24
-
25
- def chunker
26
- @chunker ||= Schlepp::TableObject::Chunker.new(@table_object)
27
- end
28
- end
29
- end
30
- end
@@ -1,26 +0,0 @@
1
- require 'schlepp/sink/data_stream'
2
-
3
- module Schlepp
4
- module Sink
5
- class DataObject
6
- def initialize(table_object)
7
- @stream = DataStream.new
8
- @table_object = table_object
9
- end
10
-
11
- def write(data)
12
- @stream.write(data)
13
- end
14
-
15
- def length
16
- @stream.length
17
- end
18
-
19
- def finalize
20
- @stream.finalize
21
-
22
- @table_object.write(@stream.to_s)
23
- end
24
- end
25
- end
26
- end
@@ -1,39 +0,0 @@
1
- require 'zlib'
2
-
3
- module Schlepp
4
- module Sink
5
- class DataStream
6
- def initialize
7
- @buffer = StringIO.new("", "rb+")
8
- @compressor = Zlib::GzipWriter.new(@buffer)
9
- @dead = false
10
- end
11
-
12
- def write(data)
13
- if @dead
14
- raise "Stream has been dumped. No more writing permitted."
15
- end
16
- @compressor << data
17
- end
18
-
19
- def length
20
- if @dead
21
- raise "Stream has been dumped. No more writing permitted."
22
- end
23
- @compressor.pos
24
- end
25
-
26
- def finalize
27
- if !@dead
28
- @compressor.close
29
- @dead = true
30
- end
31
- end
32
-
33
- def to_s
34
- finalize
35
- @buffer.string
36
- end
37
- end
38
- end
39
- end
@@ -1,35 +0,0 @@
1
- require 'schlepp/sink/data_object'
2
-
3
- module Schlepp
4
- module Sink
5
- class Loader
6
- def initialize(writer, opts = {})
7
- @writer = writer
8
-
9
- @file = DataObject.new(writer)
10
- end
11
-
12
- def name
13
- @writer.name
14
- end
15
-
16
- def path
17
- @writer.path
18
- end
19
-
20
- def write(rows)
21
- Array(rows).each do |row|
22
- @file.write(row)
23
- end
24
- end
25
-
26
- def written
27
- @file.length
28
- end
29
-
30
- def finalize
31
- @file.finalize
32
- end
33
- end
34
- end
35
- end
@@ -1,42 +0,0 @@
1
- module Schlepp
2
- module Sink
3
- module Sequencer
4
- DEFAULT_CHUNK_SIZE = 50 * 1024 * 1024 # 50 MB
5
- def initialize(table_object, opts = {})
6
- @table_object = table_object
7
- @chunker = chunker.new(table_object)
8
- @chunk_size = opts[:chunk_size] || DEFAULT_CHUNK_SIZE
9
- end
10
-
11
- def write(rows)
12
- rows.each do |row|
13
- if loader.written + row.length > @chunk_size
14
- rotate
15
- end
16
- loader.write(row)
17
- end
18
- end
19
-
20
- def parts
21
- @chunker.parts
22
- end
23
-
24
- def finalize
25
- loader.finalize
26
- end
27
-
28
- private
29
-
30
- def loader
31
- @loader ||= rotate
32
- end
33
-
34
- def rotate
35
- if @loader
36
- @loader.finalize
37
- end
38
- @loader = @chunker.next
39
- end
40
- end
41
- end
42
- end
@@ -1,38 +0,0 @@
1
- require 'schlepp/sink/chunker'
2
-
3
- require 'schlepp/sinks/fs/table_object'
4
- require 'schlepp/sinks/fs/table_object/writer'
5
-
6
- module Schlepp
7
- module Sink
8
- module Fs
9
- class Chunker
10
- def initialize(table_object, opts = {})
11
- @table_object = table_object
12
- end
13
-
14
- def sequence
15
- chunker.sequence
16
- end
17
-
18
- def parts
19
- chunker.parts
20
- end
21
-
22
- def next
23
- part = chunker.next
24
-
25
- ts = Schlepp::Sink::Fs::TableObject.new(part)
26
-
27
- Schlepp::Sink::Loader.new(ts)
28
- end
29
-
30
- private
31
-
32
- def chunker
33
- @chunker ||= Schlepp::Sink::Chunker.new(@table_object)
34
- end
35
- end
36
- end
37
- end
38
- end
@@ -1,21 +0,0 @@
1
- require 'schlepp/sink/sequencer'
2
- require 'schlepp/sinks/fs/chunker'
3
- require 'schlepp/sinks/fs/table_object/collection'
4
-
5
- module Schlepp
6
- module Sink
7
- module Fs
8
- class Sequencer
9
- include Schlepp::Sink::Sequencer
10
-
11
- def collection
12
- Schlepp::Sink::Fs::TableObject::Collection
13
- end
14
-
15
- def chunker
16
- Schlepp::Sink::Fs::Chunker
17
- end
18
- end
19
- end
20
- end
21
- end
@@ -1,23 +0,0 @@
1
- require 'hydrogen/table_object/collection'
2
-
3
- module Schlepp
4
- module Sink
5
- module Fs
6
- class TableObject
7
- class Collection
8
- include Hydrogen::TableObject::Collection
9
-
10
- def url
11
- "file:///#{path}"
12
- end
13
-
14
- def urls
15
- parts.map do |p|
16
- TableObject.new(p).url
17
- end
18
- end
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,33 +0,0 @@
1
- module Schlepp
2
- module Sink
3
- module Fs
4
- class TableObject
5
- class Writer
6
- def initialize(table_object, opts = {})
7
- @table_object = table_object
8
- @written = 0
9
- end
10
-
11
- def file
12
- @file ||= File.new("/tmp/#{@table_object.path}", 'w')
13
- end
14
-
15
- def write(rows)
16
- Array(rows).each do |row|
17
- @written += row.length
18
- file.write(row)
19
- end
20
- end
21
-
22
- def written
23
- @written
24
- end
25
-
26
- def finalize
27
- @file.close
28
- end
29
- end
30
- end
31
- end
32
- end
33
- end
@@ -1,31 +0,0 @@
1
- module Schlepp
2
- module Sink
3
- module Fs
4
- class TableObject
5
- def initialize(table_object, opts = {})
6
- @table_object = table_object
7
- @written = 0
8
- end
9
-
10
- def write(rows)
11
- Array(rows).each do |row|
12
- @written += row.length
13
- file.write(row)
14
- end
15
- end
16
-
17
- def written
18
- @written
19
- end
20
-
21
- def finalize
22
- @file.close
23
- end
24
-
25
- def file
26
- @file ||= File.new("/tmp/#{@table_object.path}", 'w')
27
- end
28
- end
29
- end
30
- end
31
- end
@@ -1,2 +0,0 @@
1
- require 'schlepp/sinks/fs/sequencer'
2
- require 'schlepp/sinks/fs/chunker'