datamappify 0.30.0 → 0.40.0

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.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -0
  3. data/ERD.png +0 -0
  4. data/README.md +78 -16
  5. data/datamappify.gemspec +4 -3
  6. data/lib/datamappify/data/criteria/active_record/destroy.rb +1 -1
  7. data/lib/datamappify/data/criteria/active_record/exists.rb +2 -2
  8. data/lib/datamappify/data/criteria/active_record/transaction.rb +1 -1
  9. data/lib/datamappify/data/criteria/common.rb +21 -1
  10. data/lib/datamappify/data/criteria/relational/count.rb +1 -1
  11. data/lib/datamappify/data/criteria/relational/find.rb +1 -1
  12. data/lib/datamappify/data/criteria/relational/save.rb +1 -1
  13. data/lib/datamappify/data/criteria/sequel/destroy.rb +1 -1
  14. data/lib/datamappify/data/criteria/sequel/exists.rb +1 -1
  15. data/lib/datamappify/data/criteria/sequel/transaction.rb +1 -1
  16. data/lib/datamappify/data/mapper/attribute.rb +9 -0
  17. data/lib/datamappify/data/mapper.rb +7 -2
  18. data/lib/datamappify/data/provider/common_provider.rb +1 -1
  19. data/lib/datamappify/entity/lazy_checking.rb +12 -0
  20. data/lib/datamappify/entity.rb +4 -0
  21. data/lib/datamappify/lazy/attributes_handler.rb +123 -0
  22. data/lib/datamappify/lazy/source_attributes_walker.rb +49 -0
  23. data/lib/datamappify/lazy.rb +24 -0
  24. data/lib/datamappify/logger.rb +13 -0
  25. data/lib/datamappify/repository/lazy_checking.rb +19 -0
  26. data/lib/datamappify/repository/mapping_dsl.rb +7 -1
  27. data/lib/datamappify/repository/query_method/callbacks.rb +83 -0
  28. data/lib/datamappify/repository/query_method/count.rb +6 -1
  29. data/lib/datamappify/repository/query_method/create.rb +10 -0
  30. data/lib/datamappify/repository/query_method/destroy.rb +6 -14
  31. data/lib/datamappify/repository/query_method/exists.rb +17 -0
  32. data/lib/datamappify/repository/query_method/find.rb +12 -19
  33. data/lib/datamappify/repository/query_method/method/source_attributes_walker.rb +81 -0
  34. data/lib/datamappify/repository/query_method/method.rb +74 -25
  35. data/lib/datamappify/repository/query_method/save.rb +15 -14
  36. data/lib/datamappify/repository/query_method/update.rb +10 -0
  37. data/lib/datamappify/repository/query_methods.rb +123 -0
  38. data/lib/datamappify/repository/unit_of_work/persistent_states/object.rb +122 -0
  39. data/lib/datamappify/repository/unit_of_work/persistent_states.rb +54 -0
  40. data/lib/datamappify/repository/unit_of_work/transaction.rb +18 -0
  41. data/lib/datamappify/repository/unit_of_work.rb +1 -0
  42. data/lib/datamappify/repository.rb +16 -51
  43. data/lib/datamappify/version.rb +1 -1
  44. data/lib/datamappify.rb +3 -1
  45. data/spec/lazy_spec.rb +73 -0
  46. data/spec/repository/callbacks_spec.rb +140 -0
  47. data/spec/repository/dirty_persistence_spec.rb +44 -0
  48. data/spec/repository/dirty_tracking_spec.rb +82 -0
  49. data/spec/repository/persistence_spec.rb +41 -119
  50. data/spec/repository/transactions_spec.rb +25 -0
  51. data/spec/repository/validation_spec.rb +42 -0
  52. data/spec/repository_spec.rb +8 -6
  53. data/spec/spec_helper.rb +2 -2
  54. data/spec/support/entities/hero_user.rb +5 -0
  55. data/spec/support/repositories/callbacks_chaining_repository.rb +92 -0
  56. data/spec/support/repositories/hero_user_repository.rb +30 -0
  57. data/spec/support/shared/contexts.rb +10 -0
  58. data/spec/support/tables/sequel.rb +1 -0
  59. data/spec/unit/repository/query_method_spec.rb +55 -0
  60. metadata +57 -10
  61. data/lib/datamappify/repository/query_method/transaction.rb +0 -18
  62. data/lib/datamappify/repository/query_method.rb +0 -3
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: datamappify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.30.0
4
+ version: 0.40.0
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-04-12 00:00:00.000000000 Z
11
+ date: 2013-05-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: virtus
@@ -25,12 +25,12 @@ dependencies:
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0.5'
27
27
  - !ruby/object:Gem::Dependency
28
- name: activesupport
28
+ name: activemodel
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - '>='
32
32
  - !ruby/object:Gem::Version
33
- version: 4.0.0.beta1
33
+ version: 4.0.0.rc1
34
34
  - - <
35
35
  - !ruby/object:Gem::Version
36
36
  version: '5'
@@ -40,10 +40,24 @@ dependencies:
40
40
  requirements:
41
41
  - - '>='
42
42
  - !ruby/object:Gem::Version
43
- version: 4.0.0.beta1
43
+ version: 4.0.0.rc1
44
44
  - - <
45
45
  - !ruby/object:Gem::Version
46
46
  version: '5'
47
+ - !ruby/object:Gem::Dependency
48
+ name: hooks
49
+ requirement: !ruby/object:Gem::Requirement
50
+ requirements:
51
+ - - ~>
52
+ - !ruby/object:Gem::Version
53
+ version: 0.2.2
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ version: 0.2.2
47
61
  - !ruby/object:Gem::Dependency
48
62
  name: bundler
49
63
  requirement: !ruby/object:Gem::Requirement
@@ -204,7 +218,7 @@ dependencies:
204
218
  requirements:
205
219
  - - '>='
206
220
  - !ruby/object:Gem::Version
207
- version: 4.0.0.beta1
221
+ version: 4.0.0.rc1
208
222
  - - <
209
223
  - !ruby/object:Gem::Version
210
224
  version: '5'
@@ -214,7 +228,7 @@ dependencies:
214
228
  requirements:
215
229
  - - '>='
216
230
  - !ruby/object:Gem::Version
217
- version: 4.0.0.beta1
231
+ version: 4.0.0.rc1
218
232
  - - <
219
233
  - !ruby/object:Gem::Version
220
234
  version: '5'
@@ -250,6 +264,7 @@ files:
250
264
  - .travis.yml
251
265
  - .yardopts
252
266
  - CHANGELOG.md
267
+ - ERD.png
253
268
  - Gemfile
254
269
  - README.md
255
270
  - Rakefile
@@ -288,18 +303,38 @@ files:
288
303
  - lib/datamappify/data/provider/sequel.rb
289
304
  - lib/datamappify/data/record.rb
290
305
  - lib/datamappify/entity.rb
306
+ - lib/datamappify/entity/lazy_checking.rb
307
+ - lib/datamappify/lazy.rb
308
+ - lib/datamappify/lazy/attributes_handler.rb
309
+ - lib/datamappify/lazy/source_attributes_walker.rb
310
+ - lib/datamappify/logger.rb
291
311
  - lib/datamappify/repository.rb
312
+ - lib/datamappify/repository/lazy_checking.rb
292
313
  - lib/datamappify/repository/mapping_dsl.rb
293
- - lib/datamappify/repository/query_method.rb
314
+ - lib/datamappify/repository/query_method/callbacks.rb
294
315
  - lib/datamappify/repository/query_method/count.rb
316
+ - lib/datamappify/repository/query_method/create.rb
295
317
  - lib/datamappify/repository/query_method/destroy.rb
318
+ - lib/datamappify/repository/query_method/exists.rb
296
319
  - lib/datamappify/repository/query_method/find.rb
297
320
  - lib/datamappify/repository/query_method/method.rb
321
+ - lib/datamappify/repository/query_method/method/source_attributes_walker.rb
298
322
  - lib/datamappify/repository/query_method/save.rb
299
- - lib/datamappify/repository/query_method/transaction.rb
323
+ - lib/datamappify/repository/query_method/update.rb
324
+ - lib/datamappify/repository/query_methods.rb
325
+ - lib/datamappify/repository/unit_of_work.rb
326
+ - lib/datamappify/repository/unit_of_work/persistent_states.rb
327
+ - lib/datamappify/repository/unit_of_work/persistent_states/object.rb
328
+ - lib/datamappify/repository/unit_of_work/transaction.rb
300
329
  - lib/datamappify/version.rb
301
330
  - spec/entity_spec.rb
331
+ - spec/lazy_spec.rb
332
+ - spec/repository/callbacks_spec.rb
333
+ - spec/repository/dirty_persistence_spec.rb
334
+ - spec/repository/dirty_tracking_spec.rb
302
335
  - spec/repository/persistence_spec.rb
336
+ - spec/repository/transactions_spec.rb
337
+ - spec/repository/validation_spec.rb
303
338
  - spec/repository_spec.rb
304
339
  - spec/spec_helper.rb
305
340
  - spec/support/entities/comment.rb
@@ -311,13 +346,16 @@ files:
311
346
  - spec/support/repositories/active_record/group_repository.rb
312
347
  - spec/support/repositories/active_record/role_repository.rb
313
348
  - spec/support/repositories/active_record/user_repository.rb
349
+ - spec/support/repositories/callbacks_chaining_repository.rb
314
350
  - spec/support/repositories/hero_user_repository.rb
315
351
  - spec/support/repositories/sequel/comment_repository.rb
316
352
  - spec/support/repositories/sequel/group_repository.rb
317
353
  - spec/support/repositories/sequel/role_repository.rb
318
354
  - spec/support/repositories/sequel/user_repository.rb
355
+ - spec/support/shared/contexts.rb
319
356
  - spec/support/tables/active_record.rb
320
357
  - spec/support/tables/sequel.rb
358
+ - spec/unit/repository/query_method_spec.rb
321
359
  homepage: https://github.com/fredwu/datamappify
322
360
  licenses:
323
361
  - MIT
@@ -338,13 +376,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
338
376
  version: '0'
339
377
  requirements: []
340
378
  rubyforge_project:
341
- rubygems_version: 2.0.0
379
+ rubygems_version: 2.0.3
342
380
  signing_key:
343
381
  specification_version: 4
344
382
  summary: Compose and manage domain logic and data persistence separately and intelligently.
345
383
  test_files:
346
384
  - spec/entity_spec.rb
385
+ - spec/lazy_spec.rb
386
+ - spec/repository/callbacks_spec.rb
387
+ - spec/repository/dirty_persistence_spec.rb
388
+ - spec/repository/dirty_tracking_spec.rb
347
389
  - spec/repository/persistence_spec.rb
390
+ - spec/repository/transactions_spec.rb
391
+ - spec/repository/validation_spec.rb
348
392
  - spec/repository_spec.rb
349
393
  - spec/spec_helper.rb
350
394
  - spec/support/entities/comment.rb
@@ -356,11 +400,14 @@ test_files:
356
400
  - spec/support/repositories/active_record/group_repository.rb
357
401
  - spec/support/repositories/active_record/role_repository.rb
358
402
  - spec/support/repositories/active_record/user_repository.rb
403
+ - spec/support/repositories/callbacks_chaining_repository.rb
359
404
  - spec/support/repositories/hero_user_repository.rb
360
405
  - spec/support/repositories/sequel/comment_repository.rb
361
406
  - spec/support/repositories/sequel/group_repository.rb
362
407
  - spec/support/repositories/sequel/role_repository.rb
363
408
  - spec/support/repositories/sequel/user_repository.rb
409
+ - spec/support/shared/contexts.rb
364
410
  - spec/support/tables/active_record.rb
365
411
  - spec/support/tables/sequel.rb
412
+ - spec/unit/repository/query_method_spec.rb
366
413
  has_rdoc:
@@ -1,18 +0,0 @@
1
- module Datamappify
2
- module Repository
3
- module QueryMethod
4
- class Transaction < Method
5
- # @param mapper (see Method#initialize)
6
- #
7
- # @yield
8
- # queries to be performed in the transaction
9
- #
10
- # @return [void]
11
- def initialize(mapper, &block)
12
- mapper.default_provider.build_criteria(:Transaction, mapper.default_source_class, &block)
13
- end
14
- end
15
- end
16
- end
17
- end
18
-
@@ -1,3 +0,0 @@
1
- require 'datamappify/repository/query_method/method'
2
-
3
- Dir[Datamappify.root.join('repository/query_method/*')].each { |file| require file }