lotus-rethinkdb 0.2.0 → 0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7dd4f3f3377f4a03062e673ee934296589c1ff1e
4
- data.tar.gz: dcedbcd89c9aa0685e8d2a2c181006099c7057a2
3
+ metadata.gz: 2a1666d3a75f836b580a1b76e08d802766b0240b
4
+ data.tar.gz: a6e175bfe43389dc2a9fe7aef182db515645c1e5
5
5
  SHA512:
6
- metadata.gz: 643f2c1c4600ace72f144c2ff8788e27c21a069618e2cabede36988047278fb642e2bf3c1993a79deb473aaaddb36ab96b209c824c77a269d7db59ecd5bb1cce
7
- data.tar.gz: 20455fed86bdb86691d7568b06db69fb82f8228f925374ee6c90dc8e06a485695c44f5f790ef34c0d7ada708d7d6e8481d281bd4599e58643cc5859ecc05486e
6
+ metadata.gz: 74879f3560374914edb0d4b7e11724cd608cde44d817a45236e6e4028244a8974a078dec33651f9b5943f62dd0b8bdb6b736fce513feb017c7c48d8e0b37c536
7
+ data.tar.gz: 596545455271f3de443bdd47677f19190130d16d763c939bd2f09916e91af288be51544bb783f1bf5e8e505e7ce6dba0c1335382aeb2dc4d90adc1c3eef96060
@@ -42,11 +42,15 @@ module Lotus
42
42
  # @api private
43
43
  # @since 0.1.0
44
44
  def insert(entity)
45
+ serialized_entity = _serialize(entity)
46
+
45
47
  response = _run do
46
- super(_serialize(entity))
48
+ super(serialized_entity)
47
49
  end
48
50
 
49
- response['generated_keys'].first
51
+ serialized_entity[_identity] = response['generated_keys'].first
52
+
53
+ _deserialize([serialized_entity]).first
50
54
  end
51
55
 
52
56
  # Updates the document corresponding to the given entity.
@@ -276,6 +280,16 @@ module Lotus
276
280
  )
277
281
  end
278
282
 
283
+ # Name of the identity field in database.
284
+ #
285
+ # @return [Symbol] the identity name
286
+ #
287
+ # @api private
288
+ # @since 0.2.1
289
+ def _identity
290
+ @mapped_collection.identity
291
+ end
292
+
279
293
  # Returns a collection with the connection automatically included.
280
294
  #
281
295
  # @return [Lotus::Model::Adapters::Rethinkdb::Collection]
@@ -70,10 +70,9 @@ module Lotus
70
70
  # @api private
71
71
  # @since 0.1.0
72
72
  def create(collection, entity)
73
- entity.id = command(
74
- query(collection)
75
- ).create(entity)
76
- entity
73
+ command(
74
+ query(collection)
75
+ ).create(entity)
77
76
  end
78
77
 
79
78
  # Updates a document in the database corresponding to the given entity.
@@ -7,6 +7,6 @@ module Lotus
7
7
  # Defines the version
8
8
  #
9
9
  # @since 0.1.0
10
- VERSION = '0.2.0'
10
+ VERSION = '0.2.1'
11
11
  end
12
12
  end
@@ -62,8 +62,8 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
62
62
  user = TestUser.new
63
63
  device = TestDevice.new
64
64
 
65
- @adapter.create(:test_users, user)
66
- @adapter.create(:test_devices, device)
65
+ user = @adapter.create(:test_users, user)
66
+ device = @adapter.create(:test_devices, device)
67
67
 
68
68
  @adapter.all(:test_users).must_equal [user]
69
69
  @adapter.all(:test_devices).must_equal [device]
@@ -75,30 +75,30 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
75
75
  let(:entity) { TestUser.new }
76
76
 
77
77
  it 'stores the document and assigns an id' do
78
- @adapter.persist(collection, entity)
78
+ result = @adapter.persist(collection, entity)
79
79
 
80
- entity.id.wont_be_nil
80
+ result.id.wont_be_nil
81
81
 
82
- @adapter.find(collection, entity.id).must_equal entity
82
+ @adapter.find(collection, result.id).must_equal result
83
83
  end
84
84
  end
85
85
 
86
86
  describe 'when the given entity is persisted' do
87
87
  before do
88
- @adapter.create(collection, entity)
88
+ @entity = @adapter.create(collection, entity)
89
89
  end
90
90
 
91
91
  let(:entity) { TestUser.new }
92
92
 
93
93
  it 'updates the document and leaves untouched the id' do
94
- id = entity.id
94
+ id = @entity.id
95
95
  id.wont_be_nil
96
96
 
97
- entity.name = 'L'
98
- @adapter.persist(collection, entity)
97
+ @entity.name = 'L'
98
+ @adapter.persist(collection, @entity)
99
99
 
100
- entity.id.must_equal id
101
- @adapter.find(collection, entity.id).name.must_equal entity.name
100
+ @entity.id.must_equal id
101
+ @adapter.find(collection, @entity.id).name.must_equal @entity.name
102
102
  end
103
103
  end
104
104
  end
