hydrogen 0.0.1.pre.alpha.1 → 0.0.1.pre.alpha.3
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.
- checksums.yaml +4 -4
- data/hydrogen.gemspec +1 -1
- data/lib/hydrogen.rb +25 -4
- data/lib/hydrogen/model.rb +2 -1
- data/lib/hydrogen/table_object.rb +24 -5
- data/lib/hydrogen/table_object/collection.rb +12 -23
- data/lib/hydrogen/table_object/model_attributes.rb +17 -0
- data/lib/hydrogen/version.rb +1 -1
- data/test/integration/hydrogen_test.rb +5 -5
- data/test/integration/test_helper.rb +11 -2
- data/test/unit/hydrogen/table_object/collection_test.rb +0 -0
- data/test/unit/hydrogen/table_object_test.rb +6 -2
- data/test/unit/test_helper.rb +9 -3
- metadata +7 -14
- data/lib/hydrogen/aws/table_object.rb +0 -18
- data/lib/hydrogen/table_object/base.rb +0 -24
- data/lib/hydrogen/table_object/part.rb +0 -19
- data/lib/hydrogen/table_object/part/sequence.rb +0 -46
- data/test/unit/hydrogen/table_object/base_test.rb +0 -32
- data/test/unit/hydrogen/table_object/part/sequence_test.rb +0 -22
- data/test/unit/hydrogen/table_object/part_test.rb +0 -31
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5adacfabdf0b193a3f2c27314037eeacfbcd7eee
|
4
|
+
data.tar.gz: 8949722079c63501ebdca86ed9330943d258ec3f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3a612a9edaa18125412dafbc691f4ffe2161f1a3b6788732ff77cd95d988bb1a2b76186c727f37459e03bd726f8e696ce7f43b01db88d9df14d007663864476a
|
7
|
+
data.tar.gz: be8dc7f13f64f39bbe733d39a9f1a0c32f5642b6aa74b96f57f36b96fafa2bb322c2ecb727b0b10c598d92d7ec914ddfadda25e972fa56f23d0b5f3ba927dd7b
|
data/hydrogen.gemspec
CHANGED
@@ -21,6 +21,6 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.add_development_dependency 'test-unit', "~> 3"
|
22
22
|
spec.add_development_dependency 'mocha', "~> 1"
|
23
23
|
spec.add_development_dependency 'simplecov', "~> 0"
|
24
|
-
spec.add_development_dependency "bundler", "~> 1.
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.6"
|
25
25
|
spec.add_development_dependency "rake", "~> 10.0"
|
26
26
|
end
|
data/lib/hydrogen.rb
CHANGED
@@ -1,10 +1,31 @@
|
|
1
|
+
require 'logger'
|
2
|
+
|
1
3
|
require "hydrogen/model"
|
2
4
|
require "hydrogen/table_object"
|
3
|
-
require "hydrogen/table_object/
|
4
|
-
require "hydrogen/table_object/part/sequence"
|
5
|
-
require "hydrogen/aws/table_object"
|
5
|
+
require "hydrogen/table_object/collection"
|
6
6
|
require "hydrogen/version"
|
7
7
|
|
8
8
|
module Hydrogen
|
9
|
-
|
9
|
+
module_function
|
10
|
+
def logger
|
11
|
+
return @logger if @logger
|
12
|
+
|
13
|
+
@logger = Logger.new(STDOUT)
|
14
|
+
@logger.formatter = proc { |severity, datetime, progname, msg|
|
15
|
+
"[#{datetime}, #{severity}] #{msg}\n"
|
16
|
+
}
|
17
|
+
@logger
|
18
|
+
end
|
19
|
+
|
20
|
+
def logger=(logger)
|
21
|
+
@logger = logger
|
22
|
+
end
|
23
|
+
|
24
|
+
def env
|
25
|
+
@_env ||= ActiveSupport::StringInquirer.new(ENV["QUASAR_ENV"] || ENV["RAILS_ENV"] || "development")
|
26
|
+
end
|
27
|
+
|
28
|
+
def env=(environment)
|
29
|
+
@_env = ActiveSupport::StringInquirer.new(environment)
|
30
|
+
end
|
10
31
|
end
|
data/lib/hydrogen/model.rb
CHANGED
@@ -3,10 +3,11 @@ module Hydrogen
|
|
3
3
|
def initialize(config)
|
4
4
|
@table_name = config[:table_name]
|
5
5
|
@columns = config[:columns]
|
6
|
+
@key = config[:key]
|
6
7
|
@partition = config[:partition] || false
|
7
8
|
end
|
8
9
|
|
9
|
-
attr_reader :table_name, :columns
|
10
|
+
attr_reader :table_name, :columns, :key
|
10
11
|
|
11
12
|
def name
|
12
13
|
@table_name
|
@@ -1,11 +1,30 @@
|
|
1
|
-
require 'hydrogen/
|
2
|
-
require 'hydrogen/table_object/part/sequence'
|
1
|
+
require 'hydrogen/model'
|
3
2
|
|
4
3
|
module Hydrogen
|
5
4
|
class TableObject
|
6
|
-
|
7
|
-
|
8
|
-
|
5
|
+
def initialize(model, uri)
|
6
|
+
unless model.kind_of?(Hydrogen::Model)
|
7
|
+
raise "#{model.inspect} is not a valid model to get thrown."
|
8
|
+
end
|
9
|
+
@model = model
|
10
|
+
@uri = uri
|
11
|
+
end
|
12
|
+
|
13
|
+
attr_reader :uri
|
14
|
+
alias_method :url, :uri
|
15
|
+
|
16
|
+
def columns
|
17
|
+
@model.columns
|
18
|
+
end
|
19
|
+
|
20
|
+
def name
|
21
|
+
@model.name
|
22
|
+
end
|
23
|
+
|
24
|
+
def path
|
25
|
+
Hydrogen.logger.warn("Hydrogen::TableObject#path is deprecated. Please use #url.")
|
26
|
+
Hydrogen.logger.debug("Called by #{caller.join("\n")}")
|
27
|
+
url
|
9
28
|
end
|
10
29
|
end
|
11
30
|
end
|
@@ -1,39 +1,28 @@
|
|
1
1
|
module Hydrogen
|
2
2
|
class TableObject
|
3
|
-
|
4
|
-
def initialize(model, parts)
|
3
|
+
class Collection
|
4
|
+
def initialize(model, root, parts)
|
5
5
|
@model = model
|
6
|
+
@root = root
|
6
7
|
@parts = parts
|
7
8
|
end
|
8
9
|
|
9
10
|
attr_reader :parts
|
10
11
|
|
11
|
-
def
|
12
|
-
|
12
|
+
def partition?
|
13
|
+
@model.partition?
|
13
14
|
end
|
14
15
|
|
15
|
-
def
|
16
|
-
|
16
|
+
def name
|
17
|
+
@model.name
|
17
18
|
end
|
18
19
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
@sequencer = sequencer
|
23
|
-
end
|
24
|
-
|
25
|
-
def write(data)
|
26
|
-
@sequencer.write(data)
|
27
|
-
end
|
28
|
-
|
29
|
-
def finalize
|
30
|
-
@sequencer.finalize
|
31
|
-
klass = @sequencer.collection
|
32
|
-
|
33
|
-
puts klass
|
20
|
+
def columns
|
21
|
+
@model.columns
|
22
|
+
end
|
34
23
|
|
35
|
-
|
36
|
-
|
24
|
+
def url
|
25
|
+
@root
|
37
26
|
end
|
38
27
|
end
|
39
28
|
end
|
data/lib/hydrogen/version.rb
CHANGED
@@ -13,18 +13,18 @@ class Hydrogen::IntegrationTest < Test::Unit::TestCase
|
|
13
13
|
|
14
14
|
end
|
15
15
|
test "singular" do
|
16
|
-
to = Hydrogen::TableObject.new(@model)
|
16
|
+
to = Hydrogen::TableObject.new(@model, URI("file://tmp/foo/bar.csv.gz"))
|
17
17
|
|
18
|
-
assert_equal to.
|
18
|
+
assert_equal to.url, URI("file://tmp/foo/bar.csv.gz")
|
19
19
|
end
|
20
20
|
|
21
21
|
test "parts" do
|
22
22
|
parts = 5.times.map do |x|
|
23
|
-
Hydrogen::TableObject
|
23
|
+
Hydrogen::TableObject.new(@model, URI("file://tmp/foo/bar.csv.gz"))
|
24
24
|
end
|
25
25
|
|
26
|
-
sequence = Hydrogen::TableObject::
|
26
|
+
sequence = Hydrogen::TableObject::Collection.new(@model, URI("file://tmp/foo"), parts)
|
27
27
|
|
28
|
-
assert_equal sequence.
|
28
|
+
assert_equal sequence.url, URI("file://tmp/foo")
|
29
29
|
end
|
30
30
|
end
|
@@ -1,7 +1,16 @@
|
|
1
|
+
require 'coveralls'
|
2
|
+
|
1
3
|
if ENV["ENABLE_SIMPLE_COV"]
|
2
4
|
require 'simplecov'
|
3
|
-
|
4
|
-
|
5
|
+
SimpleCov.start do
|
6
|
+
add_group "Lib", "lib"
|
7
|
+
add_filter "/test/"
|
8
|
+
command_name "Integration Tests"
|
9
|
+
formatter SimpleCov::Formatter::MultiFormatter[
|
10
|
+
SimpleCov::Formatter::HTMLFormatter,
|
11
|
+
Coveralls::SimpleCov::Formatter
|
12
|
+
]
|
13
|
+
end
|
5
14
|
end
|
6
15
|
|
7
16
|
require 'test/unit'
|
File without changes
|
@@ -8,8 +8,12 @@ class Hydrogen::TableObjectTest < Test::Unit::TestCase
|
|
8
8
|
@mock_table_object = mock
|
9
9
|
@mock_table_object_name = "mock_table_name"
|
10
10
|
|
11
|
-
@mock_table_object.expects(:
|
11
|
+
@mock_table_object.expects(:kind_of?).with(Hydrogen::Model).returns(true)
|
12
|
+
uri = URI("file:///tmp/foo")
|
12
13
|
|
13
|
-
@table_object = Hydrogen::TableObject.new(@mock_table_object)
|
14
|
+
@table_object = Hydrogen::TableObject.new(@mock_table_object, uri)
|
15
|
+
end
|
16
|
+
test "#url" do
|
17
|
+
@table_object.url
|
14
18
|
end
|
15
19
|
end
|
data/test/unit/test_helper.rb
CHANGED
@@ -1,10 +1,16 @@
|
|
1
1
|
require 'coveralls'
|
2
|
-
Coveralls.wear!
|
3
2
|
|
4
3
|
if ENV["ENABLE_SIMPLE_COV"]
|
5
4
|
require 'simplecov'
|
6
|
-
|
7
|
-
|
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
|
+
]
|
13
|
+
end
|
8
14
|
end
|
9
15
|
|
10
16
|
require 'test/unit'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hydrogen
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.1.pre.alpha.
|
4
|
+
version: 0.0.1.pre.alpha.3
|
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-
|
11
|
+
date: 2014-10-14 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: test-unit
|
@@ -58,14 +58,14 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '1.
|
61
|
+
version: '1.6'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '1.
|
68
|
+
version: '1.6'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rake
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -96,19 +96,14 @@ files:
|
|
96
96
|
- Rakefile
|
97
97
|
- hydrogen.gemspec
|
98
98
|
- lib/hydrogen.rb
|
99
|
-
- lib/hydrogen/aws/table_object.rb
|
100
99
|
- lib/hydrogen/model.rb
|
101
100
|
- lib/hydrogen/table_object.rb
|
102
|
-
- lib/hydrogen/table_object/base.rb
|
103
101
|
- lib/hydrogen/table_object/collection.rb
|
104
|
-
- lib/hydrogen/table_object/
|
105
|
-
- lib/hydrogen/table_object/part/sequence.rb
|
102
|
+
- lib/hydrogen/table_object/model_attributes.rb
|
106
103
|
- lib/hydrogen/version.rb
|
107
104
|
- test/integration/hydrogen_test.rb
|
108
105
|
- test/integration/test_helper.rb
|
109
|
-
- test/unit/hydrogen/table_object/
|
110
|
-
- test/unit/hydrogen/table_object/part/sequence_test.rb
|
111
|
-
- test/unit/hydrogen/table_object/part_test.rb
|
106
|
+
- test/unit/hydrogen/table_object/collection_test.rb
|
112
107
|
- test/unit/hydrogen/table_object_test.rb
|
113
108
|
- test/unit/test_helper.rb
|
114
109
|
homepage: https://github.com/azanar/hydrogen
|
@@ -138,8 +133,6 @@ summary: Common elements to the Quasar toolchain of gems
|
|
138
133
|
test_files:
|
139
134
|
- test/integration/hydrogen_test.rb
|
140
135
|
- test/integration/test_helper.rb
|
141
|
-
- test/unit/hydrogen/table_object/
|
142
|
-
- test/unit/hydrogen/table_object/part/sequence_test.rb
|
143
|
-
- test/unit/hydrogen/table_object/part_test.rb
|
136
|
+
- test/unit/hydrogen/table_object/collection_test.rb
|
144
137
|
- test/unit/hydrogen/table_object_test.rb
|
145
138
|
- test/unit/test_helper.rb
|
@@ -1,24 +0,0 @@
|
|
1
|
-
module Hydrogen
|
2
|
-
class TableObject
|
3
|
-
module Base
|
4
|
-
def initialize(model)
|
5
|
-
if model.kind_of?(Hydrogen::TableObject::Base)
|
6
|
-
raise
|
7
|
-
end
|
8
|
-
@model = model
|
9
|
-
end
|
10
|
-
|
11
|
-
def columns
|
12
|
-
@model.columns
|
13
|
-
end
|
14
|
-
|
15
|
-
def name
|
16
|
-
@model.name
|
17
|
-
end
|
18
|
-
|
19
|
-
def path
|
20
|
-
@path ||= "#{@model.name}/#{name}.psv.gz"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'hydrogen/table_object/base'
|
2
|
-
|
3
|
-
module Hydrogen
|
4
|
-
class TableObject
|
5
|
-
# A TableObject::Part behaves like a TableObject, but represent a part
|
6
|
-
# of a sequence of TableObjects
|
7
|
-
class Part
|
8
|
-
include Hydrogen::TableObject::Base
|
9
|
-
def initialize(chunk, model)
|
10
|
-
@chunk = chunk
|
11
|
-
super(model)
|
12
|
-
end
|
13
|
-
|
14
|
-
def name
|
15
|
-
"#{super}.#{@chunk}"
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
require 'hydrogen/table_object/part'
|
2
|
-
|
3
|
-
module Hydrogen
|
4
|
-
class TableObject
|
5
|
-
class Part
|
6
|
-
class Sequence
|
7
|
-
include Enumerable
|
8
|
-
def initialize(model, parts, opts = {})
|
9
|
-
unless model.kind_of?(Hydrogen::Model)
|
10
|
-
raise
|
11
|
-
end
|
12
|
-
@model = model
|
13
|
-
@parts = parts
|
14
|
-
end
|
15
|
-
|
16
|
-
def parts
|
17
|
-
@parts
|
18
|
-
end
|
19
|
-
|
20
|
-
def num_parts
|
21
|
-
@parts.length
|
22
|
-
end
|
23
|
-
|
24
|
-
def each
|
25
|
-
@parts.each {|p| yield p}
|
26
|
-
end
|
27
|
-
|
28
|
-
def name
|
29
|
-
@model.name
|
30
|
-
end
|
31
|
-
|
32
|
-
def columns
|
33
|
-
@model.columns
|
34
|
-
end
|
35
|
-
|
36
|
-
def partition?
|
37
|
-
@model.partition?
|
38
|
-
end
|
39
|
-
|
40
|
-
def path
|
41
|
-
"#{name}/#{name}"
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
end
|
46
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'hydrogen/table_object/base'
|
4
|
-
|
5
|
-
class Hydrogen::TableObject::Base::Test < Test::Unit::TestCase
|
6
|
-
include TestHelper
|
7
|
-
setup do
|
8
|
-
@mock_table_object = mock
|
9
|
-
@mock_table_object_name = "mock_table_name"
|
10
|
-
|
11
|
-
mock_table_object_klass = Class.new do
|
12
|
-
include Hydrogen::TableObject::Base
|
13
|
-
end
|
14
|
-
|
15
|
-
@table_object = mock_table_object_klass.new(@mock_table_object)
|
16
|
-
end
|
17
|
-
|
18
|
-
test "#path" do
|
19
|
-
@mock_table_object.expects(:name).twice.returns(@mock_table_object_name)
|
20
|
-
@table_object.path
|
21
|
-
end
|
22
|
-
|
23
|
-
test "#path should cache" do
|
24
|
-
@mock_table_object.expects(:name).twice.returns(@mock_table_object_name)
|
25
|
-
anterior = @table_object.path
|
26
|
-
|
27
|
-
posterior = @table_object.path
|
28
|
-
|
29
|
-
assert_equal anterior, posterior
|
30
|
-
end
|
31
|
-
end
|
32
|
-
|
@@ -1,22 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'hydrogen/table_object/part/sequence'
|
4
|
-
|
5
|
-
class Hydrogen::TableObject::Part::Sequence::Test < Test::Unit::TestCase
|
6
|
-
include TestHelper
|
7
|
-
setup do
|
8
|
-
@mock_table_object = mock
|
9
|
-
@mock_table_object_name = "mock_table_name"
|
10
|
-
|
11
|
-
@mock_parts = 5.times.map { mock }
|
12
|
-
|
13
|
-
@sequence = Hydrogen::TableObject::Part::Sequence.new(@mock_table_object, @mock_parts)
|
14
|
-
end
|
15
|
-
|
16
|
-
test "#parts" do
|
17
|
-
#@mock_table_object.expects(:name).twice.returns(@mock_table_object_name)
|
18
|
-
|
19
|
-
assert_equal @sequence.parts, @mock_parts
|
20
|
-
end
|
21
|
-
end
|
22
|
-
|
@@ -1,31 +0,0 @@
|
|
1
|
-
require File.expand_path('../../../test_helper', __FILE__)
|
2
|
-
|
3
|
-
require 'hydrogen/table_object/part'
|
4
|
-
|
5
|
-
class Hydrogen::TableObject::Part::Test < Test::Unit::TestCase
|
6
|
-
include TestHelper
|
7
|
-
setup do
|
8
|
-
@mock_table_object = mock
|
9
|
-
@mock_table_object_name = "mock_table_name"
|
10
|
-
|
11
|
-
@table_object = Hydrogen::TableObject::Part.new(1, @mock_table_object)
|
12
|
-
end
|
13
|
-
|
14
|
-
test "#path" do
|
15
|
-
@mock_table_object.expects(:name).twice.returns(@mock_table_object_name)
|
16
|
-
res = @table_object.path
|
17
|
-
|
18
|
-
assert_equal res, 'mock_table_name/mock_table_name.1.psv.gz'
|
19
|
-
end
|
20
|
-
|
21
|
-
test "#path should cache" do
|
22
|
-
@mock_table_object.expects(:name).twice.returns(@mock_table_object_name)
|
23
|
-
anterior = @table_object.path
|
24
|
-
|
25
|
-
posterior = @table_object.path
|
26
|
-
|
27
|
-
assert_equal anterior, posterior
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
|