sessionm-cassandra_object 2.4.7 → 2.4.8

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.
@@ -1,3 +1,5 @@
1
+ require 'with_connection'
2
+
1
3
  module CassandraObject
2
4
  module AsyncConnection
3
5
  extend ActiveSupport::Concern
@@ -6,15 +8,6 @@ module CassandraObject
6
8
  class_attribute :connection_spec
7
9
 
8
10
  class_eval do
9
- @@fiber_connections = {}
10
- def self.fiber_connections
11
- @@fiber_connections
12
- end
13
-
14
- def fiber_connections
15
- self.class.fiber_connections
16
- end
17
-
18
11
  def self.new_event_machine_connection
19
12
  spec = connection_spec.dup
20
13
 
@@ -66,22 +59,36 @@ module CassandraObject
66
59
  end
67
60
 
68
61
  @@schema = nil
69
- def self.connection()
70
- @@fiber_connections[Fiber.current.object_id] ||=
62
+ @@connection_pool = nil
63
+ def self.connection_pool
64
+ @@connection_pool ||=
71
65
  begin
72
- if const_defined?(:EM) && EM.reactor_running?
73
- new_event_machine_connection
74
- else
75
- new_connection
66
+ adapter_method = Proc.new do
67
+ EM.reactor_running? ? self.new_event_machine_connection : self.new_connection
76
68
  end
69
+ spec = ActiveRecord::Base::ConnectionSpecification.new self.connection_spec, adapter_method
70
+ WithConnection::ConnectionPool.new "cassandra", spec
77
71
  end
78
72
  end
73
+ def connection_pool
74
+ self.class.connection_pool
75
+ end
76
+
77
+ def self.connection()
78
+ self.connection_pool.connection
79
+ end
79
80
  def self.connection?() !!connection end
80
81
 
82
+ def self.with_connection(&block)
83
+ self.connection_pool.with_connection(&block)
84
+ end
85
+
86
+ def with_connection(&block)
87
+ self.class.with_connection(&block)
88
+ end
89
+
81
90
  def self.disconnect!
82
- @@fiber_connections.delete(Fiber.current.object_id).tap { |conn|
83
- conn.disconnect! if conn
84
- }
91
+ self.connection_pool.disconnect!
85
92
  end
86
93
 
87
94
  def connection
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = 'sessionm-cassandra_object'
5
- s.version = '2.4.7'
5
+ s.version = '2.4.8'
6
6
  s.description = 'Cassandra ActiveModel'
7
7
  s.summary = 'Cassandra ActiveModel'
8
8
 
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 2
7
7
  - 4
8
- - 7
9
- version: 2.4.7
8
+ - 8
9
+ version: 2.4.8
10
10
  platform: ruby
11
11
  authors:
12
12
  - Michael Koziarski
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2013-06-03 00:00:00 -04:00
19
+ date: 2013-06-04 00:00:00 -04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency