schlepp-aws 0.0.1.pre.alpha.1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: ec9e06915bf1cc0a4e9fac1ddee51f13fa3d710f
4
+ data.tar.gz: 2acb6424dda62932949fa9c72c84eb09c002d120
5
+ SHA512:
6
+ metadata.gz: ac6750481d1f9aa127db9ff49d216d0f8071feb4e2c0122404cb2341dabc03d98eb84f7d88322b237397d9476c36e05e365bd266e4495cb2fa2f1c35a9bac713
7
+ data.tar.gz: 2c9275646a86bec93c6366b3c1eff515d24bbaae5b8273562ae7710390bbc709b7b60a1400eb8a5501313265d06fd9945d35117f0afebb668c00137d4914b328
@@ -0,0 +1,34 @@
1
+ *.gem
2
+ *.rbc
3
+ /.config
4
+ /coverage/
5
+ /InstalledFiles
6
+ /pkg/
7
+ /spec/reports/
8
+ /test/tmp/
9
+ /test/version_tmp/
10
+ /tmp/
11
+
12
+ ## Specific to RubyMotion:
13
+ .dat*
14
+ .repl_history
15
+ build/
16
+
17
+ ## Documentation cache and generated files:
18
+ /.yardoc/
19
+ /_yardoc/
20
+ /doc/
21
+ /rdoc/
22
+
23
+ ## Environment normalisation:
24
+ /.bundle/
25
+ /lib/bundler/man/
26
+
27
+ # for a library or gem, you might want to ignore these files since the code is
28
+ # intended to run in multiple environments; otherwise, check them in:
29
+ Gemfile.lock
30
+ .ruby-version
31
+ .ruby-gemset
32
+
33
+ # unless supporting rvm < 1.11.0 or doing something fancy, ignore this:
34
+ .rvmrc
@@ -0,0 +1,15 @@
1
+ language: ruby
2
+
3
+ env:
4
+ - TEST_SUITE=unit
5
+ - TEST_SUITE=integration
6
+
7
+ script: "bundle exec rake test:$TEST_SUITE"
8
+
9
+ rvm:
10
+ - "1.9.3"
11
+ - "2.1.2"
12
+ - "ruby-head"
13
+ - "jruby-19mode"
14
+ - "rbx-2"
15
+
@@ -0,0 +1,33 @@
1
+ Contributing to Quasar
2
+ ========================
3
+
4
+ First of all, thanks for your interest in contributing to Quasar!
5
+
6
+ Below are a list of guidelines to help keep this project sane in the face of open source entropy.
7
+
8
+ How To Submit A Patch
9
+ ---------------------
10
+
11
+ Any patch you feel would make this a better project is welcome, including but not limited to: bug fixes, new features, refactoring, and better documentation.
12
+
13
+ Make a fork of this project, and hack to your heart's content. Once you have something you think would be great to include into master, feel free to open a pull request. Please keep in mind the following guidelines, which will make it more likely for your pull request to be accepted:
14
+
15
+ 1. Please have test cases, both in the unit suite and the integration suite, that fail when your code is not present.
16
+ 1. Please open a topic branch in your fork, and create your pull request against that.
17
+ * Use a separate topic for each feature and/or bug fix you want to submit.
18
+ 1. Be logically consistent in your commits. Make them as small as possible, so they can tell a story the maintainer can understand.
19
+ 1. Keeping a consistent style in the codebase is important for maintainability. When possible, please stick to the guidelines within [this guide](https://github.com/bbatsov/ruby-style-guide).
20
+ 1. Pay attention to things like code climate and test coverage. A drop in these metrics will not necessarily preclude a patch from being accepted, but we'd much prefer to keep these numbers high.
21
+
22
+ Please keep in mind your contributions will be licensed the same as the rest of Quasar, under the MIT license.
23
+
24
+ It may take the developer a day or two to get to your pull request. If your request has not been responded to in a few days, though, feel free to ping the developer team, preferably through a comment on the pull.
25
+
26
+ How To Report An Issue
27
+ ----------------------
28
+
29
+ Issue reports are welcome, even if not accompanied by a pull request. Keep in mind that submitting a pull request will mean your issue likely gets resolved sooner, because less work will be left to do.
30
+
31
+ The most important thing an issue can do is get a developer as close as possible to seeing what you are seeing, in the case of a bug report. In the case of a feature request, you want to get them to the point where they don't see what you want to see, so they can make a decision about whether and how to include the proposed feature.
32
+
33
+ More about good bug reports [here](http://www.chiark.greenend.org.uk/~sgtatham/bugs.html).
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source 'https://rubygems.org'
2
+
3
+ gem 'coveralls', require: false
4
+
5
+ gemspec
data/LICENSE ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2014 Ed Carrel
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,40 @@
1
+ # Schlepp
2
+
3
+ AWS-specific sinks for Schlepp
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ ```ruby
10
+ gem 'schlepp'
11
+ ```
12
+
13
+ And then execute:
14
+
15
+ $ bundle
16
+
17
+ Or install it yourself as:
18
+
19
+ $ gem install schlepp
20
+
21
+ ## Usage
22
+
23
+ TODO: Write usage instructions here
24
+
25
+ API Documentation
26
+ -------------
27
+
28
+ See [RubyDoc](http://rubydoc.info/github/azanar/schlepp-aws/index)
29
+
30
+ Contributors
31
+ ------------
32
+
33
+ See [Contributing](CONTRIBUTING.md) for details.
34
+
35
+ License
36
+ -------
37
+
38
+ &copy;2014 Ed Carrel. Released under the MIT License.
39
+
40
+ See [License](LICENSE) for details.
@@ -0,0 +1,32 @@
1
+ require "bundler/gem_tasks"
2
+
3
+ require 'coveralls/rake/task'
4
+
5
+ require 'rake/testtask'
6
+
7
+ task :test do
8
+ Rake::Task['test:unit'].invoke
9
+ Rake::Task['test:integration'].invoke
10
+ end
11
+
12
+ namespace :test do
13
+ Rake::TestTask.new("integration") do |t|
14
+ t.libs << "test"
15
+ t.libs << "config"
16
+ t.test_files = FileList['test/integration/**/*_test.rb']
17
+ t.verbose = true
18
+ end
19
+
20
+ Rake::TestTask.new("unit") do |t|
21
+ t.libs << "test"
22
+ t.libs << "config"
23
+ t.test_files = FileList['test/unit/**/*_test.rb']
24
+ t.verbose = true
25
+ end
26
+ end
27
+
28
+ Coveralls::RakeTask.new
29
+
30
+ task :test_with_coveralls => ['test:unit', 'test:integration', 'coveralls:push']
31
+
32
+ task :default => :test_with_coveralls
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+ $LOAD_PATH.push(File.dirname(__FILE__) + '/../lib')
3
+
4
+ require 'hydrogen'
5
+ require 'schlepp'
6
+ require 'schlepp/sinks/fs'
7
+ require 'schlepp-aws/sinks/aws/s3'
8
+ require 'aws'
9
+
10
+ config = {
11
+ :table_name => 'foo',
12
+ :source => {:file => 'data.csv'},
13
+ :columns => %w{foo bar baz}
14
+ }
15
+
16
+ AWS.config(
17
+ access_key_id: 'ACCESS_KEY_ID',
18
+ secret_access_key: 'SECRET_ACCESS_KEY',
19
+ stub_requests: Schlepp.env.test?,
20
+ )
21
+
22
+ model = Hydrogen::Model.new(config)
23
+
24
+ to = Hydrogen::TableObject.new(model)
25
+
26
+ source = Schlepp::Source::CSV.new(File.new('data.csv','r'))
27
+
28
+ l = Schlepp::AWS::Sink::S3::Sequencer.new(to, :chunk_size => 40000)
29
+
30
+ res = Schlepp.schlepp(source, l)
31
+
32
+ puts res.inspect
@@ -0,0 +1,11 @@
1
+ require 'aws'
2
+ require 'hydrogen'
3
+ require 'schlepp'
4
+
5
+ require 'schlepp-aws/table_object'
6
+
7
+
8
+ module Schlepp
9
+ module AWS
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ require 'schlepp-aws/sinks/s3/env'
2
+ require 'schlepp-aws/sinks/s3/sequencer'
3
+
4
+ module Schlepp
5
+ module AWS
6
+ module Sink
7
+ module S3
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,47 @@
1
+ require 'schlepp/sink/loader'
2
+
3
+ require 'schlepp-aws/sinks/s3/table_object'
4
+ require 'schlepp-aws/sinks/s3/table_object/writer'
5
+
6
+ module Schlepp
7
+ module AWS
8
+ module Sink
9
+ module S3
10
+ class Chunker
11
+ def initialize(table_object, opts = {})
12
+ @table_object = table_object
13
+ @wrapped = []
14
+ end
15
+
16
+ attr_reader :wrapped
17
+
18
+ def sequence
19
+ chunker.sequence
20
+ end
21
+
22
+ def parts
23
+ chunker.parts
24
+ end
25
+
26
+ def next
27
+ part = chunker.next
28
+
29
+ s3_table_obj = Schlepp::AWS::Sink::S3::TableObject.new(part)
30
+
31
+ @wrapped << s3_table_obj
32
+
33
+ writer = Schlepp::AWS::Sink::S3::TableObject::Writer.new(s3_table_obj)
34
+
35
+ Schlepp::Sink::Loader.new(writer)
36
+ end
37
+
38
+ private
39
+
40
+ def chunker
41
+ @chunker ||= Schlepp::Sink::Chunker.new(@table_object)
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -0,0 +1,26 @@
1
+ require 'schlepp/env'
2
+
3
+ module Schlepp
4
+ module AWS
5
+ module Sink
6
+ module S3
7
+ module_function
8
+
9
+ def bucket
10
+ @bucket ||= begin
11
+ name = if Schlepp::env.production?
12
+ "PRODUCTION"
13
+ elsif Schlepp::env.test?
14
+ "TEST"
15
+ elsif Schlepp::env.development?
16
+ "azanar_quasar"
17
+ end
18
+ if name
19
+ ::AWS::S3.new.buckets[name]
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,23 @@
1
+ require 'schlepp/sink/sequencer'
2
+ require 'schlepp-aws/sinks/s3/chunker'
3
+ require 'schlepp-aws/sinks/s3/table_object/collection'
4
+
5
+ module Schlepp
6
+ module AWS
7
+ module Sink
8
+ module S3
9
+ class Sequencer
10
+ include Schlepp::Sink::Sequencer
11
+
12
+ def collection
13
+ Schlepp::AWS::Sink::S3::TableObject::Collection
14
+ end
15
+
16
+ def chunker
17
+ Schlepp::AWS::Sink::S3::Chunker
18
+ end
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,29 @@
1
+ require 'schlepp-aws/sinks/s3/env'
2
+ require 'schlepp-aws/table_object'
3
+
4
+ module Schlepp
5
+ module AWS
6
+ module Sink
7
+ module S3
8
+ # An S3 Object that is the gzipped data bound for a Redshift table.
9
+ class TableObject
10
+ def initialize(table_object)
11
+ @table_object = table_object
12
+ end
13
+
14
+ def path
15
+ @table_object.path
16
+ end
17
+
18
+ def name
19
+ @table_object.name
20
+ end
21
+
22
+ def url
23
+ "s3://#{S3.bucket.name}/#{path}"
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,28 @@
1
+ require 'hydrogen/table_object/collection'
2
+
3
+ require 'schlepp-aws/sinks/s3/table_object'
4
+
5
+ module Schlepp
6
+ module AWS
7
+ module Sink
8
+ module S3
9
+ class TableObject
10
+ class Collection
11
+ include Hydrogen::TableObject::Collection
12
+
13
+ def url
14
+ "file:///#{path}"
15
+ end
16
+
17
+ def urls
18
+ parts.map do |p|
19
+ TableObject.new(p).url
20
+ end
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
26
+ end
27
+
28
+ end
@@ -0,0 +1,29 @@
1
+ require 'schlepp-aws/sinks/s3/table_object'
2
+
3
+ module Schlepp
4
+ module AWS
5
+ module Sink
6
+ module S3
7
+ # An S3 Object that is the gzipped data bound for a Redshift table.
8
+ class TableObject
9
+ class Writer
10
+ # @param table_object TableObject::Base
11
+ def initialize(table_object)
12
+ @table_object = table_object
13
+
14
+ @s3_obj = S3.bucket.objects[table_object.name]
15
+ end
16
+
17
+ def write(data)
18
+ @s3_obj.write(data)
19
+ end
20
+
21
+ def delete
22
+ @s3_obj.delete
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,17 @@
1
+ module Schlepp
2
+ module AWS
3
+ class TableObject
4
+ def initialize(table_object)
5
+ @table_object = table_object
6
+ end
7
+
8
+ def path
9
+ @table_object.path
10
+ end
11
+
12
+ def url
13
+ "s3://#{S3.bucket.name}/#{path}"
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,5 @@
1
+ module Schlepp
2
+ module AWS
3
+ VERSION = "0.0.1-alpha.1"
4
+ end
5
+ end
@@ -0,0 +1,30 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'schlepp-aws/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "schlepp-aws"
8
+ spec.version = Schlepp::AWS::VERSION
9
+ spec.authors = ["Ed Carrel"]
10
+ spec.email = ["edward@carrel.org"]
11
+ spec.summary = %q{AWS-specific transports for Schlepp}
12
+ spec.description = %q{AWS-specific transports for Schlepp}
13
+ spec.homepage = "https://github.com/azanar/schlepp-aws"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files -z`.split("\x0")
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_runtime_dependency 'aws-sdk', '~> 1'
22
+ spec.add_runtime_dependency 'schlepp', '~> 0'
23
+ spec.add_runtime_dependency 'activesupport', '~> 4'
24
+
25
+ spec.add_development_dependency 'test-unit', '~> 3'
26
+ spec.add_development_dependency 'mocha', '~> 1'
27
+ spec.add_development_dependency 'simplecov', '~> 0'
28
+ spec.add_development_dependency "bundler", "~> 1.6"
29
+ spec.add_development_dependency "rake", "~> 10.0"
30
+ end
@@ -0,0 +1,36 @@
1
+ require File.expand_path('../../test_helper', __FILE__)
2
+
3
+ require 'schlepp'
4
+ require 'schlepp-aws/sinks/s3'
5
+
6
+ class Schlepp::IntegrationTest < Test::Unit::TestCase
7
+ setup do
8
+ @stub_s3_bucket = stub
9
+ Schlepp::AWS::Sink::S3.stubs(:bucket).returns(@stub_s3_bucket)
10
+
11
+ @stub_s3_objects = stub
12
+ @stub_s3_bucket.stubs(:objects).returns(@stub_s3_objects)
13
+
14
+ @mock_s3_object = mock
15
+ @stub_s3_objects.stubs(:[]).returns(@mock_s3_object)
16
+
17
+ @mock_model = mock
18
+ @mock_model.expects(:name).at_least_once.returns("mock_models")
19
+ end
20
+
21
+ test 'stuff' do
22
+ table_object = Hydrogen::TableObject.new(@mock_model)
23
+
24
+ s3_table_object = Schlepp::AWS::Sink::S3::TableObject.new(table_object)
25
+
26
+ writer = Schlepp::AWS::Sink::S3::TableObject::Writer.new(table_object)
27
+
28
+ loader = Schlepp::Sink::Loader.new(writer)
29
+
30
+ @mock_s3_object.expects(:write)
31
+ loader.write(["FOO|BAR|BAZ"] * 10)
32
+
33
+ loader.finalize
34
+ end
35
+ end
36
+
@@ -0,0 +1,23 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ if ENV["ENABLE_SIMPLE_COV"]
5
+ require 'simplecov'
6
+ require File.expand_path('../../simplecov_helper', __FILE__)
7
+ SimpleCov.start 'pocketchange'
8
+ end
9
+
10
+ require 'test/unit'
11
+
12
+ ENV["QUASAR_ENV"] = "test"
13
+
14
+ require 'mocha/setup'
15
+ require 'aws'
16
+
17
+ module TestHelper
18
+ AWS.config(
19
+ :access_key_id => 'ACCESS_KEY_ID',
20
+ :secret_access_key => 'SECRET_ACCESS_KEY',
21
+ :stub_requests => true
22
+ )
23
+ end
@@ -0,0 +1,32 @@
1
+ require File.expand_path('../../../../test_helper', __FILE__)
2
+
3
+ require 'schlepp-aws/sinks/s3/table_object'
4
+ require 'schlepp-aws/sinks/s3/table_object/writer'
5
+
6
+ class Schlepp::AWS::Sink::S3::TableObjectTest < Test::Unit::TestCase
7
+ include TestHelper
8
+ setup do
9
+ @mock_table_object = mock
10
+ @mock_table_object_name = "mock_table_name"
11
+
12
+ @mock_table_object.expects(:name).returns(@mock_table_object_name)
13
+
14
+ @mock_s3_bucket = mock
15
+ Schlepp::AWS::Sink::S3.expects(:bucket).returns(@mock_s3_bucket)
16
+
17
+ @mock_s3_bucket_objects = mock
18
+ @mock_s3_bucket.expects(:objects).returns(@mock_s3_bucket_objects)
19
+
20
+ @mock_s3_bucket_object = mock
21
+ @mock_s3_bucket_objects.expects(:[]).with(@mock_table_object_name).returns(@mock_s3_bucket_object)
22
+
23
+ s3_table_object = Schlepp::AWS::Sink::S3::TableObject.new(@mock_table_object)
24
+ @writer = Schlepp::AWS::Sink::S3::TableObject::Writer.new(s3_table_object)
25
+ end
26
+
27
+ test '#write' do
28
+ @mock_s3_bucket_object.expects(:write).with("FOO|BAR|BAZ")
29
+ @writer.write("FOO|BAR|BAZ")
30
+ end
31
+
32
+ end
@@ -0,0 +1,23 @@
1
+ require 'coveralls'
2
+ Coveralls.wear!
3
+
4
+ if ENV["ENABLE_SIMPLE_COV"]
5
+ require 'simplecov'
6
+ require File.expand_path('../../simplecov_helper', __FILE__)
7
+ SimpleCov.start 'pocketchange'
8
+ end
9
+
10
+ require 'test/unit'
11
+
12
+ ENV["QUASAR_ENV"] = "test"
13
+
14
+ require 'mocha/setup'
15
+ require 'aws'
16
+
17
+ module TestHelper
18
+ AWS.config(
19
+ :access_key_id => 'ACCESS_KEY_ID',
20
+ :secret_access_key => 'SECRET_ACCESS_KEY',
21
+ :stub_requests => true
22
+ )
23
+ end
metadata ADDED
@@ -0,0 +1,184 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: schlepp-aws
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1.pre.alpha.1
5
+ platform: ruby
6
+ authors:
7
+ - Ed Carrel
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-09-21 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ~>
17
+ - !ruby/object:Gem::Version
18
+ version: '1'
19
+ name: aws-sdk
20
+ prerelease: false
21
+ type: :runtime
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ~>
25
+ - !ruby/object:Gem::Version
26
+ version: '1'
27
+ - !ruby/object:Gem::Dependency
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ name: schlepp
34
+ prerelease: false
35
+ type: :runtime
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ~>
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ requirement: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '4'
47
+ name: activesupport
48
+ prerelease: false
49
+ type: :runtime
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ~>
53
+ - !ruby/object:Gem::Version
54
+ version: '4'
55
+ - !ruby/object:Gem::Dependency
56
+ requirement: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: '3'
61
+ name: test-unit
62
+ prerelease: false
63
+ type: :development
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ~>
67
+ - !ruby/object:Gem::Version
68
+ version: '3'
69
+ - !ruby/object:Gem::Dependency
70
+ requirement: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ~>
73
+ - !ruby/object:Gem::Version
74
+ version: '1'
75
+ name: mocha
76
+ prerelease: false
77
+ type: :development
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ~>
81
+ - !ruby/object:Gem::Version
82
+ version: '1'
83
+ - !ruby/object:Gem::Dependency
84
+ requirement: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ~>
87
+ - !ruby/object:Gem::Version
88
+ version: '0'
89
+ name: simplecov
90
+ prerelease: false
91
+ type: :development
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ~>
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ~>
101
+ - !ruby/object:Gem::Version
102
+ version: '1.6'
103
+ name: bundler
104
+ prerelease: false
105
+ type: :development
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ~>
109
+ - !ruby/object:Gem::Version
110
+ version: '1.6'
111
+ - !ruby/object:Gem::Dependency
112
+ requirement: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ~>
115
+ - !ruby/object:Gem::Version
116
+ version: '10.0'
117
+ name: rake
118
+ prerelease: false
119
+ type: :development
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ~>
123
+ - !ruby/object:Gem::Version
124
+ version: '10.0'
125
+ description: AWS-specific transports for Schlepp
126
+ email:
127
+ - edward@carrel.org
128
+ executables:
129
+ - schlepp.rb
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - .gitignore
134
+ - .travis.yml
135
+ - CONTRIBUTING.md
136
+ - Gemfile
137
+ - LICENSE
138
+ - README.md
139
+ - Rakefile
140
+ - bin/schlepp.rb
141
+ - lib/schlepp-aws.rb
142
+ - lib/schlepp-aws/sinks/s3.rb
143
+ - lib/schlepp-aws/sinks/s3/chunker.rb
144
+ - lib/schlepp-aws/sinks/s3/env.rb
145
+ - lib/schlepp-aws/sinks/s3/sequencer.rb
146
+ - lib/schlepp-aws/sinks/s3/table_object.rb
147
+ - lib/schlepp-aws/sinks/s3/table_object/collection.rb
148
+ - lib/schlepp-aws/sinks/s3/table_object/writer.rb
149
+ - lib/schlepp-aws/table_object.rb
150
+ - lib/schlepp-aws/version.rb
151
+ - schlepp-aws.gemspec
152
+ - test/integration/sinks/s3_test.rb
153
+ - test/integration/test_helper.rb
154
+ - test/unit/schlepp-aws/sinks/s3/table_object_test.rb
155
+ - test/unit/test_helper.rb
156
+ homepage: https://github.com/azanar/schlepp-aws
157
+ licenses:
158
+ - MIT
159
+ metadata: {}
160
+ post_install_message:
161
+ rdoc_options: []
162
+ require_paths:
163
+ - lib
164
+ required_ruby_version: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - '>='
167
+ - !ruby/object:Gem::Version
168
+ version: '0'
169
+ required_rubygems_version: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '>'
172
+ - !ruby/object:Gem::Version
173
+ version: 1.3.1
174
+ requirements: []
175
+ rubyforge_project:
176
+ rubygems_version: 2.1.9
177
+ signing_key:
178
+ specification_version: 4
179
+ summary: AWS-specific transports for Schlepp
180
+ test_files:
181
+ - test/integration/sinks/s3_test.rb
182
+ - test/integration/test_helper.rb
183
+ - test/unit/schlepp-aws/sinks/s3/table_object_test.rb
184
+ - test/unit/test_helper.rb