lib/karma/tree.rb in karma-0.1.4 vs lib/karma/tree.rb in karma-0.1.5
- old
+ new
@@ -1,10 +1,14 @@
+require 'connection_pool'
+
module Karma
class Tree
def initialize
- @connection = Connection.new
- @tree_name = nil
+ @connection = ConnectionPool.new(size: 5, timeout: 0.5) do
+ Connection.new
+ end
+ @tree_name = nil
end
def tree(name)
@tree_name = name
self
@@ -12,110 +16,152 @@
def ping
request = {
command: 'ping'
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def trees
request = {
command: 'trees'
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def create(name)
request = {
command: 'create',
tree_name: name
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def drop(name)
request = {
command: 'drop',
tree_name: name
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def dump(name)
request = {
command: 'dump',
tree_name: name
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def dump_all
request = {
command: 'dump_all'
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def dumps
request = {
command: 'dumps'
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def load(name)
request = {
command: 'load',
tree_name: name
}
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def increment(**args)
request = {
command: 'increment',
tree_name: @tree_name
}.merge!(args)
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def decrement(**args)
request = {
command: 'decrement',
tree_name: @tree_name
}.merge!(args)
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def sum(**args)
request = {
command: 'sum',
tree_name: @tree_name
}.merge!(args)
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def find(**args)
request = {
command: 'find',
tree_name: @tree_name
}.merge!(args)
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def reset(**args)
request = {
command: 'reset',
tree_name: @tree_name,
}.merge!(args)
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
def delete(**args)
request = {
command: 'delete',
tree_name: @tree_name,
}.merge!(args)
- @connection.send_and_read(request)
+
+ @connection.with do |conn|
+ conn.send_and_read(request)
+ end
end
end
end
\ No newline at end of file