tarantool16 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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