datastax_rails 2.0.18 → 2.1.23
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 +4 -4
- data/config/solrconfig.xml.erb +7 -7
- data/lib/datastax_rails/associations/collection_association.rb +4 -4
- data/lib/datastax_rails/associations/has_many_association.rb +1 -1
- data/lib/datastax_rails/attribute_methods/dirty.rb +6 -0
- data/lib/datastax_rails/attribute_methods/primary_key.rb +9 -1
- data/lib/datastax_rails/attribute_methods/read.rb +2 -2
- data/lib/datastax_rails/attribute_methods/typecasting.rb +4 -7
- data/lib/datastax_rails/attribute_methods.rb +25 -0
- data/lib/datastax_rails/autosave_association.rb +3 -3
- data/lib/datastax_rails/base.rb +33 -11
- data/lib/datastax_rails/column.rb +25 -15
- data/lib/datastax_rails/connection.rb +1 -1
- data/lib/datastax_rails/cql/base.rb +31 -19
- data/lib/datastax_rails/cql/select.rb +2 -2
- data/lib/datastax_rails/dynamic_model.rb +1 -1
- data/lib/datastax_rails/errors.rb +3 -0
- data/lib/datastax_rails/instrumentation/controller_runtime.rb +52 -0
- data/lib/datastax_rails/instrumentation/log_subscriber.rb +92 -0
- data/lib/datastax_rails/instrumentation.rb +4 -0
- data/lib/datastax_rails/persistence.rb +49 -17
- data/lib/datastax_rails/railtie.rb +7 -0
- data/lib/datastax_rails/reflection.rb +16 -12
- data/lib/datastax_rails/relation/batches.rb +1 -1
- data/lib/datastax_rails/relation/finder_methods.rb +5 -5
- data/lib/datastax_rails/relation/modification_methods.rb +11 -26
- data/lib/datastax_rails/relation/search_methods.rb +10 -11
- data/lib/datastax_rails/relation.rb +81 -50
- data/lib/datastax_rails/scoping.rb +1 -1
- data/lib/datastax_rails/serialization.rb +10 -6
- data/lib/datastax_rails/serializers/xml_serializer.rb +3 -1
- data/lib/datastax_rails/tasks/ds.rake +25 -26
- data/lib/datastax_rails/timestamps.rb +1 -1
- data/lib/datastax_rails/types/dynamic_set.rb +4 -0
- data/lib/datastax_rails/version.rb +1 -1
- data/lib/datastax_rails/wide_storage_model.rb +3 -1
- data/lib/datastax_rails.rb +1 -0
- data/spec/datastax_rails/attribute_methods/read_spec.rb +33 -0
- data/spec/datastax_rails/attribute_methods/typecasting_spec.rb +25 -0
- data/spec/datastax_rails/base_spec.rb +1 -1
- data/spec/datastax_rails/callbacks_spec.rb +6 -0
- data/spec/datastax_rails/column_spec.rb +20 -0
- data/spec/datastax_rails/cql/base_spec.rb +1 -1
- data/spec/datastax_rails/cql/select_spec.rb +7 -1
- data/spec/datastax_rails/persistence_spec.rb +22 -3
- data/spec/datastax_rails/relation/finder_methods_spec.rb +13 -0
- data/spec/datastax_rails/relation/search_methods_spec.rb +37 -12
- data/spec/datastax_rails/serialization_spec.rb +17 -0
- data/spec/dummy/log/development.log +0 -24195
- data/spec/dummy/log/test.log +20 -15610
- data/spec/factories/hobbies.rb +1 -0
- data/spec/factories/jobs.rb +7 -0
- data/spec/factories/people.rb +1 -0
- data/spec/factories/person_roles.rb +7 -0
- data/spec/factories/roles.rb +6 -0
- data/spec/factories/uuid_keys.rb +6 -0
- data/spec/feature/associations_spec.rb +26 -0
- data/spec/support/models.rb +82 -0
- metadata +19 -4
- data/spec/dummy/log/production.log +0 -2
data/spec/factories/hobbies.rb
CHANGED
data/spec/factories/people.rb
CHANGED
@@ -0,0 +1,26 @@
|
|
1
|
+
# This spec is used for association tests that don't necessarily fit in a single type
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe DatastaxRails::Base do
|
5
|
+
context 'associations' do
|
6
|
+
context 'many-to-many joins' do
|
7
|
+
let(:person) { create(:person) }
|
8
|
+
let(:role) { create(:role) }
|
9
|
+
let(:role2) { create(:role, name: 'GUEST') }
|
10
|
+
|
11
|
+
before do
|
12
|
+
create(:person_role, person: person, role: role)
|
13
|
+
create(:person_role, person: person, role: role2)
|
14
|
+
Person.commit_solr
|
15
|
+
Role.commit_solr
|
16
|
+
PersonRole.commit_solr
|
17
|
+
DatastaxRails::Base.log_solr_queries = true
|
18
|
+
DatastaxRails::Base.log_cql_queries = true
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'collects the far-side records' do
|
22
|
+
expect(Role.find(person.person_roles.map(&:role_id)).compact).to eq([role, role2])
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
data/spec/support/models.rb
CHANGED
@@ -4,6 +4,7 @@ class Person < DatastaxRails::Base
|
|
4
4
|
has_one :job
|
5
5
|
has_many :cars, dependent: :destroy
|
6
6
|
has_and_belongs_to_many :hobbies
|
7
|
+
has_many :person_roles, dependent: :destroy
|
7
8
|
|
8
9
|
uuid :id
|
9
10
|
text :name, sortable: true
|
@@ -94,6 +95,87 @@ class Default < DatastaxRails::Base
|
|
94
95
|
boolean :bool, default: true
|
95
96
|
boolean :bool2, default: false
|
96
97
|
boolean :bool3
|
98
|
+
integer :version, default: 1
|
99
|
+
float :complexity, default: 0.0
|
100
|
+
uuid :previous_id, default: '00000000-0000-0000-0000-000000000000'
|
101
|
+
date :epoch, default: Date.parse('1970-01-01')
|
102
|
+
datetime :epoch2, default: Time.parse('1970-01-01 00:00:00')
|
103
|
+
map :m
|
104
|
+
map :m2, default: { 'test' => 'string' }
|
105
|
+
set :s
|
106
|
+
set :s2, default: ['unique string']
|
107
|
+
list :l
|
108
|
+
list :l2, default: ['ordered string']
|
109
|
+
end
|
110
|
+
|
111
|
+
class Role < DatastaxRails::Base
|
112
|
+
self.column_family = 'roles'
|
113
|
+
|
114
|
+
has_many :person_roles, dependent: :destroy
|
115
|
+
|
116
|
+
uuid :id
|
117
|
+
string :name
|
118
|
+
timestamps
|
119
|
+
end
|
120
|
+
|
121
|
+
class PersonRole < DatastaxRails::Base
|
122
|
+
self.column_family = 'person_roles'
|
123
|
+
|
124
|
+
belongs_to :person
|
125
|
+
belongs_to :role
|
126
|
+
|
127
|
+
uuid :id
|
128
|
+
uuid :person_id
|
129
|
+
uuid :role_id
|
130
|
+
timestamps
|
131
|
+
end
|
132
|
+
|
133
|
+
class CollectionOverride < DatastaxRails::Base
|
134
|
+
self.column_family = 'collection_overrides'
|
135
|
+
|
136
|
+
uuid :id
|
137
|
+
list :list1
|
138
|
+
list :list2
|
139
|
+
set :set1
|
140
|
+
set :set2
|
141
|
+
map :map1
|
142
|
+
map :map2
|
143
|
+
|
144
|
+
def list1
|
145
|
+
read_attribute(:list1).tap do |l|
|
146
|
+
l.each(&:upcase!)
|
147
|
+
end
|
148
|
+
end
|
149
|
+
|
150
|
+
def list2
|
151
|
+
read_attribute(:list2).map(&:upcase)
|
152
|
+
end
|
153
|
+
|
154
|
+
def set1
|
155
|
+
read_attribute(:set1).tap do |s|
|
156
|
+
s.each(&:upcase!)
|
157
|
+
end
|
158
|
+
end
|
159
|
+
|
160
|
+
def set2
|
161
|
+
read_attribute(:set2).map(&:upcase).to_set
|
162
|
+
end
|
163
|
+
|
164
|
+
def map1
|
165
|
+
read_attribute(:map1).tap do |m|
|
166
|
+
m.each { |k, v| m[k] = v.upcase }
|
167
|
+
end
|
168
|
+
end
|
169
|
+
|
170
|
+
def map2
|
171
|
+
ret = {}
|
172
|
+
read_attribute(map2).each do |k, v|
|
173
|
+
ret[k] = v.upcase
|
174
|
+
end
|
175
|
+
ret
|
176
|
+
end
|
177
|
+
|
178
|
+
timestamps
|
97
179
|
end
|
98
180
|
|
99
181
|
class CoreMetadata < DatastaxRails::DynamicModel
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datastax_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.23
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason M. Kusar
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-11-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -231,6 +231,9 @@ files:
|
|
231
231
|
- lib/datastax_rails/errors.rb
|
232
232
|
- lib/datastax_rails/grouped_collection.rb
|
233
233
|
- lib/datastax_rails/inheritance.rb
|
234
|
+
- lib/datastax_rails/instrumentation.rb
|
235
|
+
- lib/datastax_rails/instrumentation/controller_runtime.rb
|
236
|
+
- lib/datastax_rails/instrumentation/log_subscriber.rb
|
234
237
|
- lib/datastax_rails/locale/en.yml
|
235
238
|
- lib/datastax_rails/payload_model.rb
|
236
239
|
- lib/datastax_rails/persistence.rb
|
@@ -272,6 +275,7 @@ files:
|
|
272
275
|
- spec/datastax_rails/associations/collection_association_spec.rb
|
273
276
|
- spec/datastax_rails/associations/has_many_association_spec.rb
|
274
277
|
- spec/datastax_rails/associations_spec.rb
|
278
|
+
- spec/datastax_rails/attribute_methods/read_spec.rb
|
275
279
|
- spec/datastax_rails/attribute_methods/typecasting_spec.rb
|
276
280
|
- spec/datastax_rails/attribute_methods_spec.rb
|
277
281
|
- spec/datastax_rails/autosave_association_spec.rb
|
@@ -297,6 +301,7 @@ files:
|
|
297
301
|
- spec/datastax_rails/schema/migrator_spec.rb
|
298
302
|
- spec/datastax_rails/schema/solr_spec.rb
|
299
303
|
- spec/datastax_rails/scoping/default_spec.rb
|
304
|
+
- spec/datastax_rails/serialization_spec.rb
|
300
305
|
- spec/datastax_rails/types/dynamic_list_spec.rb
|
301
306
|
- spec/datastax_rails/types/dynamic_map_spec.rb
|
302
307
|
- spec/datastax_rails/types/dynamic_set_spec.rb
|
@@ -334,7 +339,6 @@ files:
|
|
334
339
|
- spec/dummy/db/test.sqlite3
|
335
340
|
- spec/dummy/ks/schema.json
|
336
341
|
- spec/dummy/log/development.log
|
337
|
-
- spec/dummy/log/production.log
|
338
342
|
- spec/dummy/log/test.log
|
339
343
|
- spec/dummy/public/404.html
|
340
344
|
- spec/dummy/public/422.html
|
@@ -343,7 +347,12 @@ files:
|
|
343
347
|
- spec/dummy/script/rails
|
344
348
|
- spec/factories/audit_logs.rb
|
345
349
|
- spec/factories/hobbies.rb
|
350
|
+
- spec/factories/jobs.rb
|
346
351
|
- spec/factories/people.rb
|
352
|
+
- spec/factories/person_roles.rb
|
353
|
+
- spec/factories/roles.rb
|
354
|
+
- spec/factories/uuid_keys.rb
|
355
|
+
- spec/feature/associations_spec.rb
|
347
356
|
- spec/feature/dynamic_fields_spec.rb
|
348
357
|
- spec/feature/overloaded_tables_spec.rb
|
349
358
|
- spec/spec.opts
|
@@ -392,7 +401,9 @@ test_files:
|
|
392
401
|
- spec/datastax_rails/schema/migrator_spec.rb
|
393
402
|
- spec/datastax_rails/schema/solr_spec.rb
|
394
403
|
- spec/datastax_rails/validations/uniqueness_spec.rb
|
404
|
+
- spec/datastax_rails/serialization_spec.rb
|
395
405
|
- spec/datastax_rails/attribute_methods/typecasting_spec.rb
|
406
|
+
- spec/datastax_rails/attribute_methods/read_spec.rb
|
396
407
|
- spec/datastax_rails/cql/delete_spec.rb
|
397
408
|
- spec/datastax_rails/cql/update_spec.rb
|
398
409
|
- spec/datastax_rails/cql/base_spec.rb
|
@@ -414,13 +425,13 @@ test_files:
|
|
414
425
|
- spec/datastax_rails/associations/belongs_to_association_spec.rb
|
415
426
|
- spec/datastax_rails/callbacks_spec.rb
|
416
427
|
- spec/feature/dynamic_fields_spec.rb
|
428
|
+
- spec/feature/associations_spec.rb
|
417
429
|
- spec/feature/overloaded_tables_spec.rb
|
418
430
|
- spec/spec.opts
|
419
431
|
- spec/datastax_rails_spec.rb
|
420
432
|
- spec/spec_helper.rb
|
421
433
|
- spec/dummy/log/test.log
|
422
434
|
- spec/dummy/log/development.log
|
423
|
-
- spec/dummy/log/production.log
|
424
435
|
- spec/dummy/Rakefile
|
425
436
|
- spec/dummy/public/favicon.ico
|
426
437
|
- spec/dummy/public/500.html
|
@@ -456,7 +467,11 @@ test_files:
|
|
456
467
|
- spec/dummy/app/assets/javascripts/application.js
|
457
468
|
- spec/dummy/ks/schema.json
|
458
469
|
- spec/dummy/db/test.sqlite3
|
470
|
+
- spec/factories/uuid_keys.rb
|
459
471
|
- spec/factories/hobbies.rb
|
460
472
|
- spec/factories/people.rb
|
461
473
|
- spec/factories/audit_logs.rb
|
474
|
+
- spec/factories/roles.rb
|
475
|
+
- spec/factories/person_roles.rb
|
476
|
+
- spec/factories/jobs.rb
|
462
477
|
has_rdoc:
|