mongoid-versioning 1.0.0 → 1.1.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 (189) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -8
  3. data/README.md +1 -1
  4. data/gemfiles/Mongoid_4.gemfile +4 -0
  5. data/gemfiles/Mongoid_5.gemfile +4 -0
  6. data/lib/mongoid/core_ext/fields/validators/macro.rb +1 -3
  7. data/lib/mongoid/core_ext/relations/options.rb +1 -3
  8. data/lib/mongoid/core_ext/versioning.rb +12 -3
  9. data/lib/mongoid/versioning/version.rb +1 -1
  10. data/mongoid-versioning.gemspec +3 -3
  11. data/spec/app/models/comment.rb +4 -4
  12. data/spec/mongoid/versioning_spec.rb +9 -5
  13. data/spec/spec_helper.rb +14 -2
  14. metadata +26 -187
  15. data/spec/app/models/account.rb +0 -28
  16. data/spec/app/models/acolyte.rb +0 -16
  17. data/spec/app/models/actor.rb +0 -19
  18. data/spec/app/models/actor_observer.rb +0 -15
  19. data/spec/app/models/actress.rb +0 -2
  20. data/spec/app/models/address_number.rb +0 -6
  21. data/spec/app/models/agency.rb +0 -5
  22. data/spec/app/models/agent.rb +0 -12
  23. data/spec/app/models/album.rb +0 -14
  24. data/spec/app/models/alert.rb +0 -5
  25. data/spec/app/models/animal.rb +0 -25
  26. data/spec/app/models/answer.rb +0 -4
  27. data/spec/app/models/appointment.rb +0 -7
  28. data/spec/app/models/article.rb +0 -10
  29. data/spec/app/models/artist.rb +0 -66
  30. data/spec/app/models/artwork.rb +0 -4
  31. data/spec/app/models/augmentation.rb +0 -11
  32. data/spec/app/models/band.rb +0 -25
  33. data/spec/app/models/bar.rb +0 -9
  34. data/spec/app/models/basic.rb +0 -6
  35. data/spec/app/models/bed.rb +0 -1
  36. data/spec/app/models/big_palette.rb +0 -2
  37. data/spec/app/models/birthday.rb +0 -13
  38. data/spec/app/models/book.rb +0 -12
  39. data/spec/app/models/breed.rb +0 -4
  40. data/spec/app/models/browser.rb +0 -6
  41. data/spec/app/models/building.rb +0 -5
  42. data/spec/app/models/building_address.rb +0 -5
  43. data/spec/app/models/bus.rb +0 -7
  44. data/spec/app/models/business.rb +0 -5
  45. data/spec/app/models/callback_recorder.rb +0 -25
  46. data/spec/app/models/callback_test.rb +0 -9
  47. data/spec/app/models/canvas.rb +0 -25
  48. data/spec/app/models/car.rb +0 -1
  49. data/spec/app/models/cat.rb +0 -8
  50. data/spec/app/models/category.rb +0 -8
  51. data/spec/app/models/child.rb +0 -4
  52. data/spec/app/models/child_doc.rb +0 -22
  53. data/spec/app/models/church.rb +0 -4
  54. data/spec/app/models/circle.rb +0 -3
  55. data/spec/app/models/circuit.rb +0 -4
  56. data/spec/app/models/circus.rb +0 -7
  57. data/spec/app/models/code.rb +0 -5
  58. data/spec/app/models/contractor.rb +0 -5
  59. data/spec/app/models/cookie.rb +0 -6
  60. data/spec/app/models/country_code.rb +0 -8
  61. data/spec/app/models/definition.rb +0 -7
  62. data/spec/app/models/description.rb +0 -11
  63. data/spec/app/models/dictionary.rb +0 -10
  64. data/spec/app/models/division.rb +0 -10
  65. data/spec/app/models/doctor.rb +0 -12
  66. data/spec/app/models/dog.rb +0 -6
  67. data/spec/app/models/dokument.rb +0 -5
  68. data/spec/app/models/driver.rb +0 -7
  69. data/spec/app/models/drug.rb +0 -6
  70. data/spec/app/models/email.rb +0 -6
  71. data/spec/app/models/employer.rb +0 -5
  72. data/spec/app/models/entry.rb +0 -6
  73. data/spec/app/models/eraser.rb +0 -1
  74. data/spec/app/models/event.rb +0 -22
  75. data/spec/app/models/exhibition.rb +0 -4
  76. data/spec/app/models/exhibitor.rb +0 -5
  77. data/spec/app/models/eye.rb +0 -9
  78. data/spec/app/models/eye_bowl.rb +0 -9
  79. data/spec/app/models/face.rb +0 -8
  80. data/spec/app/models/favorite.rb +0 -6
  81. data/spec/app/models/filesystem.rb +0 -4
  82. data/spec/app/models/firefox.rb +0 -4
  83. data/spec/app/models/fish.rb +0 -8
  84. data/spec/app/models/folder.rb +0 -7
  85. data/spec/app/models/folder_item.rb +0 -9
  86. data/spec/app/models/fruits.rb +0 -28
  87. data/spec/app/models/game.rb +0 -19
  88. data/spec/app/models/ghost.rb +0 -7
  89. data/spec/app/models/home.rb +0 -4
  90. data/spec/app/models/house.rb +0 -7
  91. data/spec/app/models/html_writer.rb +0 -3
  92. data/spec/app/models/image.rb +0 -22
  93. data/spec/app/models/implant.rb +0 -16
  94. data/spec/app/models/item.rb +0 -8
  95. data/spec/app/models/jar.rb +0 -7
  96. data/spec/app/models/label.rb +0 -40
  97. data/spec/app/models/language.rb +0 -5
  98. data/spec/app/models/lat_lng.rb +0 -15
  99. data/spec/app/models/league.rb +0 -11
  100. data/spec/app/models/learner.rb +0 -2
  101. data/spec/app/models/line_item.rb +0 -6
  102. data/spec/app/models/location.rb +0 -8
  103. data/spec/app/models/login.rb +0 -8
  104. data/spec/app/models/manufacturer.rb +0 -7
  105. data/spec/app/models/meat.rb +0 -4
  106. data/spec/app/models/membership.rb +0 -4
  107. data/spec/app/models/mixed_drink.rb +0 -4
  108. data/spec/app/models/movie.rb +0 -12
  109. data/spec/app/models/my_hash.rb +0 -2
  110. data/spec/app/models/name.rb +0 -21
  111. data/spec/app/models/node.rb +0 -5
  112. data/spec/app/models/note.rb +0 -12
  113. data/spec/app/models/ordered_post.rb +0 -6
  114. data/spec/app/models/ordered_preference.rb +0 -6
  115. data/spec/app/models/oscar.rb +0 -15
  116. data/spec/app/models/override.rb +0 -16
  117. data/spec/app/models/ownable.rb +0 -6
  118. data/spec/app/models/owner.rb +0 -6
  119. data/spec/app/models/page.rb +0 -5
  120. data/spec/app/models/page_question.rb +0 -4
  121. data/spec/app/models/palette.rb +0 -7
  122. data/spec/app/models/paranoid_phone.rb +0 -27
  123. data/spec/app/models/parent.rb +0 -5
  124. data/spec/app/models/parent_doc.rb +0 -6
  125. data/spec/app/models/passport.rb +0 -5
  126. data/spec/app/models/patient.rb +0 -9
  127. data/spec/app/models/pdf_writer.rb +0 -3
  128. data/spec/app/models/pencil.rb +0 -1
  129. data/spec/app/models/person.rb +0 -198
  130. data/spec/app/models/pet.rb +0 -23
  131. data/spec/app/models/pet_owner.rb +0 -6
  132. data/spec/app/models/phone.rb +0 -11
  133. data/spec/app/models/phone_observer.rb +0 -6
  134. data/spec/app/models/pizza.rb +0 -7
  135. data/spec/app/models/player.rb +0 -35
  136. data/spec/app/models/post.rb +0 -42
  137. data/spec/app/models/powerup.rb +0 -11
  138. data/spec/app/models/preference.rb +0 -9
  139. data/spec/app/models/princess.rb +0 -8
  140. data/spec/app/models/product.rb +0 -15
  141. data/spec/app/models/profile.rb +0 -5
  142. data/spec/app/models/pronunciation.rb +0 -5
  143. data/spec/app/models/purchase.rb +0 -4
  144. data/spec/app/models/question.rb +0 -8
  145. data/spec/app/models/quiz.rb +0 -7
  146. data/spec/app/models/rating.rb +0 -8
  147. data/spec/app/models/record.rb +0 -46
  148. data/spec/app/models/registry.rb +0 -4
  149. data/spec/app/models/role.rb +0 -5
  150. data/spec/app/models/root_category.rb +0 -4
  151. data/spec/app/models/sandwich.rb +0 -4
  152. data/spec/app/models/scheduler.rb +0 -7
  153. data/spec/app/models/seo.rb +0 -7
  154. data/spec/app/models/series.rb +0 -4
  155. data/spec/app/models/server.rb +0 -13
  156. data/spec/app/models/service.rb +0 -22
  157. data/spec/app/models/shape.rb +0 -12
  158. data/spec/app/models/shelf.rb +0 -5
  159. data/spec/app/models/shipping_container.rb +0 -5
  160. data/spec/app/models/shop.rb +0 -6
  161. data/spec/app/models/short_agent.rb +0 -4
  162. data/spec/app/models/short_quiz.rb +0 -5
  163. data/spec/app/models/slave.rb +0 -6
  164. data/spec/app/models/song.rb +0 -8
  165. data/spec/app/models/square.rb +0 -4
  166. data/spec/app/models/strategy.rb +0 -3
  167. data/spec/app/models/sub_item.rb +0 -3
  168. data/spec/app/models/survey.rb +0 -5
  169. data/spec/app/models/symptom.rb +0 -6
  170. data/spec/app/models/target.rb +0 -5
  171. data/spec/app/models/template.rb +0 -5
  172. data/spec/app/models/thing.rb +0 -9
  173. data/spec/app/models/tool.rb +0 -8
  174. data/spec/app/models/topping.rb +0 -5
  175. data/spec/app/models/track.rb +0 -38
  176. data/spec/app/models/translation.rb +0 -5
  177. data/spec/app/models/tree.rb +0 -9
  178. data/spec/app/models/truck.rb +0 -3
  179. data/spec/app/models/user.rb +0 -20
  180. data/spec/app/models/user_account.rb +0 -10
  181. data/spec/app/models/validation_callback.rb +0 -10
  182. data/spec/app/models/vehicle.rb +0 -11
  183. data/spec/app/models/version.rb +0 -5
  184. data/spec/app/models/vet_visit.rb +0 -5
  185. data/spec/app/models/video.rb +0 -13
  186. data/spec/app/models/weapon.rb +0 -11
  187. data/spec/app/models/word.rb +0 -12
  188. data/spec/app/models/word_origin.rb +0 -11
  189. data/spec/app/models/writer.rb +0 -11
@@ -1,9 +0,0 @@
1
- class FolderItem
2
-
3
- include Mongoid::Document
4
-
5
- belongs_to :folder
6
- field :name, type: String
7
-
8
- validates :name, uniqueness: {scope: :folder_id}
9
- end
@@ -1,28 +0,0 @@
1
- module Fruits
2
- class Apple
3
- include Mongoid::Document
4
- has_many :bananas, class_name: "Fruits::Banana"
5
- recursively_embeds_many
6
- end
7
-
8
- class Banana
9
- include Mongoid::Document
10
- belongs_to :apple, class_name: "Fruits::Apple"
11
- end
12
-
13
- class Pineapple
14
- include Mongoid::Document
15
- recursively_embeds_many cascade_callbacks: true
16
- end
17
-
18
- class Mango
19
- include Mongoid::Document
20
- recursively_embeds_one cascade_callbacks: true
21
- end
22
-
23
- module Big
24
- class Ananas
25
- include Mongoid::Document
26
- end
27
- end
28
- end
@@ -1,19 +0,0 @@
1
- class Game
2
- include Mongoid::Document
3
-
4
- field :high_score, type: Integer, default: 500
5
- field :score, type: Integer, default: 0
6
- field :name
7
-
8
- belongs_to :person, index: true, validate: true
9
- belongs_to :parent, class_name: "Game", foreign_key: "parent-id"
10
- has_one :video, validate: false
11
- has_many :ratings, as: :ratable, dependent: :nullify
12
- accepts_nested_attributes_for :person
13
-
14
- validates_format_of :name, without: /\$\$\$/
15
-
16
- set_callback(:initialize, :after) do |document|
17
- write_attribute("name", "Testing") unless name
18
- end
19
- end
@@ -1,7 +0,0 @@
1
- class Ghost
2
- include Mongoid::Document
3
-
4
- field :name, type: String
5
-
6
- belongs_to :movie, autosave: true
7
- end
@@ -1,4 +0,0 @@
1
- class Home
2
- include Mongoid::Document
3
- belongs_to :person
4
- end
@@ -1,7 +0,0 @@
1
- class House
2
- include Mongoid::Document
3
- field :name, type: String
4
- field :model, type: String
5
-
6
- default_scope ->{ asc(:name) }
7
- end
@@ -1,3 +0,0 @@
1
- class HtmlWriter < Writer
2
- def write; end
3
- end
@@ -1,22 +0,0 @@
1
- class Image
2
- attr_reader :name
3
-
4
- def initialize(name)
5
- @name = name
6
- end
7
-
8
- def self.demongoize(value)
9
- Image.new(value)
10
- end
11
-
12
- def mongoize
13
- name
14
- end
15
-
16
- def hash_is_hash
17
- {}.is_a?(Hash)
18
- end
19
- end
20
-
21
- class Thumbnail < Image
22
- end
@@ -1,16 +0,0 @@
1
- class Implant
2
- include Mongoid::Document
3
-
4
- field :name
5
- field :impressions, type: Integer, default: 0
6
-
7
- embedded_in :player, inverse_of: :implants
8
-
9
- after_build do |doc|
10
- doc.name = "Cochlear Implant (#{player.frags})"
11
- end
12
-
13
- after_find do |doc|
14
- doc.impressions += 1
15
- end
16
- end
@@ -1,8 +0,0 @@
1
- class Item
2
- include Mongoid::Document
3
- field :title, type: String
4
- field :is_rss, type: Boolean, default: false
5
- field :user_login, type: String
6
- end
7
-
8
- require "app/models/sub_item"
@@ -1,7 +0,0 @@
1
- class Jar
2
- include Mongoid::Document
3
- include Mongoid::Timestamps::Updated
4
-
5
- field :_id, type: Integer
6
- has_many :cookies, class_name: "Cookie"
7
- end
@@ -1,40 +0,0 @@
1
- class Label
2
- include Mongoid::Document
3
- include Mongoid::Timestamps::Updated::Short
4
-
5
- field :name, type: String
6
- field :after_create_called, type: Boolean, default: false
7
- field :after_save_called, type: Boolean, default: false
8
- field :after_update_called, type: Boolean, default: false
9
- field :after_validation_called, type: Boolean, default: false
10
-
11
- embedded_in :artist
12
- embedded_in :band
13
-
14
- after_create :after_create_stub
15
- after_save :after_save_stub
16
- after_update :after_update_stub
17
- after_validation :after_validation_stub
18
- before_validation :cleanup
19
-
20
- def after_create_stub
21
- self.after_create_called = true
22
- end
23
-
24
- def after_save_stub
25
- self.after_save_called = true
26
- end
27
-
28
- def after_update_stub
29
- self.after_update_called = true
30
- end
31
-
32
- def after_validation_stub
33
- self.after_validation_called = true
34
- end
35
-
36
- private
37
- def cleanup
38
- self.name = self.name.downcase.capitalize
39
- end
40
- end
@@ -1,5 +0,0 @@
1
- class Language
2
- include Mongoid::Document
3
- field :name, type: String
4
- embedded_in :translatable, polymorphic: true
5
- end
@@ -1,15 +0,0 @@
1
- class LatLng
2
- attr_accessor :lat, :lng
3
-
4
- def self.demongoize(object)
5
- LatLng.new(object[1], object[0])
6
- end
7
-
8
- def initialize(lat, lng)
9
- @lat, @lng = lat, lng
10
- end
11
-
12
- def mongoize
13
- [ lng, lat ]
14
- end
15
- end
@@ -1,11 +0,0 @@
1
- class League
2
- include Mongoid::Document
3
- field :name, type: String
4
- embeds_many :divisions
5
- accepts_nested_attributes_for :divisions, allow_destroy: true
6
- before_destroy :destroy_children
7
-
8
- def destroy_children
9
- divisions.destroy_all
10
- end
11
- end
@@ -1,2 +0,0 @@
1
- class Learner < Driver
2
- end
@@ -1,6 +0,0 @@
1
- class LineItem
2
- include Mongoid::Document
3
- embedded_in :purchase
4
- belongs_to :product, polymorphic: true
5
- validates :product, presence: true
6
- end
@@ -1,8 +0,0 @@
1
- class Location
2
- include Mongoid::Document
3
- field :name
4
- field :info, type: Hash
5
- field :occupants, type: Array
6
- field :number, type: Integer
7
- embedded_in :address
8
- end
@@ -1,8 +0,0 @@
1
- class Login
2
- include Mongoid::Document
3
-
4
- field :_id, type: String, default: ->{ username }
5
-
6
- field :username, type: String
7
- field :application_id, type: Integer
8
- end
@@ -1,7 +0,0 @@
1
- class Manufacturer
2
- include Mongoid::Document
3
-
4
- field :products, type: Array, default: []
5
-
6
- validates_presence_of :products
7
- end
@@ -1,4 +0,0 @@
1
- class Meat
2
- include Mongoid::Document
3
- has_and_belongs_to_many :sandwiches
4
- end
@@ -1,4 +0,0 @@
1
- class Membership
2
- include Mongoid::Document
3
- embedded_in :account
4
- end
@@ -1,4 +0,0 @@
1
- class MixedDrink
2
- include Mongoid::Document
3
- field :name
4
- end
@@ -1,12 +0,0 @@
1
- class Movie
2
- include Mongoid::Document
3
- field :title, type: String
4
- field :poster, type: Image
5
- field :poster_thumb, type: Thumbnail
6
- has_many :ratings, as: :ratable, dependent: :nullify
7
- has_many :comments
8
-
9
- def global_set
10
- Set.new
11
- end
12
- end
@@ -1,2 +0,0 @@
1
- class MyHash < ::Hash
2
- end
@@ -1,21 +0,0 @@
1
- class Name
2
- include Mongoid::Document
3
-
4
- field :_id, type: String, default: ->{
5
- "#{first_name}-#{last_name}"
6
- }
7
-
8
- field :first_name, type: String
9
- field :last_name, type: String
10
- field :parent_title, type: String
11
-
12
- embeds_many :translations, validate: false
13
- embeds_one :language, as: :translatable, validate: false
14
- embedded_in :namable, polymorphic: true
15
-
16
- accepts_nested_attributes_for :language
17
-
18
- def set_parent=(set = false)
19
- self.parent_title = namable.title if set
20
- end
21
- end
@@ -1,5 +0,0 @@
1
- class Node
2
- include Mongoid::Document
3
- has_many :servers
4
- accepts_nested_attributes_for :servers
5
- end
@@ -1,12 +0,0 @@
1
- class Note
2
- include Mongoid::Document
3
- field :text, type: String
4
- field :saved, type: Boolean, default: false
5
- embedded_in :noteable, polymorphic: true
6
-
7
- after_save :update_saved
8
-
9
- def update_saved
10
- self.saved = true
11
- end
12
- end
@@ -1,6 +0,0 @@
1
- class OrderedPost
2
- include Mongoid::Document
3
- field :title, type: String
4
- field :rating, type: Integer
5
- belongs_to :person
6
- end
@@ -1,6 +0,0 @@
1
- class OrderedPreference
2
- include Mongoid::Document
3
- field :name, type: String
4
- field :value, type: String
5
- has_and_belongs_to_many :people, validate: false
6
- end
@@ -1,15 +0,0 @@
1
- class Oscar
2
- include Mongoid::Document
3
- field :title, type: String
4
- field :destroy_after_save, type: Boolean, default: false
5
- before_save :complain
6
-
7
- def complain
8
- if destroy_after_save?
9
- destroy
10
- true
11
- else
12
- false
13
- end
14
- end
15
- end
@@ -1,16 +0,0 @@
1
- class Override
2
- include Mongoid::Document
3
-
4
- def self.public_method
5
- end
6
-
7
- protected
8
-
9
- def self.protected_method
10
- end
11
-
12
- private
13
-
14
- def self.private_method
15
- end
16
- end
@@ -1,6 +0,0 @@
1
- module Ownable
2
- extend ActiveSupport::Concern
3
- included do
4
- belongs_to :user
5
- end
6
- end
@@ -1,6 +0,0 @@
1
- class Owner
2
- include Mongoid::Document
3
- field :name
4
- has_many :events
5
- embeds_many :birthdays
6
- end
@@ -1,5 +0,0 @@
1
- class Page
2
- include Mongoid::Document
3
- embedded_in :quiz
4
- embeds_many :page_questions
5
- end
@@ -1,4 +0,0 @@
1
- class PageQuestion
2
- include Mongoid::Document
3
- embedded_in :page
4
- end
@@ -1,7 +0,0 @@
1
- class Palette
2
- include Mongoid::Document
3
- embedded_in :canvas
4
- embeds_many :tools
5
- end
6
-
7
- require "app/models/big_palette"
@@ -1,27 +0,0 @@
1
- require 'mongoid/paranoia'
2
-
3
- class ParanoidPhone
4
- include Mongoid::Document
5
- include Mongoid::Paranoia
6
-
7
- attr_accessor :after_destroy_called, :before_destroy_called
8
-
9
- field :number, type: String
10
-
11
- embedded_in :person
12
-
13
- before_destroy :before_destroy_stub, :halt_me
14
- after_destroy :after_destroy_stub
15
-
16
- def before_destroy_stub
17
- self.before_destroy_called = true
18
- end
19
-
20
- def after_destroy_stub
21
- self.after_destroy_called = true
22
- end
23
-
24
- def halt_me
25
- person.age == 42 ? false : true
26
- end
27
- end
@@ -1,5 +0,0 @@
1
- class Parent
2
- include Mongoid::Document
3
- embeds_many :sub_items
4
- embeds_one :first_child, class_name: "Child", as: :childable
5
- end
@@ -1,6 +0,0 @@
1
- class ParentDoc
2
- include Mongoid::Document
3
- field :statistic
4
- field :children_order, type: Array, default: [] # hold all the children's id
5
- embeds_many :child_docs
6
- end
@@ -1,5 +0,0 @@
1
- class Passport
2
- include Mongoid::Document
3
- field :number, type: String
4
- embedded_in :person, autobuild: true
5
- end
@@ -1,9 +0,0 @@
1
- class Patient
2
- include Mongoid::Document
3
- field :title, type: String
4
- store_in collection: "inpatient"
5
- embeds_many :addresses, as: :addressable
6
- embeds_one :email
7
- embeds_one :name, as: :namable
8
- validates_presence_of :title, on: :create
9
- end
@@ -1,3 +0,0 @@
1
- class PdfWriter < Writer
2
- def write; end
3
- end
@@ -1 +0,0 @@
1
- class Pencil < Tool; end