tarantool16 0.0.6 → 0.0.7

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
  SHA1:
3
- metadata.gz: 34d90ff491fcf45653aa4038a3c2730f67071cf3
4
- data.tar.gz: 3352d2894b63e5db9407fd1c621752babfc08ff9
3
+ metadata.gz: af64fb29db82e36fb7a370dd4136cdff47398588
4
+ data.tar.gz: 6c8fcaf9af9c9fe7547f369aec65d2fdd4148a10
5
5
  SHA512:
6
- metadata.gz: 34046053a18655464b966e9ad50182c3f947de8c29d63fdca3d291ec364c53538697a97845f8d048a546a5bfc543416456d60b8721e24f287af08b73182de1d0
7
- data.tar.gz: a6ce2048a5ed0c7d48040015f2485ea295c57b07ba9bd8ca887fe0ac18c8e17dec2f4184e687fb9e196b58f92f0315eb2b9703430757adf353117c19f2569ea6
6
+ metadata.gz: 5190f23a23de008bfd24c08a2170418941f5d99af23dda05e9c166ea5b0599a3bd8dec79da6309a32dea7c33e94ee498148d1f4d776a8bfb213425769d166d06
7
+ data.tar.gz: f1b4bccd8d7402b88b3a30ebd9e403fb727586fed05e54051a977f1127db9fdd2391b053e7f8824ca1d941d4671caa49769fd6895e1ced7f8613b0c70216b068
data/README.md CHANGED
@@ -71,6 +71,7 @@ tar.update(:_space, {name: 'test'}, {format: [:=, [{name: :id, type: :num}, {nam
71
71
 
72
72
  ## Changelog
73
73
 
74
+ 0.0.7 - Implement EVAL, fix REPLACE
74
75
  0.0.6 - DumbConnection supports timeouts
75
76
 
76
77
  ## Contributing
@@ -76,6 +76,8 @@ module Tarantool16
76
76
  str.setbyte(2, sz>>16)
77
77
  str.setbyte(1, sz>>24)
78
78
  str
79
+ ensure
80
+ @p.clear
79
81
  end
80
82
 
81
83
  def format_authenticate(user, pass1, salt)
@@ -106,6 +108,7 @@ module Tarantool16
106
108
  end
107
109
  n
108
110
  rescue ::MessagePack::UnpackError, ::MessagePack::TypeError => e
111
+ @u.reset
109
112
  e
110
113
  end
111
114
 
@@ -137,6 +140,7 @@ module Tarantool16
137
140
  end
138
141
  Option.ok(sync, code, body)
139
142
  rescue ::MessagePack::UnpackError, ::MessagePack::TypeError => e
143
+ @u.reset
140
144
  Option.error(sync, e, nil)
141
145
  end
142
146
 
@@ -196,6 +200,12 @@ module Tarantool16
196
200
  send_request(REQUEST_TYPE_CALL, req, cb)
197
201
  end
198
202
 
203
+ def _eval(expr, args, cb)
204
+ req = {IPROTO_EXPR => expr,
205
+ IPROTO_TUPLE => args}
206
+ send_request(REQUEST_TYPE_EVAL, req, cb)
207
+ end
208
+
199
209
  REQ_EMPTY = {}.freeze
200
210
  def _ping(cb)
201
211
  send_request(REQUEST_TYPE_PING, REQ_EMPTY, cb)
@@ -24,6 +24,7 @@ module Tarantool16
24
24
  written = true
25
25
  response = _read_response
26
26
  rescue ::Errno::EPIPE, Retry => e
27
+ @socket.close rescue nil
27
28
  @socket = nil
28
29
  if !written && @retry && @reconnect
29
30
  @retry = false
@@ -10,6 +10,7 @@ module Tarantool16
10
10
  IPROTO_TUPLE = 0x21
11
11
  IPROTO_FUNCTION_NAME = 0x22
12
12
  IPROTO_USER_NAME = 0x23
13
+ IPROTO_EXPR = 0x27
13
14
  IPROTO_DATA = 0x30
14
15
  IPROTO_ERROR = 0x31
15
16
 
@@ -24,6 +25,7 @@ module Tarantool16
24
25
  REQUEST_TYPE_DELETE = 5
25
26
  REQUEST_TYPE_CALL = 6
26
27
  REQUEST_TYPE_AUTHENTICATE = 7
28
+ REQUEST_TYPE_EVAL = 8
27
29
  REQUEST_TYPE_ERROR = 1 << 15
28
30
 
29
31
 
@@ -140,7 +140,7 @@ module Tarantool16
140
140
  _with_space(sno, cb) do |sp|
141
141
  _tuple = tuple.is_a?(Hash) ? sp.map_tuple(tuple) : tuple
142
142
  _cb = need_hash ? sp.wrap_cb(cb) : cb
143
- conn.insert(sp.sid, _tuple, _cb)
143
+ conn._replace(sp.sid, _tuple, _cb)
144
144
  end
145
145
  end
146
146
 
@@ -197,6 +197,10 @@ module Tarantool16
197
197
  conn._call(name, args, cb)
198
198
  end
199
199
 
200
+ def _eval(expr, args, cb)
201
+ conn._eval(expr, args, cb)
202
+ end
203
+
200
204
  def _ping(cb)
201
205
  conn._ping(cb)
202
206
  end
@@ -63,6 +63,10 @@ module Tarantool16
63
63
  _call(name, args, RETURN_OR_RAISE)
64
64
  end
65
65
 
66
+ def eval(expr, args)
67
+ _eval(expr, args, RETURN_OR_RAISE)
68
+ end
69
+
66
70
  def _synchronized
67
71
  yield
68
72
  end
@@ -1,3 +1,3 @@
1
1
  module Tarantool16
2
- VERSION = "0.0.6"
2
+ VERSION = "0.0.7"
3
3
  end
data/tarantool16.gemspec CHANGED
@@ -21,5 +21,5 @@ Gem::Specification.new do |spec|
21
21
  spec.add_development_dependency "bundler", "~> 1.7"
22
22
  spec.add_development_dependency "rake", "~> 10.0"
23
23
 
24
- spec.add_dependency "msgpack", ">= 0.5.9"
24
+ spec.add_dependency "msgpack", ">= 0.5.11"
25
25
  end
data/test/test_dumb.rb CHANGED
@@ -64,6 +64,10 @@ describe 'DumbConnection' do
64
64
  db.delete(:test, "world", index: 1).must_equal [r2]
65
65
  end
66
66
 
67
+ it "should eval" do
68
+ db.eval("local a, b = ... ; return a + b", [1, 2]).must_equal [3]
69
+ end
70
+
67
71
  describe "with field names" do
68
72
  before {
69
73
  db.define_fields(:test, [[:id, :int], [:name, :str], [:point, :array], [:count, :int]])
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tarantool16
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sokolov Yura aka funny_falcon
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-03 00:00:00.000000000 Z
11
+ date: 2015-08-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 0.5.9
47
+ version: 0.5.11
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 0.5.9
54
+ version: 0.5.11
55
55
  description: adapter for Tarantool 1.6
56
56
  email:
57
57
  - funny.falcon@gmail.com