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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e83ee62c3466aeb5e29e83d7b94ccb2ff22a433c
4
- data.tar.gz: a7f8bd4b6f0a1b81bb051f0906cac0e7df959434
3
+ metadata.gz: 5adacfabdf0b193a3f2c27314037eeacfbcd7eee
4
+ data.tar.gz: 8949722079c63501ebdca86ed9330943d258ec3f
5
5
  SHA512:
6
- metadata.gz: 3b3c2665434e1a82fa4875057c5262d8a171a1248b14130ebee3881e27e26a81163e3cb83fdb392b3789692691540887fc5b8d88dde105a7f5da67df2d6951e0
7
- data.tar.gz: edc468f7b263b766fce594625b4649e86723ec197e5be8575224c84e495eed79c009a5d50cd4a277faf22d92c7fb8728671ed20248ea469f7f3a133dde677553
6
+ metadata.gz: 3a612a9edaa18125412dafbc691f4ffe2161f1a3b6788732ff77cd95d988bb1a2b76186c727f37459e03bd726f8e696ce7f43b01db88d9df14d007663864476a
7
+ data.tar.gz: be8dc7f13f64f39bbe733d39a9f1a0c32f5642b6aa74b96f57f36b96fafa2bb322c2ecb727b0b10c598d92d7ec914ddfadda25e972fa56f23d0b5f3ba927dd7b
@@ -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.7"
24
+ spec.add_development_dependency "bundler", "~> 1.6"
25
25
  spec.add_development_dependency "rake", "~> 10.0"
26
26
  end
@@ -1,10 +1,31 @@
1
+ require 'logger'
2
+
1
3
  require "hydrogen/model"
2
4
  require "hydrogen/table_object"
3
- require "hydrogen/table_object/part"
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
- # Your code goes here...
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
@@ -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/table_object/base'
2
- require 'hydrogen/table_object/part/sequence'
1
+ require 'hydrogen/model'
3
2
 
4
3
  module Hydrogen
5
4
  class TableObject
6
- include Hydrogen::TableObject::Base
7
- def initialize(model)
8
- super
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
- module Collection
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 path
12
- "#{@model.name}/#{@model.name}"
12
+ def partition?
13
+ @model.partition?
13
14
  end
14
15
 
15
- def url
16
- raise NotImplementedError
16
+ def name
17
+ @model.name
17
18
  end
18
19
 
19
- class Builder
20
- def initialize(model, sequencer)
21
- @model = model
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
- klass.new(@model, @sequencer.parts)
36
- end
24
+ def url
25
+ @root
37
26
  end
38
27
  end
39
28
  end
@@ -0,0 +1,17 @@
1
+ module Hydrogen
2
+ class TableObject
3
+ module ModelAttributes
4
+ def partition?
5
+ @model.partition?
6
+ end
7
+
8
+ def name
9
+ @model.name
10
+ end
11
+
12
+ def columns
13
+ @model.columns
14
+ end
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module Hydrogen
2
- VERSION = "0.0.1-alpha.1"
2
+ VERSION = "0.0.1-alpha.3"
3
3
  end
@@ -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.path, "foo/foo.psv.gz"
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::Part.new(x, @model)
23
+ Hydrogen::TableObject.new(@model, URI("file://tmp/foo/bar.csv.gz"))
24
24
  end
25
25
 
26
- sequence = Hydrogen::TableObject::Part::Sequence.new(@model, parts)
26
+ sequence = Hydrogen::TableObject::Collection.new(@model, URI("file://tmp/foo"), parts)
27
27
 
28
- assert_equal sequence.path, "foo/foo"
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
- require File.expand_path('../../simplecov_helper', __FILE__)
4
- SimpleCov.start 'hydrogen'
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'
@@ -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(:name).returns(@mock_table_object_name)
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
@@ -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
- require File.expand_path('../../simplecov_helper', __FILE__)
7
- SimpleCov.start 'hydrogen'
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.1
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-09-18 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: test-unit
@@ -58,14 +58,14 @@ dependencies:
58
58
  requirements:
59
59
  - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '1.7'
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.7'
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/part.rb
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/base_test.rb
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/base_test.rb
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,18 +0,0 @@
1
- module Hydrogen
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
- @table_object.url
14
- end
15
- end
16
- end
17
- end
18
-
@@ -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
-