datamappify 0.70.0.beta1 → 0.70.0.beta2
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/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:
|