karma 0.1.4 → 0.1.5

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
  SHA256:
3
- metadata.gz: 2e31b4cc150b92d64ae5abd3b4f971d97851eb96e808d31e0c9e57878272d20e
4
- data.tar.gz: f168ddc0e1ebedbdb1bbb1d390d6610af5cb042a113747299d005d442c30dd5f
3
+ metadata.gz: 860c7072d383b2f0df2bd5081b684ec52eaee1fb2f64ad0f8b9a509d20a6d6a3
4
+ data.tar.gz: e613fda887fc1eaaed56e4f6c91b12fda7c5c3aa533397999e3fd4bdb492889a
5
5
  SHA512:
6
- metadata.gz: 4e8e0013f78f62f58078d8a94e2c77eb42a6b52f403456c4ee901ce00d5d89780cec27552beb6b98e3124313fc18d8e38fe40c98d21d7773baf9ea9cdf05ec13
7
- data.tar.gz: a5e5198aa070ba86d48c97933a9029e1f7eeb36156c04dfd44bda70736ff9352e849a29510718c2873421e2daa798a2b6cc76b0702cd1ae329156d6a8e666a75
6
+ metadata.gz: 6c919d5c03d9bff217f4120b11eef87504e9c2075d58f50690d8e0c6b50bbb861a6a8adae692b1b971b6335a1ceee5592798a79f4ea1aa16e8cd97e93a411f13
7
+ data.tar.gz: a97afe1720c288bbead08419fa2173417f5ea33532addfb072e4acfe85775151d8630ded3dc0ec4e73fb0c9973a1431dcc2a29ce38f2ccd249220481d7f93632
data/Gemfile.lock CHANGED
@@ -1,12 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- karma (0.1.4)
4
+ karma (0.1.5)
5
+ connection_pool (~> 2.4.1)
5
6
 
6
7
  GEM
7
8
  remote: https://rubygems.org/
8
9
  specs:
9
10
  ast (2.4.2)
11
+ connection_pool (2.4.1)
10
12
  json (2.6.3)
11
13
  language_server-protocol (3.17.0.3)
12
14
  minitest (5.18.1)
data/karma.gemspec CHANGED
@@ -29,7 +29,7 @@ Gem::Specification.new do |spec|
29
29
  spec.require_paths = ["lib"]
30
30
 
31
31
  # Uncomment to register a new dependency of your gem
32
- # spec.add_dependency "example-gem", "~> 1.0"
32
+ spec.add_dependency "connection_pool", "~> 2.4.1"
33
33
 
34
34
  # For more information and examples about making a new gem, check out our
35
35
  # guide at: https://bundler.io/guides/creating_gem.html
@@ -1,7 +1,6 @@
1
1
  module Karma
2
2
  class Connection
3
3
  def initialize
4
- @maxlen = 4096
5
4
  end
6
5
 
7
6
  def send_and_read(request)
@@ -33,8 +32,8 @@ module Karma
33
32
 
34
33
  def read
35
34
  connect do |conn|
36
- response = conn.recv(@maxlen)
37
35
  begin
36
+ response = conn.readline
38
37
  OpenStruct.new(JSON.parse(response))
39
38
  rescue => e
40
39
  return OpenStruct.new({
data/lib/karma/tree.rb CHANGED
@@ -1,8 +1,12 @@
1
+ require 'connection_pool'
2
+
1
3
  module Karma
2
4
  class Tree
3
5
  def initialize
4
- @connection = Connection.new
5
- @tree_name = nil
6
+ @connection = ConnectionPool.new(size: 5, timeout: 0.5) do
7
+ Connection.new
8
+ end
9
+ @tree_name = nil
6
10
  end
7
11
 
8
12
  def tree(name)
@@ -14,14 +18,20 @@ module Karma
14
18
  request = {
15
19
  command: 'ping'
16
20
  }
17
- @connection.send_and_read(request)
21
+
22
+ @connection.with do |conn|
23
+ conn.send_and_read(request)
24
+ end
18
25
  end
19
26
 
20
27
  def trees
21
28
  request = {
22
29
  command: 'trees'
23
30
  }
24
- @connection.send_and_read(request)
31
+
32
+ @connection.with do |conn|
33
+ conn.send_and_read(request)
34
+ end
25
35
  end
26
36
 
27
37
  def create(name)
@@ -29,7 +39,10 @@ module Karma
29
39
  command: 'create',
30
40
  tree_name: name
31
41
  }
32
- @connection.send_and_read(request)
42
+
43
+ @connection.with do |conn|
44
+ conn.send_and_read(request)
45
+ end
33
46
  end
34
47
 
35
48
  def drop(name)
@@ -37,7 +50,10 @@ module Karma
37
50
  command: 'drop',
38
51
  tree_name: name
39
52
  }
