with_connection 0.1.2 → 0.1.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.
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.1.
|
1
|
+
0.1.3
|
@@ -0,0 +1,25 @@
|
|
1
|
+
module ActiveSupport
|
2
|
+
module Cache
|
3
|
+
module Features
|
4
|
+
module AdapterMethods
|
5
|
+
# method required by ActiveRecord::ConnectionAdapters::ConnectionPool
|
6
|
+
def run_callbacks(method)
|
7
|
+
end
|
8
|
+
|
9
|
+
def verify!
|
10
|
+
end
|
11
|
+
|
12
|
+
def _run_checkin_callbacks
|
13
|
+
yield if block_given?
|
14
|
+
end
|
15
|
+
|
16
|
+
def requires_reloading?
|
17
|
+
true
|
18
|
+
end
|
19
|
+
|
20
|
+
def connected?
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,106 @@
|
|
1
|
+
module ActiveSupport
|
2
|
+
module Cache
|
3
|
+
class MemcacheConnectionPool
|
4
|
+
attr_reader :options
|
5
|
+
|
6
|
+
def initialize(options)
|
7
|
+
@options = options
|
8
|
+
end
|
9
|
+
|
10
|
+
def fetch(name, options=nil)
|
11
|
+
with_connection do
|
12
|
+
connection.fetch name, options
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def read(name, options=nil)
|
17
|
+
with_connection do
|
18
|
+
connection.read name, options
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def write(name, value, options=nil)
|
23
|
+
with_connection do
|
24
|
+
connection.write name, value, options
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def exist?(name, options=nil)
|
29
|
+
with_connection do
|
30
|
+
connection.exist? name, options
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
def delete(name, options=nil)
|
35
|
+
with_connection do
|
36
|
+
connection.delete name, options
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def read_multi(*names)
|
41
|
+
with_connection do
|
42
|
+
connection.read_multi *names
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def increment(name, amount = 1, options=nil)
|
47
|
+
with_connection do
|
48
|
+
connection.increment name, amount, options
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
def decrement(name, amount = 1, options=nil)
|
53
|
+
with_connection do
|
54
|
+
connection.decrement name, amount, options
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def reset(options={})
|
59
|
+
with_connection do
|
60
|
+
connection.reset options
|
61
|
+
end
|
62
|
+
end
|
63
|
+
alias clear reset
|
64
|
+
|
65
|
+
private
|
66
|
+
|
67
|
+
if defined?(EM)
|
68
|
+
def sync_connection_pool
|
69
|
+
@sync_connection_pool ||=
|
70
|
+
begin
|
71
|
+
spec = ActiveRecord::Base::ConnectionSpecification.new @options.dup, @options[:adapter_method]
|
72
|
+
WithConnection::ConnectionPool.new @options[:name], spec
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
def async_connection_pool
|
77
|
+
@async_connection_pool ||=
|
78
|
+
begin
|
79
|
+
spec = ActiveRecord::Base::ConnectionSpecification.new @options.merge(:async => true), (@options[:async_adapter_method] || @options[:adapter_method])
|
80
|
+
WithConnection::ConnectionPool.new @options[:name], spec
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
def connection_pool
|
85
|
+
EM.reactor_running? ? async_connection_pool : sync_connection_pool
|
86
|
+
end
|
87
|
+
else
|
88
|
+
def connection_pool
|
89
|
+
@connection_pool ||=
|
90
|
+
begin
|
91
|
+
spec = ActiveRecord::Base::ConnectionSpecification.new @options.dup, @options[:adapter_method]
|
92
|
+
WithConnection::ConnectionPool.new @options[:name], spec
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
def with_connection(&block)
|
98
|
+
connection_pool.with_connection(&block)
|
99
|
+
end
|
100
|
+
|
101
|
+
def connection
|
102
|
+
connection_pool.connection
|
103
|
+
end
|
104
|
+
end
|
105
|
+
end
|
106
|
+
end
|
data/with_connection.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "with_connection"
|
8
|
-
s.version = "0.1.
|
8
|
+
s.version = "0.1.3"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Doug Youch"]
|
@@ -26,6 +26,8 @@ Gem::Specification.new do |s|
|
|
26
26
|
"Rakefile",
|
27
27
|
"VERSION",
|
28
28
|
"lib/active_record/fiber_patches.rb",
|
29
|
+
"lib/active_support/cache/features/adapter_methods.rb",
|
30
|
+
"lib/active_support/cache/memcache_connection_pool.rb",
|
29
31
|
"lib/with_connection.rb",
|
30
32
|
"lib/with_connection/connection_pool.rb",
|
31
33
|
"with_connection.gemspec"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: with_connection
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -92,6 +92,8 @@ files:
|
|
92
92
|
- Rakefile
|
93
93
|
- VERSION
|
94
94
|
- lib/active_record/fiber_patches.rb
|
95
|
+
- lib/active_support/cache/features/adapter_methods.rb
|
96
|
+
- lib/active_support/cache/memcache_connection_pool.rb
|
95
97
|
- lib/with_connection.rb
|
96
98
|
- lib/with_connection/connection_pool.rb
|
97
99
|
- with_connection.gemspec
|
@@ -110,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
110
112
|
version: '0'
|
111
113
|
segments:
|
112
114
|
- 0
|
113
|
-
hash:
|
115
|
+
hash: 3405355780874312371
|
114
116
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
115
117
|
none: false
|
116
118
|
requirements:
|