mongoid 4.0.0.alpha2 → 4.0.0.beta1

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +55 -0
  3. data/README.md +3 -3
  4. data/lib/config/locales/en.yml +13 -0
  5. data/lib/mongoid.rb +3 -1
  6. data/lib/mongoid/atomic.rb +1 -1
  7. data/lib/mongoid/atomic/paths/embedded/many.rb +1 -1
  8. data/lib/mongoid/atomic/paths/embedded/one.rb +1 -1
  9. data/lib/mongoid/attributes.rb +23 -1
  10. data/lib/mongoid/attributes/processing.rb +1 -1
  11. data/lib/mongoid/composable.rb +3 -2
  12. data/lib/mongoid/contextual/command.rb +0 -26
  13. data/lib/mongoid/contextual/geo_near.rb +1 -1
  14. data/lib/mongoid/contextual/mongo.rb +6 -29
  15. data/lib/mongoid/contextual/text_search.rb +3 -5
  16. data/lib/mongoid/criteria.rb +1 -1
  17. data/lib/mongoid/criteria/modifiable.rb +27 -7
  18. data/lib/mongoid/criteria/permission.rb +70 -0
  19. data/lib/mongoid/document.rb +5 -6
  20. data/lib/mongoid/errors.rb +2 -0
  21. data/lib/mongoid/errors/document_not_destroyed.rb +25 -0
  22. data/lib/mongoid/errors/readonly_document.rb +24 -0
  23. data/lib/mongoid/extensions/boolean.rb +1 -0
  24. data/lib/mongoid/extensions/hash.rb +1 -1
  25. data/lib/mongoid/factory.rb +5 -3
  26. data/lib/mongoid/fields.rb +32 -0
  27. data/lib/mongoid/fields/localized.rb +1 -1
  28. data/lib/mongoid/fields/standard.rb +1 -1
  29. data/lib/mongoid/findable.rb +1 -0
  30. data/lib/mongoid/interceptable.rb +11 -6
  31. data/lib/mongoid/log_subscriber.rb +34 -1
  32. data/lib/mongoid/persistable/deletable.rb +1 -0
  33. data/lib/mongoid/persistable/destroyable.rb +7 -2
  34. data/lib/mongoid/persistable/updatable.rb +27 -26
  35. data/lib/mongoid/query_cache.rb +246 -0
  36. data/lib/mongoid/railties/database.rake +4 -26
  37. data/lib/mongoid/relations.rb +8 -22
  38. data/lib/mongoid/relations/accessors.rb +0 -3
  39. data/lib/mongoid/relations/binding.rb +1 -1
  40. data/lib/mongoid/relations/bindings/embedded/in.rb +1 -1
  41. data/lib/mongoid/relations/eager.rb +5 -6
  42. data/lib/mongoid/relations/eager/base.rb +97 -5
  43. data/lib/mongoid/relations/eager/belongs_to.rb +1 -0
  44. data/lib/mongoid/relations/eager/has_and_belongs_to_many.rb +16 -9
  45. data/lib/mongoid/relations/eager/has_many.rb +1 -0
  46. data/lib/mongoid/relations/eager/has_one.rb +1 -0
  47. data/lib/mongoid/relations/embedded/batchable.rb +1 -1
  48. data/lib/mongoid/relations/embedded/in.rb +4 -4
  49. data/lib/mongoid/relations/embedded/many.rb +7 -5
  50. data/lib/mongoid/relations/embedded/one.rb +1 -1
  51. data/lib/mongoid/relations/macros.rb +1 -0
  52. data/lib/mongoid/relations/marshalable.rb +3 -3
  53. data/lib/mongoid/relations/proxy.rb +12 -10
  54. data/lib/mongoid/relations/referenced/in.rb +2 -2
  55. data/lib/mongoid/relations/referenced/many.rb +9 -9
  56. data/lib/mongoid/relations/referenced/many_to_many.rb +7 -7
  57. data/lib/mongoid/relations/referenced/one.rb +4 -4
  58. data/lib/mongoid/{state.rb → stateful.rb} +13 -1
  59. data/lib/mongoid/tasks/database.rake +31 -0
  60. data/lib/mongoid/tasks/database.rb +107 -0
  61. data/lib/mongoid/threaded.rb +0 -47
  62. data/lib/mongoid/validatable/uniqueness.rb +4 -16
  63. data/lib/mongoid/version.rb +1 -1
  64. data/lib/rails/generators/mongoid/config/templates/mongoid.yml +0 -3
  65. data/lib/rails/mongoid.rb +0 -124
  66. data/spec/app/models/edit.rb +5 -0
  67. data/spec/app/models/even.rb +7 -0
  68. data/spec/app/models/line_item.rb +1 -1
  69. data/spec/app/models/note.rb +2 -0
  70. data/spec/app/models/odd.rb +7 -0
  71. data/spec/app/models/record.rb +5 -0
  72. data/spec/app/models/wiki_page.rb +1 -1
  73. data/spec/mongoid/attributes_spec.rb +76 -1
  74. data/spec/mongoid/changeable_spec.rb +6 -2
  75. data/spec/mongoid/contextual/mongo_spec.rb +3 -1
  76. data/spec/mongoid/contextual/text_search_spec.rb +3 -1
  77. data/spec/mongoid/criteria/modifiable_spec.rb +192 -0
  78. data/spec/mongoid/criteria_spec.rb +6 -2
  79. data/spec/mongoid/errors/document_not_destroyed_spec.rb +33 -0
  80. data/spec/mongoid/errors/readonly_document_spec.rb +29 -0
  81. data/spec/mongoid/fields/localized_spec.rb +15 -0
  82. data/spec/mongoid/fields_spec.rb +88 -2
  83. data/spec/mongoid/log_subscriber_spec.rb +3 -3
  84. data/spec/mongoid/persistable/deletable_spec.rb +14 -1
  85. data/spec/mongoid/persistable/destroyable_spec.rb +45 -1
  86. data/spec/mongoid/persistable/savable_spec.rb +34 -5
  87. data/spec/mongoid/query_cache_spec.rb +197 -0
  88. data/spec/mongoid/relations/bindings/embedded/in_spec.rb +2 -2
  89. data/spec/mongoid/relations/builders/referenced/many_spec.rb +1 -1
  90. data/spec/mongoid/relations/eager/has_and_belongs_to_many_spec.rb +11 -37
  91. data/spec/mongoid/relations/eager/has_one_spec.rb +1 -1
  92. data/spec/mongoid/relations/embedded/in_spec.rb +1 -1
  93. data/spec/mongoid/relations/embedded/many_spec.rb +10 -10
  94. data/spec/mongoid/relations/embedded/one_spec.rb +10 -2
  95. data/spec/mongoid/relations/referenced/in_spec.rb +1 -1
  96. data/spec/mongoid/relations/referenced/many_spec.rb +37 -2
  97. data/spec/mongoid/relations/touchable_spec.rb +20 -0
  98. data/spec/mongoid/{state_spec.rb → stateful_spec.rb} +26 -1
  99. data/spec/mongoid/tasks/database_rake_spec.rb +285 -0
  100. data/spec/mongoid/tasks/database_spec.rb +148 -0
  101. data/spec/mongoid/validatable/uniqueness_spec.rb +7 -0
  102. data/spec/rails/mongoid_spec.rb +0 -316
  103. data/spec/spec_helper.rb +1 -0
  104. metadata +30 -8
@@ -11,6 +11,7 @@ if ENV["CI"]
11
11
  end
12
12
  end
13
13
 
14
+ require "action_controller"
14
15
  require "mongoid"
15
16
  require "rspec"
16
17
  require "helpers"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mongoid
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0.alpha2
4
+ version: 4.0.0.beta1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Durran Jordan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-10 00:00:00.000000000 Z
11
+ date: 2014-02-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel
@@ -44,14 +44,14 @@ dependencies:
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: 2.0.beta5
47
+ version: 2.0.beta6
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.0.beta5
54
+ version: 2.0.beta6
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: origin
57
57
  requirement: !ruby/object:Gem::Requirement
@@ -119,6 +119,7 @@ files:
119
119
  - lib/mongoid/criteria/inspectable.rb
120
120
  - lib/mongoid/criteria/marshalable.rb
121
121
  - lib/mongoid/criteria/modifiable.rb
122
+ - lib/mongoid/criteria/permission.rb
122
123
  - lib/mongoid/criteria/scopable.rb
123
124
  - lib/mongoid/document.rb
124
125
  - lib/mongoid/equality.rb
@@ -126,6 +127,7 @@ files:
126
127
  - lib/mongoid/errors/ambiguous_relationship.rb
127
128
  - lib/mongoid/errors/callback.rb
128
129
  - lib/mongoid/errors/delete_restriction.rb
130
+ - lib/mongoid/errors/document_not_destroyed.rb
129
131
  - lib/mongoid/errors/document_not_found.rb
130
132
  - lib/mongoid/errors/eager_load.rb
131
133
  - lib/mongoid/errors/invalid_collection.rb
@@ -157,6 +159,7 @@ files:
157
159
  - lib/mongoid/errors/no_session_hosts.rb
158
160
  - lib/mongoid/errors/no_sessions_config.rb
159
161
  - lib/mongoid/errors/readonly_attribute.rb
162
+ - lib/mongoid/errors/readonly_document.rb
160
163
  - lib/mongoid/errors/scope_overwrite.rb
161
164
  - lib/mongoid/errors/too_many_nested_attribute_records.rb
162
165
  - lib/mongoid/errors/unknown_attribute.rb
@@ -231,6 +234,7 @@ files:
231
234
  - lib/mongoid/persistable/updatable.rb
232
235
  - lib/mongoid/persistable/upsertable.rb
233
236
  - lib/mongoid/positional.rb
237
+ - lib/mongoid/query_cache.rb
234
238
  - lib/mongoid/railtie.rb
235
239
  - lib/mongoid/railties/database.rake
236
240
  - lib/mongoid/railties/document.rb
@@ -307,8 +311,10 @@ files:
307
311
  - lib/mongoid/sessions/validators.rb
308
312
  - lib/mongoid/sessions/validators/storage.rb
309
313
  - lib/mongoid/shardable.rb
310
- - lib/mongoid/state.rb
314
+ - lib/mongoid/stateful.rb
311
315
  - lib/mongoid/support/query_counter.rb
316
+ - lib/mongoid/tasks/database.rake
317
+ - lib/mongoid/tasks/database.rb
312
318
  - lib/mongoid/threaded.rb
313
319
  - lib/mongoid/threaded/lifecycle.rb
314
320
  - lib/mongoid/timestamps.rb
@@ -396,10 +402,12 @@ files:
396
402
  - spec/app/models/driver.rb
397
403
  - spec/app/models/drug.rb
398
404
  - spec/app/models/dungeon.rb
405
+ - spec/app/models/edit.rb
399
406
  - spec/app/models/email.rb
400
407
  - spec/app/models/employer.rb
401
408
  - spec/app/models/entry.rb
402
409
  - spec/app/models/eraser.rb
410
+ - spec/app/models/even.rb
403
411
  - spec/app/models/event.rb
404
412
  - spec/app/models/exhibition.rb
405
413
  - spec/app/models/exhibitor.rb
@@ -441,6 +449,7 @@ files:
441
449
  - spec/app/models/name.rb
442
450
  - spec/app/models/node.rb
443
451
  - spec/app/models/note.rb
452
+ - spec/app/models/odd.rb
444
453
  - spec/app/models/ordered_post.rb
445
454
  - spec/app/models/ordered_preference.rb
446
455
  - spec/app/models/oscar.rb
@@ -562,6 +571,7 @@ files:
562
571
  - spec/mongoid/errors/ambiguous_relationship_spec.rb
563
572
  - spec/mongoid/errors/callback_spec.rb
564
573
  - spec/mongoid/errors/delete_restriction_spec.rb
574
+ - spec/mongoid/errors/document_not_destroyed_spec.rb
565
575
  - spec/mongoid/errors/document_not_found_spec.rb
566
576
  - spec/mongoid/errors/eager_load_spec.rb
567
577
  - spec/mongoid/errors/invalid_collection_spec.rb
@@ -591,6 +601,7 @@ files:
591
601
  - spec/mongoid/errors/no_session_hosts_spec.rb
592
602
  - spec/mongoid/errors/no_sessions_config_spec.rb
593
603
  - spec/mongoid/errors/readonly_attribute_spec.rb
604
+ - spec/mongoid/errors/readonly_document_spec.rb
594
605
  - spec/mongoid/errors/scope_overwrite_spec.rb
595
606
  - spec/mongoid/errors/too_many_nested_attribute_records_spec.rb
596
607
  - spec/mongoid/errors/unknown_attribute_spec.rb
@@ -664,6 +675,7 @@ files:
664
675
  - spec/mongoid/persistable/upsertable_spec.rb
665
676
  - spec/mongoid/persistable_spec.rb
666
677
  - spec/mongoid/positional_spec.rb
678
+ - spec/mongoid/query_cache_spec.rb
667
679
  - spec/mongoid/railties/document_spec.rb
668
680
  - spec/mongoid/relations/accessors_spec.rb
669
681
  - spec/mongoid/relations/auto_save_spec.rb
@@ -725,7 +737,9 @@ files:
725
737
  - spec/mongoid/sessions/options_spec.rb