@@ -107,29 +107,29 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
107
107
  let(:entity) { TestUser.new }
108
108
 
109
109
  it 'stores the document and assigns an id' do
110
- @adapter.create(collection, entity)
110
+ result = @adapter.create(collection, entity)
111
111
 
112
- entity.id.wont_be_nil
112
+ result.id.wont_be_nil
113
113
 
114
- @adapter.find(collection, entity.id).must_equal entity
114
+ @adapter.find(collection, result.id).must_equal result
115
115
  end
116
116
  end
117
117
 
118
118
  describe '#update' do
119
119
  before do
120
- @adapter.create(collection, entity)
120
+ @entity = @adapter.create(collection, entity)
121
121
  end
122
122
 
123
123
  let(:entity) { TestUser.new(id: nil, name: 'L') }
124
124
 
125
125
  it 'stores the changes and leave the id untouched' do
126
- id = entity.id
126
+ id = @entity.id
127
127
 
128
- entity.name = 'MG'
129
- @adapter.update(collection, entity)
128
+ @entity.name = 'MG'
129
+ @adapter.update(collection, @entity)
130
130
 
131
- entity.id.must_equal id
132
- @adapter.find(collection, entity.id).name.must_equal entity.name
131
+ @entity.id.must_equal id
132
+ @adapter.find(collection, @entity.id).name.must_equal @entity.name
133
133
  end
134
134
  end
135
135
 
@@ -160,26 +160,26 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
160
160
  describe 'when some documents are persisted' do
161
161
  before do
162
162
  @adapter.clear(collection)
163
- @adapter.create(collection, entity)
163
+ @entity = @adapter.create(collection, entity)
164
164
  end
165
165
 
166
166
  let(:entity) { TestUser.new }
167
167
 
168
168
  it 'returns all of them' do
169
- @adapter.all(collection).must_equal [entity]
169
+ @adapter.all(collection).must_equal [@entity]
170
170
  end
171
171
  end
172
172
  end
173
173
 
174
174
  describe '#find' do
175
175
  before do
176
- @adapter.create(collection, entity)
176
+ @entity = @adapter.create(collection, entity)
177
177
  end
178
178
 
179
179
  let(:entity) { TestUser.new }
180
180
 
181
181
  it 'returns the document by id' do
182
- @adapter.find(collection, entity.id).must_equal entity
182
+ @adapter.find(collection, @entity.id).must_equal @entity
183
183
  end
184
184
 
185
185
  it 'returns nil when the document cannot be found' do
@@ -205,8 +205,8 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
205
205
  describe 'when some documents are persisted' do
206
206
  before do
207
207
  @adapter.clear(:test_users)
208
- @adapter.create(collection, entity1)
209
- @adapter.create(collection, entity2)
208
+ @entity1 = @adapter.create(collection, entity1)
209
+ @entity2 = @adapter.create(collection, entity2)
210
210
  end
211
211
 
212
212
  let(:entity1) { TestUser.new }
@@ -263,7 +263,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
263
263
  @adapter.clear(collection)
264
264
  end
265
265
 
266
- let(:user1) { TestUser.new(name: 'L', age: 32) }
266
+ let(:user1) { TestUser.new(name: 'L', age: '32') }
267
267
  let(:user2) { TestUser.new(name: 'MG', age: 31) }
268
268
 
269
269
  describe 'where' do
@@ -279,54 +279,54 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
279
279
 
280
280
  describe 'with a filled collection' do
281
281
  before do
282
- @adapter.create(collection, user1)
283
- @adapter.create(collection, user2)
282
+ @user1 = @adapter.create(collection, user1)
283
+ @user2 = @adapter.create(collection, user2)
284
284
  end
285
285
 
286
286
  it 'returns selected records' do
287
- id = user1.id
287
+ id = @user1.id
288
288
 
289
289
  query = proc do
290
290
  where(id: id)
291
291
  end
292
292
 
293
293
  result = @adapter.query(collection, &query).all
294
- result.must_equal [user1]
294
+ result.must_equal [@user1]
295
295
  end
296
296
 
297
297
  it 'can use multiple where conditions' do
298
- id = user1.id
299
- name = user1.name
298
+ id = @user1.id
299
+ name = @user1.name
300
300
 
301
301
  query = proc do
302
302
  where(id: id).where(name: name)
303
303
  end
304
304
 
305
305
  result = @adapter.query(collection, &query).all
306
- result.must_equal [user1]
306
+ result.must_equal [@user1]
307
307
  end
308
308
 
309
309
  it 'can use multiple where conditions with "and" alias' do
310
- id = user1.id
311
- name = user1.name
310
+ id = @user1.id
311
+ name = @user1.name
312
312
 
313
313
  query = proc do
314
314
  where(id: id).and(name: name)
315
315
  end
316
316
 
317
317
  result = @adapter.query(collection, &query).all
318
- result.must_equal [user1]
318
+ result.must_equal [@user1]
319
319
  end
320
320
 
321
321
  it 'can use a block' do
322
- age = user1.age
322
+ age = @user1.age
323
323
 
324
324
  query = proc do
