hyperion-sql 0.0.1.alpha4 → 0.0.1.alpha5

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,3 +1,4 @@
1
+ require 'data_objects'
1
2
  require 'hyperion/api'
2
3
  require 'hyperion/sql/transaction'
3
4
 
@@ -7,14 +8,15 @@ module Hyperion
7
8
  def self.with_connection(url)
8
9
  connection = DataObjects::Connection.new(url)
9
10
  Thread.current[:connection] = connection
10
- yield
11
+ result = yield
11
12
  connection.close
12
13
  Thread.current[:connection] = nil
14
+ result
13
15
  end
14
16
 
15
17
  def self.with_connection_and_ds(url, name, opts={})
16
- with_connection(url) do
17
- API.with_datastore(name, opts) do
18
+ API.with_datastore(name, opts) do
19
+ with_connection(url) do
18
20
  yield
19
21
  end
20
22
  end
@@ -1,17 +1,11 @@
1
- require 'socket'
2
- require 'digest'
3
- require 'digest/sha2'
1
+ require 'uuidtools'
4
2
 
5
3
  module Hyperion
6
4
  module Sql
7
5
  class Transaction
8
6
 
9
- HOST = "#{Socket::gethostbyname(Socket::gethostname)[0]}" rescue "localhost"
10
-
11
7
  attr_reader :connection
12
8
 
13
- @@counter = 0
14
-
15
9
  def initialize(connection)
16
10
  @connection = connection
17
11
  end
@@ -49,7 +43,7 @@ module Hyperion
49
43
  end
50
44
 
51
45
  def new_savepoint_id
52
- Digest::SHA256.hexdigest("#{HOST}:#{$$}:#{Time.now.to_f}:#{@@counter += 1}")[0..-2]
46
+ UUIDTools::UUID.random_create.to_s.gsub(/-/, '')
53
47
  end
54
48
  end
55
49
  end
@@ -1,3 +1,6 @@
1
+ require 'hyperion/api'
2
+ require 'hyperion/sql'
3
+
1
4
  shared_examples_for 'Sql Transactions' do
2
5
  def write(query)
3
6
  command = Hyperion::Sql.connection.create_command(query)
@@ -43,4 +43,11 @@ describe Hyperion::Sql::Middleware do
43
43
  Thread.current[:transaction].should be_nil
44
44
  end
45
45
 
46
+ it 'returns the result' do
47
+ midd = middleware lambda { |env|
48
+ :return
49
+ }
50
+ midd.call(nil).should == :return
51
+ end
52
+
46
53
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hyperion-sql
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.alpha4
4
+ version: 0.0.1.alpha5
5
5
  prerelease: 6
6
6
  platform: ruby
7
7
  authors:
@@ -34,7 +34,7 @@ dependencies:
34
34
  requirements:
35
35
  - - '='
36
36
  - !ruby/object:Gem::Version
37
- version: 0.0.1.alpha4
37
+ version: 0.0.1.alpha5
38
38
  type: :runtime
39
39
  prerelease: false
40
40
  version_requirements: !ruby/object:Gem::Requirement
@@ -42,7 +42,23 @@ dependencies:
42
42
  requirements:
43
43
  - - '='
44
44
  - !ruby/object:Gem::Version
45
- version: 0.0.1.alpha4
45
+ version: 0.0.1.alpha5
46
+ - !ruby/object:Gem::Dependency
47
+ name: uuidtools
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - '='
52
+ - !ruby/object:Gem::Version
53
+ version: 2.1.3
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - '='
60
+ - !ruby/object:Gem::Version
61
+ version: 2.1.3
46
62
  - !ruby/object:Gem::Dependency
47
63
  name: do_sqlite3
48
64
  requirement: !ruby/object:Gem::Requirement