726
738
  - spec/mongoid/sessions_spec.rb
727
739
  - spec/mongoid/shardable_spec.rb
728
- - spec/mongoid/state_spec.rb
740
+ - spec/mongoid/stateful_spec.rb
741
+ - spec/mongoid/tasks/database_rake_spec.rb
742
+ - spec/mongoid/tasks/database_spec.rb
729
743
  - spec/mongoid/threaded_spec.rb
730
744
  - spec/mongoid/timestamps/created/short_spec.rb
731
745
  - spec/mongoid/timestamps/created_spec.rb
@@ -764,7 +778,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
764
778
  version: 1.3.6
765
779
  requirements: []
766
780
  rubyforge_project: mongoid
767
- rubygems_version: 2.2.0
781
+ rubygems_version: 2.2.1
768
782
  signing_key:
769
783
  specification_version: 4
770
784
  summary: Elegant Persistance in Ruby for MongoDB.
@@ -829,10 +843,12 @@ test_files:
829
843
  - spec/app/models/driver.rb
830
844
  - spec/app/models/drug.rb
831
845
  - spec/app/models/dungeon.rb
846
+ - spec/app/models/edit.rb
832
847
  - spec/app/models/email.rb
833
848
  - spec/app/models/employer.rb
834
849
  - spec/app/models/entry.rb
835
850
  - spec/app/models/eraser.rb
851
+ - spec/app/models/even.rb
836
852
  - spec/app/models/event.rb
837
853
  - spec/app/models/exhibition.rb
838
854
  - spec/app/models/exhibitor.rb
@@ -874,6 +890,7 @@ test_files:
874
890
  - spec/app/models/name.rb
875
891
  - spec/app/models/node.rb
876
892
  - spec/app/models/note.rb
893
+ - spec/app/models/odd.rb
877
894
  - spec/app/models/ordered_post.rb
878
895
  - spec/app/models/ordered_preference.rb
879
896
  - spec/app/models/oscar.rb
@@ -995,6 +1012,7 @@ test_files:
995
1012
  - spec/mongoid/errors/ambiguous_relationship_spec.rb
996
1013
  - spec/mongoid/errors/callback_spec.rb
997
1014
  - spec/mongoid/errors/delete_restriction_spec.rb
1015
+ - spec/mongoid/errors/document_not_destroyed_spec.rb
998
1016
  - spec/mongoid/errors/document_not_found_spec.rb
999
1017
  - spec/mongoid/errors/eager_load_spec.rb
1000
1018
  - spec/mongoid/errors/invalid_collection_spec.rb
@@ -1024,6 +1042,7 @@ test_files:
1024
1042
  - spec/mongoid/errors/no_session_hosts_spec.rb
1025
1043
  - spec/mongoid/errors/no_sessions_config_spec.rb
1026
1044
  - spec/mongoid/errors/readonly_attribute_spec.rb
1045
+ - spec/mongoid/errors/readonly_document_spec.rb
1027
1046
  - spec/mongoid/errors/scope_overwrite_spec.rb
1028
1047
  - spec/mongoid/errors/too_many_nested_attribute_records_spec.rb
1029
1048
  - spec/mongoid/errors/unknown_attribute_spec.rb
@@ -1097,6 +1116,7 @@ test_files:
1097
1116
  - spec/mongoid/persistable/upsertable_spec.rb
1098
1117
  - spec/mongoid/persistable_spec.rb
1099
1118
  - spec/mongoid/positional_spec.rb
1119
+ - spec/mongoid/query_cache_spec.rb
1100
1120
  - spec/mongoid/railties/document_spec.rb
1101
1121
  - spec/mongoid/relations/accessors_spec.rb
1102
1122
  - spec/mongoid/relations/auto_save_spec.rb
@@ -1158,7 +1178,9 @@ test_files:
1158
1178
  - spec/mongoid/sessions/options_spec.rb
1159
1179
  - spec/mongoid/sessions_spec.rb
1160
1180
  - spec/mongoid/shardable_spec.rb
1161
- - spec/mongoid/state_spec.rb
1181
+ - spec/mongoid/stateful_spec.rb
1182
+ - spec/mongoid/tasks/database_rake_spec.rb
1183
+ - spec/mongoid/tasks/database_spec.rb
1162
1184
  - spec/mongoid/threaded_spec.rb
1163
1185
  - spec/mongoid/timestamps/created/short_spec.rb
1164
1186
  - spec/mongoid/timestamps/created_spec.rb