tarantool 0.3.0.7 → 0.4.2.1
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 +2 -3
- data/README.md +90 -30
- data/Rakefile +6 -1
- data/lib/tarantool.rb +93 -18
- data/lib/tarantool/base_record.rb +97 -10
- data/lib/tarantool/block_db.rb +104 -6
- data/lib/tarantool/callback_db.rb +7 -0
- data/lib/tarantool/core-ext.rb +24 -8
- data/lib/tarantool/em_db.rb +189 -20
- data/lib/tarantool/exceptions.rb +4 -0
- data/lib/tarantool/fiber_db.rb +15 -1
- data/lib/tarantool/light_record.rb +17 -0
- data/lib/tarantool/query.rb +15 -9
- data/lib/tarantool/record/select.rb +21 -3
- data/lib/tarantool/request.rb +130 -43
- data/lib/tarantool/response.rb +70 -7
- data/lib/tarantool/serializers.rb +26 -5
- data/lib/tarantool/serializers/ber_array.rb +14 -0
- data/lib/tarantool/shards_support.rb +204 -0
- data/lib/tarantool/space_array.rb +38 -13
- data/lib/tarantool/space_hash.rb +49 -27
- data/lib/tarantool/util.rb +96 -10
- data/lib/tarantool/version.rb +2 -1
- data/test/helper.rb +154 -4
- data/test/{tarant/init.lua → init.lua} +0 -0
- data/test/run_all.rb +2 -2
- data/test/shared_record.rb +59 -0
- data/test/shared_replicated_shard.rb +1018 -0
- data/test/shared_reshard.rb +380 -0
- data/test/tarantool.cfg +2 -0
- data/test/test_light_record.rb +2 -0
- data/test/test_light_record_callback.rb +92 -0
- data/test/test_query_block.rb +1 -0
- data/test/test_query_fiber.rb +1 -0
- data/test/test_reshard_block.rb +7 -0
- data/test/test_reshard_fiber.rb +11 -0
- data/test/test_shard_replication_block.rb +7 -0
- data/test/test_shard_replication_fiber.rb +11 -0
- data/test/test_space_array_block.rb +1 -0
- data/test/test_space_array_callback.rb +50 -121
- data/test/test_space_array_callback_nodef.rb +39 -96
- data/test/test_space_array_fiber.rb +1 -0
- data/test/test_space_hash_block.rb +1 -0
- data/test/test_space_hash_fiber.rb +1 -0
- metadata +54 -17
- data/lib/tarantool/record.rb +0 -164
- data/test/box.pid +0 -1
- data/test/tarantool.log +0 -6
- data/test/tarantool_repl.cfg +0 -53
- data/test/test_record.rb +0 -88
- data/test/test_record_composite_pk.rb +0 -77
@@ -1,77 +0,0 @@
|
|
1
|
-
# -*- coding: utf-8 -*-
|
2
|
-
require File.expand_path('../helper.rb', __FILE__)
|
3
|
-
require 'tarantool/record'
|
4
|
-
require 'yajl'
|
5
|
-
require 'tarantool/serializers/bson'
|
6
|
-
|
7
|
-
describe Tarantool::Record do
|
8
|
-
DB = Tarantool.new(TCONFIG.merge(type: :block))
|
9
|
-
before{ truncate }
|
10
|
-
|
11
|
-
describe "primary key" do
|
12
|
-
before do
|
13
|
-
@primary_key_size = 2
|
14
|
-
end
|
15
|
-
|
16
|
-
let(:address_class) do
|
17
|
-
Class.new(Tarantool::Record) do
|
18
|
-
set_tarantool DB
|
19
|
-
set_space_no 2
|
20
|
-
|
21
|
-
def self.name # For naming
|
22
|
-
"Adress"
|
23
|
-
end
|
24
|
-
|
25
|
-
field :city, :string
|
26
|
-
field :street, :string
|
27
|
-
field :index, :integer
|
28
|
-
field :name, :string
|
29
|
-
field :citizens, :integer, default: 1
|
30
|
-
index :city, :street, primary: true
|
31
|
-
index :index
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
describe "composite primary key" do
|
36
|
-
|
37
|
-
before do
|
38
|
-
address_class.create city: "Moscow", street: "Leningradskii", index: 123, name: "Pedro"
|
39
|
-
address_class.create city: "Moscow", street: "Mohovaya", index: 123, name: "Pedro"
|
40
|
-
end
|
41
|
-
|
42
|
-
it "should return objects by second index" do
|
43
|
-
a1 = address_class.where(index: 123)
|
44
|
-
a1.all.size.must_equal 2
|
45
|
-
end
|
46
|
-
|
47
|
-
it "should work with increment" do
|
48
|
-
a1 = address_class.where(city: "Moscow", street: "Leningradskii").first
|
49
|
-
citizens = a1.citizens
|
50
|
-
a1.increment :citizens
|
51
|
-
a1.reload.citizens.must_equal(citizens+1)
|
52
|
-
end
|
53
|
-
|
54
|
-
it "should return all objects" do
|
55
|
-
a1 = address_class.where city: "Moscow"
|
56
|
-
a1.all.size.must_equal 2
|
57
|
-
a1.all.map(&:street).must_equal ["Leningradskii", "Mohovaya"]
|
58
|
-
end
|
59
|
-
|
60
|
-
it "should return right object" do
|
61
|
-
a1 = address_class.where city: "Moscow", street: "Leningradskii"
|
62
|
-
a1.first.street.must_equal "Leningradskii"
|
63
|
-
end
|
64
|
-
|
65
|
-
it "should destroy object" do
|
66
|
-
a1 = address_class.where city: "Moscow", street: "Leningradskii"
|
67
|
-
a1.first.destroy
|
68
|
-
end
|
69
|
-
|
70
|
-
it "should return id" do
|
71
|
-
a1 = address_class.where city: "Moscow", street: "Leningradskii"
|
72
|
-
a1.first.id.must_equal ["Moscow", "Leningradskii"]
|
73
|
-
end
|
74
|
-
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|