40
- @connection.send_and_read(request)
53
+
54
+ @connection.with do |conn|
55
+ conn.send_and_read(request)
56
+ end
41
57
  end
42
58
 
43
59
  def dump(name)
@@ -45,21 +61,30 @@ module Karma
45
61
  command: 'dump',
46
62
  tree_name: name
47
63
  }
48
- @connection.send_and_read(request)
64
+
65
+ @connection.with do |conn|
66
+ conn.send_and_read(request)
67
+ end
49
68
  end
50
69
 
51
70
  def dump_all
52
71
  request = {
53
72
  command: 'dump_all'
54
73
  }
55
- @connection.send_and_read(request)
74
+
75
+ @connection.with do |conn|
76
+ conn.send_and_read(request)
77
+ end
56
78
  end
57
79
 
58
80
  def dumps
59
81
  request = {
60
82
  command: 'dumps'
61
83
  }
62
- @connection.send_and_read(request)
84
+
85
+ @connection.with do |conn|
86
+ conn.send_and_read(request)
87
+ end
63
88
  end
64
89
 
65
90
  def load(name)
@@ -67,7 +92,10 @@ module Karma
67
92
  command: 'load',
68
93
  tree_name: name
69
94
  }
70
- @connection.send_and_read(request)
95
+
96
+ @connection.with do |conn|
97
+ conn.send_and_read(request)
98
+ end
71
99
  end
72
100
 
73
101
  def increment(**args)
@@ -75,7 +103,10 @@ module Karma
75
103
  command: 'increment',
76
104
  tree_name: @tree_name
77
105
  }.merge!(args)
78
- @connection.send_and_read(request)
106
+
107
+ @connection.with do |conn|
108
+ conn.send_and_read(request)
109
+ end
79
110
  end
80
111
 
81
112
  def decrement(**args)
@@ -83,7 +114,10 @@ module Karma
83
114
  command: 'decrement',
84
115
  tree_name: @tree_name
85
116
  }.merge!(args)
86
- @connection.send_and_read(request)
117
+
118
+ @connection.with do |conn|
119
+ conn.send_and_read(request)
120
+ end
87
121
  end
88
122
 
89
123
  def sum(**args)
@@ -91,7 +125,10 @@ module Karma
91
125
  command: 'sum',
92
126
  tree_name: @tree_name
93
127
  }.merge!(args)
94
- @connection.send_and_read(request)
128
+
129
+ @connection.with do |conn|
130
+ conn.send_and_read(request)
131
+ end
95
132
  end
96
133
 
97
134
  def find(**args)
@@ -99,7 +136,10 @@ module Karma
99
136
  command: 'find',
100
137
  tree_name: @tree_name
101
138
  }.merge!(args)
102
- @connection.send_and_read(request)
139
+
140
+ @connection.with do |conn|
141
+ conn.send_and_read(request)
142
+ end
103
143
  end
104
144
 
105
145
  def reset(**args)
@@ -107,7 +147,10 @@ module Karma
107
147
  command: 'reset',
108
148
  tree_name: @tree_name,
109
149
  }.merge!(args)
110
- @connection.send_and_read(request)
150
+
151
+ @connection.with do |conn|
152
+ conn.send_and_read(request)
153
+ end
111
154
  end
112
155
 
113
156
  def delete(**args)
@@ -115,7 +158,10 @@ module Karma
115
158
  command: 'delete',
116
159
  tree_name: @tree_name,
117
160
  }.merge!(args)
118
- @connection.send_and_read(request)
161
+
162
+ @connection.with do |conn|
163
+ conn.send_and_read(request)
164
+ end
119
165
  end
120
166
  end
121
167
  end
data/lib/karma/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Karma
4
- VERSION = "0.1.4"
4
+ VERSION = "0.1.5"
5
5
  end
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: karma
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sergey Fedorov
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-07-09 00:00:00.000000000 Z
12
- dependencies: []
11
+ date: 2023-07-16 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: connection_pool
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: 2.4.1
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 2.4.1
13
27
  description: Ruby client for the Karma key-counter database
14
28
  email:
15
29
  - creadone@gmail.com