datamappify 0.70.0.beta1 → 0.70.0.beta2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +55 -3
- data/datamappify.gemspec +4 -2
- data/lib/datamappify/data/criteria/active_record/limit.rb +7 -1
- data/lib/datamappify/data/criteria/active_record/save.rb +7 -1
- data/lib/datamappify/data/criteria/common.rb +4 -4
- data/lib/datamappify/data/criteria/relational/count.rb +4 -2
- data/lib/datamappify/data/criteria/sequel/limit.rb +4 -1
- data/lib/datamappify/data/criteria/sequel/save.rb +7 -1
- data/lib/datamappify/entity/association.rb +11 -0
- data/lib/datamappify/entity/association/validation.rb +1 -1
- data/lib/datamappify/entity/compatibility/active_record.rb +13 -0
- data/lib/datamappify/entity/compatibility/association/active_record.rb +19 -3
- data/lib/datamappify/entity/composable/attributes.rb +1 -1
- data/lib/datamappify/extensions/kaminari/collection_methods.rb +16 -0
- data/lib/datamappify/extensions/kaminari/criteria_processor.rb +36 -0
- data/lib/datamappify/lazy/attributes_handler.rb +2 -2
- data/lib/datamappify/repository.rb +9 -0
- data/lib/datamappify/repository/query_method/callbacks.rb +33 -6
- data/lib/datamappify/repository/query_method/count.rb +3 -1
- data/lib/datamappify/repository/query_method/method.rb +8 -5
- data/lib/datamappify/repository/query_method/method/reference_handler.rb +27 -4
- data/lib/datamappify/repository/query_method/method/source_attributes_walker.rb +3 -1
- data/lib/datamappify/repository/query_method/save.rb +1 -6
- data/lib/datamappify/repository/query_method/update.rb +4 -0
- data/lib/datamappify/repository/query_methods.rb +42 -11
- data/lib/datamappify/repository/unit_of_work/persistent_states/object.rb +2 -2
- data/lib/datamappify/version.rb +1 -1
- data/spec/extensions/kaminari_spec.rb +27 -0
- data/spec/repository/associations/has_many_spec.rb +9 -42
- data/spec/repository/associations/has_one_spec.rb +185 -0
- data/spec/repository/callbacks_spec.rb +55 -14
- data/spec/repository/dirty_tracking_spec.rb +0 -1
- data/spec/repository/finders/criteria_spec.rb +1 -0
- data/spec/repository/persistence_spec.rb +21 -0
- data/spec/repository_spec.rb +18 -2
- data/spec/spec_helper.rb +0 -2
- data/spec/support/entities/group.rb +2 -1
- data/spec/support/repositories/active_record/group_repository.rb +2 -1
- data/spec/support/repositories/hero_user_repository.rb +12 -0
- data/spec/support/repositories/sequel/group_repository.rb +2 -1
- data/spec/support/shared/contexts.rb +1 -1
- data/spec/support/shared/examples/data/association_data_records.rb +28 -0
- data/spec/unit/entity/association/reference_spec.rb +4 -4
- data/spec/unit/entity/compatibility/active_record_spec.rb +19 -0
- metadata +46 -17
- data/lib/datamappify/data/criteria/relational/limit.rb +0 -13
- data/spec/support/monkey_patches/database_cleaner.rb +0 -12
@@ -0,0 +1,28 @@
|
|
1
|
+
shared_examples_for "association data records" do |data_provider|
|
2
|
+
let(:data_groups) { "Datamappify::Data::Record::#{data_provider}::Group".constantize }
|
3
|
+
let(:data_super_users) { "Datamappify::Data::Record::#{data_provider}::SuperUser".constantize }
|
4
|
+
let(:data_users) { "Datamappify::Data::Record::#{data_provider}::User".constantize }
|
5
|
+
let(:data_user_driver_licenses) { "Datamappify::Data::Record::#{data_provider}::UserDriverLicense".constantize }
|
6
|
+
|
7
|
+
before do
|
8
|
+
saved_group
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "data records" do
|
12
|
+
it "does not create extra primary data records" do
|
13
|
+
expect { saved_group }.to change { data_groups.count }.by(0)
|
14
|
+
end
|
15
|
+
|
16
|
+
it "does not create extra associated primary data records" do
|
17
|
+
expect { saved_group }.to change { data_super_users.count }.by(0)
|
18
|
+
end
|
19
|
+
|
20
|
+
it "does not create extra associated secondary data records" do
|
21
|
+
expect { saved_group }.to change { data_users.count }.by(0)
|
22
|
+
end
|
23
|
+
|
24
|
+
it "does not create extra secondary data records" do
|
25
|
+
expect { saved_group }.to change { data_user_driver_licenses.count }.by(0)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -2,20 +2,20 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
module Datamappify::Entity
|
4
4
|
describe Datamappify::Entity::Association::Reference do
|
5
|
-
class
|
5
|
+
class DummyEntityAssociationReferenceA
|
6
6
|
include Datamappify::Entity
|
7
7
|
|
8
8
|
references :another_entity
|
9
9
|
end
|
10
10
|
|
11
|
-
class
|
11
|
+
class DummyEntityAssociationReferenceB
|
12
12
|
include Datamappify::Entity
|
13
13
|
end
|
14
14
|
|
15
|
-
subject {
|
15
|
+
subject { DummyEntityAssociationReferenceA.new }
|
16
16
|
|
17
17
|
describe "#references" do
|
18
|
-
let(:another_entity) {
|
18
|
+
let(:another_entity) { DummyEntityAssociationReferenceB.new.tap { |e| e.id = 42 } }
|
19
19
|
|
20
20
|
it { should respond_to(:another_entity_id) }
|
21
21
|
it { should respond_to(:another_entity_id=) }
|
@@ -0,0 +1,19 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
module Datamappify::Entity
|
4
|
+
describe Datamappify::Entity::Compatibility::ActiveRecord do
|
5
|
+
class DummyEntityCompatibilityActiveRecordA
|
6
|
+
include Datamappify::Entity
|
7
|
+
end
|
8
|
+
|
9
|
+
class DummyEntityCompatibilityActiveRecordB
|
10
|
+
include Datamappify::Entity
|
11
|
+
|
12
|
+
has_many :other_dummies, :via => DummyEntityCompatibilityActiveRecordA
|
13
|
+
end
|
14
|
+
|
15
|
+
subject { DummyEntityCompatibilityActiveRecordB.reflect_on_association(:other_dummies) }
|
16
|
+
|
17
|
+
its(:klass) { should == DummyEntityCompatibilityActiveRecordA }
|
18
|
+
end
|
19
|
+
end
|
metadata
CHANGED
@@ -1,35 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datamappify
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.70.0.
|
4
|
+
version: 0.70.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Fred Wu
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: virtus
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: 1.0.0.beta6
|
20
|
-
- - <
|
17
|
+
- - ~>
|
21
18
|
- !ruby/object:Gem::Version
|
22
|
-
version:
|
19
|
+
version: 1.0.0
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
26
23
|
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: 1.0.0.beta6
|
30
|
-
- - <
|
24
|
+
- - ~>
|
31
25
|
- !ruby/object:Gem::Version
|
32
|
-
version:
|
26
|
+
version: 1.0.0
|
33
27
|
- !ruby/object:Gem::Dependency
|
34
28
|
name: activemodel
|
35
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -142,6 +136,20 @@ dependencies:
|
|
142
136
|
- - '>='
|
143
137
|
- !ruby/object:Gem::Version
|
144
138
|
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: pry-stack_explorer
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - '>='
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - '>='
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
145
153
|
- !ruby/object:Gem::Dependency
|
146
154
|
name: simplecov
|
147
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,20 +234,34 @@ dependencies:
|
|
226
234
|
- - ~>
|
227
235
|
- !ruby/object:Gem::Version
|
228
236
|
version: 4.0.0
|
237
|
+
- !ruby/object:Gem::Dependency
|
238
|
+
name: kaminari
|
239
|
+
requirement: !ruby/object:Gem::Requirement
|
240
|
+
requirements:
|
241
|
+
- - '>='
|
242
|
+
- !ruby/object:Gem::Version
|
243
|
+
version: '0'
|
244
|
+
type: :development
|
245
|
+
prerelease: false
|
246
|
+
version_requirements: !ruby/object:Gem::Requirement
|
247
|
+
requirements:
|
248
|
+
- - '>='
|
249
|
+
- !ruby/object:Gem::Version
|
250
|
+
version: '0'
|
229
251
|
- !ruby/object:Gem::Dependency
|
230
252
|
name: database_cleaner
|
231
253
|
requirement: !ruby/object:Gem::Requirement
|
232
254
|
requirements:
|
233
255
|
- - ~>
|
234
256
|
- !ruby/object:Gem::Version
|
235
|
-
version: 1.0
|
257
|
+
version: 1.2.0
|
236
258
|
type: :development
|
237
259
|
prerelease: false
|
238
260
|
version_requirements: !ruby/object:Gem::Requirement
|
239
261
|
requirements:
|
240
262
|
- - ~>
|
241
263
|
- !ruby/object:Gem::Version
|
242
|
-
version: 1.0
|
264
|
+
version: 1.2.0
|
243
265
|
description: Compose, decouple and manage domain logic and data persistence separately.
|
244
266
|
Works particularly great for composing form objects!
|
245
267
|
email:
|
@@ -285,7 +307,6 @@ files:
|
|
285
307
|
- lib/datamappify/data/criteria/relational/criteria.rb
|
286
308
|
- lib/datamappify/data/criteria/relational/criteria_base_method.rb
|
287
309
|
- lib/datamappify/data/criteria/relational/criteria_method.rb
|
288
|
-
- lib/datamappify/data/criteria/relational/limit.rb
|
289
310
|
- lib/datamappify/data/criteria/relational/save.rb
|
290
311
|
- lib/datamappify/data/criteria/relational/save_by_key.rb
|
291
312
|
- lib/datamappify/data/criteria/sequel/count.rb
|
@@ -324,6 +345,8 @@ files:
|
|
324
345
|
- lib/datamappify/entity/composable/validators.rb
|
325
346
|
- lib/datamappify/entity/inspectable.rb
|
326
347
|
- lib/datamappify/entity/lazy_checking.rb
|
348
|
+
- lib/datamappify/extensions/kaminari/collection_methods.rb
|
349
|
+
- lib/datamappify/extensions/kaminari/criteria_processor.rb
|
327
350
|
- lib/datamappify/lazy.rb
|
328
351
|
- lib/datamappify/lazy/attributes_handler.rb
|
329
352
|
- lib/datamappify/lazy/source_attributes_walker.rb
|
@@ -357,8 +380,10 @@ files:
|
|
357
380
|
- spec/entity/composable_spec.rb
|
358
381
|
- spec/entity/inheritance_spec.rb
|
359
382
|
- spec/entity_spec.rb
|
383
|
+
- spec/extensions/kaminari_spec.rb
|
360
384
|
- spec/lazy_spec.rb
|
361
385
|
- spec/repository/associations/has_many_spec.rb
|
386
|
+
- spec/repository/associations/has_one_spec.rb
|
362
387
|
- spec/repository/callbacks_spec.rb
|
363
388
|
- spec/repository/dirty_persistence_spec.rb
|
364
389
|
- spec/repository/dirty_tracking_spec.rb
|
@@ -388,7 +413,6 @@ files:
|
|
388
413
|
- spec/support/entities/super_user.rb
|
389
414
|
- spec/support/entities/user.rb
|
390
415
|
- spec/support/entities/user_info.rb
|
391
|
-
- spec/support/monkey_patches/database_cleaner.rb
|
392
416
|
- spec/support/repositories/active_record/admin_user_repository.rb
|
393
417
|
- spec/support/repositories/active_record/comment_repository.rb
|
394
418
|
- spec/support/repositories/active_record/computer_repository.rb
|
@@ -410,10 +434,12 @@ files:
|
|
410
434
|
- spec/support/repositories/sequel/super_user_repository.rb
|
411
435
|
- spec/support/repositories/sequel/user_repository.rb
|
412
436
|
- spec/support/shared/contexts.rb
|
437
|
+
- spec/support/shared/examples/data/association_data_records.rb
|
413
438
|
- spec/support/shared/examples/repository/finders/where_or_match.rb
|
414
439
|
- spec/support/tables/active_record.rb
|
415
440
|
- spec/support/tables/sequel.rb
|
416
441
|
- spec/unit/entity/association/reference_spec.rb
|
442
|
+
- spec/unit/entity/compatibility/active_record_spec.rb
|
417
443
|
- spec/unit/entity/composable_spec.rb
|
418
444
|
- spec/unit/repository/query_method_spec.rb
|
419
445
|
homepage: https://github.com/fredwu/datamappify
|
@@ -447,8 +473,10 @@ test_files:
|
|
447
473
|
- spec/entity/composable_spec.rb
|
448
474
|
- spec/entity/inheritance_spec.rb
|
449
475
|
- spec/entity_spec.rb
|
476
|
+
- spec/extensions/kaminari_spec.rb
|
450
477
|
- spec/lazy_spec.rb
|
451
478
|
- spec/repository/associations/has_many_spec.rb
|
479
|
+
- spec/repository/associations/has_one_spec.rb
|
452
480
|
- spec/repository/callbacks_spec.rb
|
453
481
|
- spec/repository/dirty_persistence_spec.rb
|
454
482
|
- spec/repository/dirty_tracking_spec.rb
|
@@ -478,7 +506,6 @@ test_files:
|
|
478
506
|
- spec/support/entities/super_user.rb
|
479
507
|
- spec/support/entities/user.rb
|
480
508
|
- spec/support/entities/user_info.rb
|
481
|
-
- spec/support/monkey_patches/database_cleaner.rb
|
482
509
|
- spec/support/repositories/active_record/admin_user_repository.rb
|
483
510
|
- spec/support/repositories/active_record/comment_repository.rb
|
484
511
|
- spec/support/repositories/active_record/computer_repository.rb
|
@@ -500,10 +527,12 @@ test_files:
|
|
500
527
|
- spec/support/repositories/sequel/super_user_repository.rb
|
501
528
|
- spec/support/repositories/sequel/user_repository.rb
|
502
529
|
- spec/support/shared/contexts.rb
|
530
|
+
- spec/support/shared/examples/data/association_data_records.rb
|
503
531
|
- spec/support/shared/examples/repository/finders/where_or_match.rb
|
504
532
|
- spec/support/tables/active_record.rb
|
505
533
|
- spec/support/tables/sequel.rb
|
506
534
|
- spec/unit/entity/association/reference_spec.rb
|
535
|
+
- spec/unit/entity/compatibility/active_record_spec.rb
|
507
536
|
- spec/unit/entity/composable_spec.rb
|
508
537
|
- spec/unit/repository/query_method_spec.rb
|
509
538
|
has_rdoc:
|