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:
|