325
325
  where { |user| user['age'].eq(age) }
326
326
  end
327
327
 
328
328
  result = @adapter.query(collection, &query).all
329
- result.must_equal [user1]
329
+ result.must_equal [@user1]
330
330
  end
331
331
 
332
332
  it 'raises an error if you dont specify condition or block' do
@@ -482,8 +482,8 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
482
482
 
483
483
  describe 'with a filled collection' do
484
484
  before do
485
- @adapter.create(collection, user1)
486
- @adapter.create(collection, user2)
485
+ @user1 = @adapter.create(collection, user1)
486
+ @user2 = @adapter.create(collection, user2)
487
487
  end
488
488
 
489
489
  it 'returns sorted records' do
@@ -492,7 +492,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
492
492
  end
493
493
 
494
494
  result = @adapter.query(collection, &query).all
495
- result.must_equal [user2, user1]
495
+ result.must_equal [@user2, @user1]
496
496
  end
497
497
 
498
498
  it 'returns sorted records, using multiple columns' do
@@ -501,7 +501,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
501
501
  end
502
502
 
503
503
  result = @adapter.query(collection, &query).all
504
- result.must_equal [user2, user1]
504
+ result.must_equal [@user2, @user1]
505
505
  end
506
506
 
507
507
  it 'returns sorted records, using multiple invokations' do
@@ -510,7 +510,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
510
510
  end
511
511
 
512
512
  result = @adapter.query(collection, &query).all
513
- result.must_equal [user1, user2]
513
+ result.must_equal [@user1, @user2]
514
514
  end
515
515
  end
516
516
  end
@@ -528,8 +528,8 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
528
528
 
529
529
  describe 'with a filled collection' do
530
530
  before do
531
- @adapter.create(collection, user1)
532
- @adapter.create(collection, user2)
531
+ @user1 = @adapter.create(collection, user1)
532
+ @user2 = @adapter.create(collection, user2)
533
533
  end
534
534
 
535
535
  it 'returns sorted records' do
@@ -538,7 +538,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
538
538
  end
539
539
 
540
540
  result = @adapter.query(collection, &query).all
541
- result.must_equal [user2, user1]
541
+ result.must_equal [@user2, @user1]
542
542
  end
543
543
  end
544
544
  end
@@ -556,8 +556,8 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
556
556
 
557
557
  describe 'with a filled collection' do
558
558
  before do
559
- @adapter.create(collection, user1)
560
- @adapter.create(collection, user2)
559
+ @user1 = @adapter.create(collection, user1)
560
+ @user2 = @adapter.create(collection, user2)
561
561
  end
562
562
 
563
563
  it 'returns reverse sorted records' do
@@ -566,7 +566,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
566
566
  end
567
567
 
568
568
  result = @adapter.query(collection, &query).all
569
- result.must_equal [user1, user2]
569
+ result.must_equal [@user1, @user2]
570
570
  end
571
571
 
572
572
  it 'returns sorted records, using multiple columns' do
@@ -575,7 +575,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
575
575
  end
576
576
 
577
577
  result = @adapter.query(collection, &query).all
578
- result.must_equal [user1, user2]
578
+ result.must_equal [@user1, @user2]
579
579
  end
580
580
 
581
581
  it 'returns sorted records, using multiple invokations' do
@@ -584,7 +584,7 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
584
584
  end
585
585
 
586
586
  result = @adapter.query(collection, &query).all
587
- result.must_equal [user2, user1]
587
+ result.must_equal [@user2, @user1]
588
588
  end
589
589
  end
590
590
  end
@@ -602,13 +602,13 @@ describe Lotus::Model::Adapters::RethinkdbAdapter do
602
602
 
603
603
  describe 'with a filled collection' do
604
604
  before do
605
- @adapter.create(collection, user1)
606
- @adapter.create(collection, user2)
607
- @adapter.create(collection, TestUser.new(name: user2.name))
605
+ @user1 = @adapter.create(collection, user1)
606
+ @user2 = @adapter.create(collection, user2)
607
+ @user3 = @adapter.create(collection, TestUser.new(name: user2.name))
608
608
  end
609
609
 
610
610
  it 'returns only the number of requested records' do
611
- name = user2.name
611
+ name = @user2.name
612
612
 
613
613
  query = proc do
614
614
  where(name: name).limit(1)
data/test/version_test.rb CHANGED
@@ -2,6 +2,6 @@ require 'test_helper'
2
2
 
3
3
  describe Lotus::Rethinkdb::VERSION do
4
4
  it 'returns current version' do
5
- Lotus::Rethinkdb::VERSION.must_equal '0.2.0'
5
+ Lotus::Rethinkdb::VERSION.must_equal '0.2.1'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lotus-rethinkdb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Angelo Ashmore
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-08 00:00:00.000000000 Z
11
+ date: 2015-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lotus-model
@@ -161,4 +161,3 @@ test_files:
161
161
  - test/model/adapters/rethinkdb_adapter_test.rb
162
162
  - test/test_helper.rb
163
163
  - test/version_test.rb
164
- has_rdoc: