datamappify 0.30.0 → 0.40.0

Sign up to get free protection for your applications and to get access to all the features.
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 }