tarantool 0.4.4.0 → 0.5.0

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/Gemfile CHANGED
@@ -10,6 +10,9 @@ group :test do
10
10
  gem "yajl-ruby"
11
11
  gem "bson"
12
12
  gem "bson_ext"
13
+ gem "rake"
14
+ gem "kgio"
15
+ gem "eventmachine"
13
16
  end
14
17
  # Specify your gem's dependencies in tarantool.gemspec
15
18
  gemspec name: 'tarantool'
@@ -133,7 +133,7 @@ unpack_tuples(VALUE self, VALUE data, VALUE fields, VALUE _tail, VALUE tuples_af
133
133
  }
134
134
  end = str + 8 + *(uint32_t*)str;
135
135
  tuplen = *(uint32_t*)(str+4);
136
- tuple = rb_ary_new2(fieldsn);
136
+ tuple = rb_ary_new2(tuplen);
137
137
  str += 8;
138
138
  len -= 8;
139
139
  for(i = 0; i < tuplen; i++) {
@@ -56,13 +56,14 @@ module Tarantool
56
56
 
57
57
  def auto_shard
58
58
  params = @params.dup
59
- params.delte :shard
59
+ params.delete :shard
60
60
  self.class.new(@record, params)
61
61
  end
62
62
 
63
63
  def all
64
64
  results.dup
65
65
  end
66
+ alias to_a all
66
67
 
67
68
  def first
68
69
  space.select(@params[:where], @params[:offset] || 0, 1).first
@@ -253,9 +253,9 @@ module Tarantool
253
253
  op = operation[1]
254
254
  op = UPDATE_OPS[op] unless Integer === op
255
255
  raise ArgumentError, "Unknown operation #{operation[1]}" unless op
256
- ::BinUtils.append_int32_int8_le!(body, field_no, op)
257
256
  case op
258
257
  when 0
258
+ ::BinUtils.append_int32_int8_le!(body, field_no, op)
259
259
  if (type = fields[field_no]).nil?
260
260
  if operation.size == 4 && Symbol === operation.last
261
261
  *operation, type = operation
@@ -268,11 +268,13 @@ module Tarantool
268
268
  end
269
269
  pack_field(body, type, operation[2])
270
270
  when 1, 2, 3, 4
271
+ ::BinUtils.append_int32_int8_le!(body, field_no, op)
271
272
  unless operation.size == 3 && !operation[2].nil?
272
273
  raise ArgumentError, "wrong arguments for integer operation #{operation.inspect}"
273
274
  end
274
275
  pack_field(body, :sint, operation[2])
275
276
  when 5
277
+ ::BinUtils.append_int32_int8_le!(body, field_no, op)
276
278
  unless operation.size == 5 && !operation[2].nil? && !operation[3].nil?
277
279
  raise ArgumentError, "wrong arguments for slice operation #{operation.inspect}"
278
280
  end
@@ -283,9 +285,10 @@ module Tarantool
283
285
  ::BinUtils.append_bersize_int32_le!(body, operation[3].to_i)
284
286
  ::BinUtils.append_bersize_string!(body, str.to_s)
285
287
  when 7
286
- old_field_no = field_no +
288
+ old_field_no = field_no +
287
289
  (inserted ||= []).count{|i| i <= field_no} -
288
290
  (deleted ||= []).count{|i| i <= field_no}
291
+ ::BinUtils.append_int32_int8_le!(body, old_field_no, op)
289
292
  inserted << field_no
290
293
  if (type = fields[old_field_no]).nil?
291
294
  if operation.size == 4 && Symbol === operation.last
@@ -299,6 +302,11 @@ module Tarantool
299
302
  end
300
303
  pack_field(body, type, operation[2])
301
304
  when 6
305
+ old_field_no = field_no +
306
+ (inserted ||= []).count{|i| i <= field_no} -
307
+ (deleted ||= []).count{|i| i <= field_no}
308
+ ::BinUtils.append_int32_int8_le!(body, old_field_no, op)
309
+ deleted << field_no
302
310
  body << ZERO
303
311
  # pass
304
312
  end
@@ -1,4 +1,4 @@
1
1
  module Tarantool
2
- VERSION = "0.4.4.0"
3
- RECORD_VERSION = "0.4.2.1"
2
+ VERSION = "0.5.0"
3
+ RECORD_VERSION = "0.4.3"
4
4
  end
data/test/helper.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'minitest/spec'
2
2
  require 'rr'
3
3
  require 'fileutils'
4
+ require 'eventmachine'
4
5
 
5
6
  require 'tarantool'
6
7
 
@@ -184,9 +185,10 @@ HSPACE3 = {
184
185
 
185
186
  module Helper
186
187
  def tarantool_pipe
187
- $tarantool_pipe ||= begin
188
+ #$tarantool_pipe ||= begin
189
+ begin
188
190
  cnf = {port: 33013, admin: 33015} #TCONFIG
189
- tarant = %W{tarantool -p #{cnf[:port]} -m #{cnf[:admin]}}
191
+ tarant = %W{tarantool -p #{cnf[:port]} -a #{cnf[:admin]}}
190
192
  tarant = [{}, *tarant, :err => [:child, :out]]
191
193
  IO.popen(tarant, 'w+').tap{|p| p.sync = true}
192
194
  end
@@ -194,10 +196,12 @@ module Helper
194
196
 
195
197
  def exec_tarantool(cmd, lines_to_read)
196
198
  cmd = cmd.gsub(/^\s+/, '')
197
- tarantool_pipe.puts(cmd)
198
- tarantool_pipe.flush
199
+ pipe = tarantool_pipe
200
+ pipe.puts(cmd)
201
+ pipe.flush
199
202
  lines_to_read.times do
200
- tarantool_pipe.gets
203
+ #STDERR.puts pipe.gets
204
+ pipe.gets
201
205
  end
202
206
  end
203
207
 
@@ -284,14 +288,11 @@ module Helper
284
288
  yield
285
289
  end
286
290
 
287
- def mock(u, meth, &block)
288
- u.define_singleton_method(meth, &block)
289
- end
290
291
  end
291
292
 
292
293
  class MiniTest::Unit::TestCase
293
294
  include ::Helper
294
- include RR::Adapters::MiniTest
295
+ include ::RR::Adapters::MiniTest
295
296
  end
296
297
 
297
298
  class << MiniTest::Spec
metadata CHANGED
@@ -1,8 +1,8 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tarantool
3
3
  version: !ruby/object:Gem::Version
4
+ version: 0.5.0
4
5
  prerelease:
5
- version: 0.4.4.0
6
6
  platform: ruby
7
7
  authors:
8
8
  - Andrew Rudenko
@@ -10,72 +10,72 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2014-03-24 00:00:00.000000000 Z
13
+ date: 2014-03-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
- type: :runtime
17
16
  requirement: !ruby/object:Gem::Requirement
18
- none: false
19
17
  requirements:
20
18
  - - ! '>='
21
19
  - !ruby/object:Gem::Version
22
20
  version: 0.3.8
23
- prerelease: false
24
- version_requirements: !ruby/object:Gem::Requirement
25
21
  none: false
22
+ version_requirements: !ruby/object:Gem::Requirement
26
23
  requirements:
27
24
  - - ! '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 0.3.8
27
+ none: false
28
+ prerelease: false
30
29
  name: iproto
31
- - !ruby/object:Gem::Dependency
32
30
  type: :runtime
31
+ - !ruby/object:Gem::Dependency
33
32
  requirement: !ruby/object:Gem::Requirement
34
- none: false
35
33
  requirements:
36
34
  - - ! '>='
37
35
  - !ruby/object:Gem::Version
38
36
  version: 0.1.1
39
- prerelease: false
40
- version_requirements: !ruby/object:Gem::Requirement
41
37
  none: false
38
+ version_requirements: !ruby/object:Gem::Requirement
42
39
  requirements:
43
40
  - - ! '>='
44
41
  - !ruby/object:Gem::Version
45
42
  version: 0.1.1
43
+ none: false
44
+ prerelease: false
46
45
  name: murmurhash3
47
- - !ruby/object:Gem::Dependency
48
46
  type: :runtime
47
+ - !ruby/object:Gem::Dependency
49
48
  requirement: !ruby/object:Gem::Requirement
50
- none: false
51
49
  requirements:
52
50
  - - ! '>='
53
51
  - !ruby/object:Gem::Version
54
52
  version: 0.0.2
55
- prerelease: false
56
- version_requirements: !ruby/object:Gem::Requirement
57
53
  none: false
54
+ version_requirements: !ruby/object:Gem::Requirement
58
55
  requirements:
59
56
  - - ! '>='
60
57
  - !ruby/object:Gem::Version
61
58
  version: 0.0.2
59
+ none: false
60
+ prerelease: false
62
61
  name: sumbur
63
- - !ruby/object:Gem::Dependency
64
62
  type: :runtime
63
+ - !ruby/object:Gem::Dependency
65
64
  requirement: !ruby/object:Gem::Requirement
66
- none: false
67
65
  requirements:
68
66
  - - ~>
69
67
  - !ruby/object:Gem::Version
70
68
  version: 0.0.3
71
- prerelease: false
72
- version_requirements: !ruby/object:Gem::Requirement
73
69
  none: false
70
+ version_requirements: !ruby/object:Gem::Requirement
74
71
  requirements:
75
72
  - - ~>
76
73
  - !ruby/object:Gem::Version
77
74
  version: 0.0.3
75
+ none: false
76
+ prerelease: false
78
77
  name: bin_utils
78
+ type: :runtime
79
79
  description: Tarantool KV-storage client.
80
80
  email:
81
81
  - ceo@prepor.ru
@@ -150,17 +150,23 @@ require_paths:
150
150
  - lib
151
151
  - ext
152
152
  required_ruby_version: !ruby/object:Gem::Requirement
153
- none: false
154
153
  requirements:
155
154
  - - ! '>='
156
155
  - !ruby/object:Gem::Version
156
+ hash: -252277814378406513
157
157
  version: '0'
158
- required_rubygems_version: !ruby/object:Gem::Requirement
158
+ segments:
159
+ - 0
159
160
  none: false
161
+ required_rubygems_version: !ruby/object:Gem::Requirement
160
162
  requirements:
161
163
  - - ! '>='
162
164
  - !ruby/object:Gem::Version
165
+ hash: -252277814378406513
163
166
  version: '0'
167
+ segments:
168
+ - 0
169
+ none: false
164
170
  requirements: []
165
171
  rubyforge_project:
166
172
  rubygems_version: 1.8.23