mongoid-braxton 2.0.2
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.
- data/LICENSE +20 -0
- data/README.rdoc +50 -0
- data/Rakefile +51 -0
- data/lib/config/locales/bg.yml +41 -0
- data/lib/config/locales/de.yml +41 -0
- data/lib/config/locales/en.yml +45 -0
- data/lib/config/locales/es.yml +41 -0
- data/lib/config/locales/fr.yml +42 -0
- data/lib/config/locales/hu.yml +44 -0
- data/lib/config/locales/id.yml +46 -0
- data/lib/config/locales/it.yml +39 -0
- data/lib/config/locales/ja.yml +40 -0
- data/lib/config/locales/kr.yml +65 -0
- data/lib/config/locales/nl.yml +39 -0
- data/lib/config/locales/pl.yml +39 -0
- data/lib/config/locales/pt-BR.yml +40 -0
- data/lib/config/locales/pt.yml +40 -0
- data/lib/config/locales/ro.yml +46 -0
- data/lib/config/locales/ru.yml +41 -0
- data/lib/config/locales/sv.yml +40 -0
- data/lib/config/locales/vi.yml +45 -0
- data/lib/config/locales/zh-CN.yml +33 -0
- data/lib/mongoid.rb +140 -0
- data/lib/mongoid/atomicity.rb +111 -0
- data/lib/mongoid/attributes.rb +185 -0
- data/lib/mongoid/attributes/processing.rb +145 -0
- data/lib/mongoid/callbacks.rb +23 -0
- data/lib/mongoid/collection.rb +137 -0
- data/lib/mongoid/collections.rb +71 -0
- data/lib/mongoid/collections/master.rb +37 -0
- data/lib/mongoid/collections/operations.rb +42 -0
- data/lib/mongoid/collections/retry.rb +39 -0
- data/lib/mongoid/components.rb +45 -0
- data/lib/mongoid/config.rb +349 -0
- data/lib/mongoid/config/database.rb +167 -0
- data/lib/mongoid/config/replset_database.rb +78 -0
- data/lib/mongoid/contexts.rb +19 -0
- data/lib/mongoid/contexts/enumerable.rb +275 -0
- data/lib/mongoid/contexts/enumerable/sort.rb +43 -0
- data/lib/mongoid/contexts/mongo.rb +345 -0
- data/lib/mongoid/copyable.rb +46 -0
- data/lib/mongoid/criteria.rb +357 -0
- data/lib/mongoid/criterion/builder.rb +34 -0
- data/lib/mongoid/criterion/complex.rb +34 -0
- data/lib/mongoid/criterion/creational.rb +34 -0
- data/lib/mongoid/criterion/exclusion.rb +108 -0
- data/lib/mongoid/criterion/inclusion.rb +198 -0
- data/lib/mongoid/criterion/inspection.rb +22 -0
- data/lib/mongoid/criterion/optional.rb +193 -0
- data/lib/mongoid/criterion/selector.rb +143 -0
- data/lib/mongoid/criterion/unconvertable.rb +20 -0
- data/lib/mongoid/cursor.rb +86 -0
- data/lib/mongoid/default_scope.rb +36 -0
- data/lib/mongoid/dirty.rb +253 -0
- data/lib/mongoid/document.rb +284 -0
- data/lib/mongoid/errors.rb +13 -0
- data/lib/mongoid/errors/document_not_found.rb +29 -0
- data/lib/mongoid/errors/invalid_collection.rb +19 -0
- data/lib/mongoid/errors/invalid_database.rb +20 -0
- data/lib/mongoid/errors/invalid_field.rb +19 -0
- data/lib/mongoid/errors/invalid_options.rb +16 -0
- data/lib/mongoid/errors/invalid_type.rb +26 -0
- data/lib/mongoid/errors/mixed_relations.rb +37 -0
- data/lib/mongoid/errors/mongoid_error.rb +27 -0
- data/lib/mongoid/errors/too_many_nested_attribute_records.rb +21 -0
- data/lib/mongoid/errors/unsaved_document.rb +23 -0
- data/lib/mongoid/errors/unsupported_version.rb +21 -0
- data/lib/mongoid/errors/validations.rb +24 -0
- data/lib/mongoid/extensions.rb +123 -0
- data/lib/mongoid/extensions/array/conversions.rb +23 -0
- data/lib/mongoid/extensions/array/parentization.rb +13 -0
- data/lib/mongoid/extensions/big_decimal/conversions.rb +19 -0
- data/lib/mongoid/extensions/binary/conversions.rb +17 -0
- data/lib/mongoid/extensions/boolean/conversions.rb +27 -0
- data/lib/mongoid/extensions/date/conversions.rb +25 -0
- data/lib/mongoid/extensions/datetime/conversions.rb +12 -0
- data/lib/mongoid/extensions/false_class/equality.rb +13 -0
- data/lib/mongoid/extensions/float/conversions.rb +20 -0
- data/lib/mongoid/extensions/hash/conversions.rb +19 -0
- data/lib/mongoid/extensions/hash/criteria_helpers.rb +22 -0
- data/lib/mongoid/extensions/hash/scoping.rb +12 -0
- data/lib/mongoid/extensions/integer/conversions.rb +20 -0
- data/lib/mongoid/extensions/nil/collectionization.rb +12 -0
- data/lib/mongoid/extensions/object/checks.rb +32 -0
- data/lib/mongoid/extensions/object/conversions.rb +25 -0
- data/lib/mongoid/extensions/object/reflections.rb +17 -0
- data/lib/mongoid/extensions/object/yoda.rb +27 -0
- data/lib/mongoid/extensions/object_id/conversions.rb +96 -0
- data/lib/mongoid/extensions/proc/scoping.rb +12 -0
- data/lib/mongoid/extensions/range/conversions.rb +25 -0
- data/lib/mongoid/extensions/set/conversions.rb +20 -0
- data/lib/mongoid/extensions/string/conversions.rb +34 -0
- data/lib/mongoid/extensions/string/inflections.rb +97 -0
- data/lib/mongoid/extensions/symbol/conversions.rb +21 -0
- data/lib/mongoid/extensions/symbol/inflections.rb +40 -0
- data/lib/mongoid/extensions/time_conversions.rb +38 -0
- data/lib/mongoid/extensions/true_class/equality.rb +13 -0
- data/lib/mongoid/extras.rb +42 -0
- data/lib/mongoid/factory.rb +37 -0
- data/lib/mongoid/field.rb +162 -0
- data/lib/mongoid/fields.rb +183 -0
- data/lib/mongoid/finders.rb +127 -0
- data/lib/mongoid/hierarchy.rb +85 -0
- data/lib/mongoid/identity.rb +92 -0
- data/lib/mongoid/indexes.rb +38 -0
- data/lib/mongoid/inspection.rb +54 -0
- data/lib/mongoid/javascript.rb +21 -0
- data/lib/mongoid/javascript/functions.yml +37 -0
- data/lib/mongoid/json.rb +16 -0
- data/lib/mongoid/keys.rb +131 -0
- data/lib/mongoid/logger.rb +18 -0
- data/lib/mongoid/matchers.rb +32 -0
- data/lib/mongoid/matchers/all.rb +11 -0
- data/lib/mongoid/matchers/default.rb +70 -0
- data/lib/mongoid/matchers/exists.rb +13 -0
- data/lib/mongoid/matchers/gt.rb +11 -0
- data/lib/mongoid/matchers/gte.rb +11 -0
- data/lib/mongoid/matchers/in.rb +11 -0
- data/lib/mongoid/matchers/lt.rb +11 -0
- data/lib/mongoid/matchers/lte.rb +11 -0
- data/lib/mongoid/matchers/ne.rb +11 -0
- data/lib/mongoid/matchers/nin.rb +11 -0
- data/lib/mongoid/matchers/or.rb +30 -0
- data/lib/mongoid/matchers/size.rb +11 -0
- data/lib/mongoid/matchers/strategies.rb +63 -0
- data/lib/mongoid/multi_database.rb +11 -0
- data/lib/mongoid/multi_parameter_attributes.rb +82 -0
- data/lib/mongoid/named_scope.rb +137 -0
- data/lib/mongoid/nested_attributes.rb +51 -0
- data/lib/mongoid/observer.rb +67 -0
- data/lib/mongoid/paranoia.rb +103 -0
- data/lib/mongoid/paths.rb +61 -0
- data/lib/mongoid/persistence.rb +240 -0
- data/lib/mongoid/persistence/atomic.rb +88 -0
- data/lib/mongoid/persistence/atomic/add_to_set.rb +32 -0
- data/lib/mongoid/persistence/atomic/inc.rb +28 -0
- data/lib/mongoid/persistence/atomic/operation.rb +44 -0
- data/lib/mongoid/persistence/atomic/pull_all.rb +33 -0
- data/lib/mongoid/persistence/atomic/push.rb +28 -0
- data/lib/mongoid/persistence/command.rb +71 -0
- data/lib/mongoid/persistence/insert.rb +53 -0
- data/lib/mongoid/persistence/insert_embedded.rb +43 -0
- data/lib/mongoid/persistence/remove.rb +44 -0
- data/lib/mongoid/persistence/remove_all.rb +40 -0
- data/lib/mongoid/persistence/remove_embedded.rb +48 -0
- data/lib/mongoid/persistence/update.rb +77 -0
- data/lib/mongoid/railtie.rb +139 -0
- data/lib/mongoid/railties/database.rake +171 -0
- data/lib/mongoid/railties/document.rb +12 -0
- data/lib/mongoid/relations.rb +107 -0
- data/lib/mongoid/relations/accessors.rb +175 -0
- data/lib/mongoid/relations/auto_save.rb +34 -0
- data/lib/mongoid/relations/binding.rb +26 -0
- data/lib/mongoid/relations/bindings.rb +9 -0
- data/lib/mongoid/relations/bindings/embedded/in.rb +82 -0
- data/lib/mongoid/relations/bindings/embedded/many.rb +98 -0
- data/lib/mongoid/relations/bindings/embedded/one.rb +66 -0
- data/lib/mongoid/relations/bindings/referenced/in.rb +74 -0
- data/lib/mongoid/relations/bindings/referenced/many.rb +96 -0
- data/lib/mongoid/relations/bindings/referenced/many_to_many.rb +103 -0
- data/lib/mongoid/relations/bindings/referenced/one.rb +66 -0
- data/lib/mongoid/relations/builder.rb +42 -0
- data/lib/mongoid/relations/builders.rb +79 -0
- data/lib/mongoid/relations/builders/embedded/in.rb +25 -0
- data/lib/mongoid/relations/builders/embedded/many.rb +32 -0
- data/lib/mongoid/relations/builders/embedded/one.rb +26 -0
- data/lib/mongoid/relations/builders/nested_attributes/many.rb +126 -0
- data/lib/mongoid/relations/builders/nested_attributes/one.rb +135 -0
- data/lib/mongoid/relations/builders/referenced/in.rb +29 -0
- data/lib/mongoid/relations/builders/referenced/many.rb +47 -0
- data/lib/mongoid/relations/builders/referenced/many_to_many.rb +29 -0
- data/lib/mongoid/relations/builders/referenced/one.rb +27 -0
- data/lib/mongoid/relations/cascading.rb +55 -0
- data/lib/mongoid/relations/cascading/delete.rb +19 -0
- data/lib/mongoid/relations/cascading/destroy.rb +19 -0
- data/lib/mongoid/relations/cascading/nullify.rb +18 -0
- data/lib/mongoid/relations/cascading/strategy.rb +26 -0
- data/lib/mongoid/relations/constraint.rb +42 -0
- data/lib/mongoid/relations/cyclic.rb +103 -0
- data/lib/mongoid/relations/embedded/atomic.rb +86 -0
- data/lib/mongoid/relations/embedded/atomic/operation.rb +63 -0
- data/lib/mongoid/relations/embedded/atomic/pull.rb +65 -0
- data/lib/mongoid/relations/embedded/atomic/push_all.rb +59 -0
- data/lib/mongoid/relations/embedded/atomic/set.rb +61 -0
- data/lib/mongoid/relations/embedded/atomic/unset.rb +41 -0
- data/lib/mongoid/relations/embedded/in.rb +173 -0
- data/lib/mongoid/relations/embedded/many.rb +499 -0
- data/lib/mongoid/relations/embedded/one.rb +170 -0
- data/lib/mongoid/relations/macros.rb +310 -0
- data/lib/mongoid/relations/many.rb +215 -0
- data/lib/mongoid/relations/metadata.rb +539 -0
- data/lib/mongoid/relations/nested_builder.rb +68 -0
- data/lib/mongoid/relations/one.rb +47 -0
- data/lib/mongoid/relations/polymorphic.rb +54 -0
- data/lib/mongoid/relations/proxy.rb +143 -0
- data/lib/mongoid/relations/referenced/batch.rb +71 -0
- data/lib/mongoid/relations/referenced/batch/insert.rb +57 -0
- data/lib/mongoid/relations/referenced/in.rb +216 -0
- data/lib/mongoid/relations/referenced/many.rb +516 -0
- data/lib/mongoid/relations/referenced/many_to_many.rb +396 -0
- data/lib/mongoid/relations/referenced/one.rb +222 -0
- data/lib/mongoid/relations/reflections.rb +45 -0
- data/lib/mongoid/safe.rb +23 -0
- data/lib/mongoid/safety.rb +207 -0
- data/lib/mongoid/scope.rb +31 -0
- data/lib/mongoid/serialization.rb +99 -0
- data/lib/mongoid/sharding.rb +51 -0
- data/lib/mongoid/state.rb +67 -0
- data/lib/mongoid/timestamps.rb +14 -0
- data/lib/mongoid/timestamps/created.rb +31 -0
- data/lib/mongoid/timestamps/updated.rb +33 -0
- data/lib/mongoid/validations.rb +124 -0
- data/lib/mongoid/validations/associated.rb +44 -0
- data/lib/mongoid/validations/referenced.rb +58 -0
- data/lib/mongoid/validations/uniqueness.rb +85 -0
- data/lib/mongoid/version.rb +4 -0
- data/lib/mongoid/versioning.rb +113 -0
- data/lib/rails/generators/mongoid/config/config_generator.rb +25 -0
- data/lib/rails/generators/mongoid/config/templates/mongoid.yml +20 -0
- data/lib/rails/generators/mongoid/model/model_generator.rb +24 -0
- data/lib/rails/generators/mongoid/model/templates/model.rb +19 -0
- data/lib/rails/generators/mongoid/observer/observer_generator.rb +17 -0
- data/lib/rails/generators/mongoid/observer/templates/observer.rb +4 -0
- data/lib/rails/generators/mongoid_generator.rb +70 -0
- data/lib/rails/mongoid.rb +58 -0
- metadata +406 -0
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc
|
|
3
|
+
module Errors #:nodoc
|
|
4
|
+
|
|
5
|
+
# Default parent Mongoid error for all custom errors. This handles the base
|
|
6
|
+
# key for the translations and provides the convenience method for
|
|
7
|
+
# translating the messages.
|
|
8
|
+
class MongoidError < StandardError
|
|
9
|
+
BASE_KEY = "mongoid.errors.messages"
|
|
10
|
+
|
|
11
|
+
# Given the key of the specific error and the options hash, translate the
|
|
12
|
+
# message.
|
|
13
|
+
#
|
|
14
|
+
# Options:
|
|
15
|
+
#
|
|
16
|
+
# key: The key of the error in the locales.
|
|
17
|
+
# options: The objects to pass to create the message.
|
|
18
|
+
#
|
|
19
|
+
# Returns:
|
|
20
|
+
#
|
|
21
|
+
# A localized error message string.
|
|
22
|
+
def translate(key, options)
|
|
23
|
+
::I18n.translate("#{BASE_KEY}.#{key}", options)
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
module Mongoid #:nodoc
|
|
2
|
+
module Errors #:nodoc
|
|
3
|
+
|
|
4
|
+
# This error is raised when trying to create set nested records above the
|
|
5
|
+
# specified :limit
|
|
6
|
+
#
|
|
7
|
+
# Example:
|
|
8
|
+
#
|
|
9
|
+
#<tt>TooManyNestedAttributeRecords.new('association', limit)
|
|
10
|
+
class TooManyNestedAttributeRecords < MongoidError
|
|
11
|
+
def initialize(association, limit)
|
|
12
|
+
super(
|
|
13
|
+
translate(
|
|
14
|
+
"too_many_nested_attribute_records",
|
|
15
|
+
{ :association => association, :limit => limit }
|
|
16
|
+
)
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc
|
|
3
|
+
module Errors #:nodoc
|
|
4
|
+
|
|
5
|
+
# Raised when attempting to call create or create! through a
|
|
6
|
+
# references_many when the parent document has not been saved. This
|
|
7
|
+
# prevents the child from getting presisted and immediately being orphaned.
|
|
8
|
+
class UnsavedDocument < MongoidError
|
|
9
|
+
|
|
10
|
+
attr_reader :base, :document
|
|
11
|
+
|
|
12
|
+
def initialize(base, document)
|
|
13
|
+
@base, @document = base, document
|
|
14
|
+
super(
|
|
15
|
+
translate(
|
|
16
|
+
"unsaved_document",
|
|
17
|
+
{ :base => base.class.name, :document => document.class.name }
|
|
18
|
+
)
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc
|
|
3
|
+
module Errors #:nodoc
|
|
4
|
+
|
|
5
|
+
# Raised when the database version is not supported by Mongoid.
|
|
6
|
+
#
|
|
7
|
+
# Example:
|
|
8
|
+
#
|
|
9
|
+
# <tt>UnsupportedVersion.new(Mongo::ServerVersion.new("1.3.1"))</tt>
|
|
10
|
+
class UnsupportedVersion < MongoidError
|
|
11
|
+
def initialize(version)
|
|
12
|
+
super(
|
|
13
|
+
translate(
|
|
14
|
+
"unsupported_version",
|
|
15
|
+
{ :version => version, :mongo_version => Mongoid::MONGODB_VERSION }
|
|
16
|
+
)
|
|
17
|
+
)
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc
|
|
3
|
+
module Errors #:nodoc
|
|
4
|
+
|
|
5
|
+
# Raised when a persistence method ending in ! fails validation. The message
|
|
6
|
+
# will contain the full error messages from the +Document+ in question.
|
|
7
|
+
#
|
|
8
|
+
# Example:
|
|
9
|
+
#
|
|
10
|
+
# <tt>Validations.new(person.errors)</tt>
|
|
11
|
+
class Validations < MongoidError
|
|
12
|
+
attr_reader :document
|
|
13
|
+
def initialize(document)
|
|
14
|
+
@document = document
|
|
15
|
+
super(
|
|
16
|
+
translate(
|
|
17
|
+
"validations",
|
|
18
|
+
{ :errors => document.errors.full_messages.join(", ") }
|
|
19
|
+
)
|
|
20
|
+
)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require "mongoid/extensions/time_conversions"
|
|
3
|
+
require "mongoid/extensions/array/conversions"
|
|
4
|
+
require "mongoid/extensions/array/parentization"
|
|
5
|
+
require "mongoid/extensions/set/conversions"
|
|
6
|
+
require "mongoid/extensions/big_decimal/conversions"
|
|
7
|
+
require "mongoid/extensions/binary/conversions"
|
|
8
|
+
require "mongoid/extensions/boolean/conversions"
|
|
9
|
+
require "mongoid/extensions/date/conversions"
|
|
10
|
+
require "mongoid/extensions/datetime/conversions"
|
|
11
|
+
require "mongoid/extensions/false_class/equality"
|
|
12
|
+
require "mongoid/extensions/float/conversions"
|
|
13
|
+
require "mongoid/extensions/hash/conversions"
|
|
14
|
+
require "mongoid/extensions/hash/criteria_helpers"
|
|
15
|
+
require "mongoid/extensions/hash/scoping"
|
|
16
|
+
require "mongoid/extensions/integer/conversions"
|
|
17
|
+
require "mongoid/extensions/nil/collectionization"
|
|
18
|
+
require "mongoid/extensions/object/checks"
|
|
19
|
+
require "mongoid/extensions/object/conversions"
|
|
20
|
+
require "mongoid/extensions/object/reflections"
|
|
21
|
+
require "mongoid/extensions/object/yoda"
|
|
22
|
+
require "mongoid/extensions/proc/scoping"
|
|
23
|
+
require "mongoid/extensions/range/conversions"
|
|
24
|
+
require "mongoid/extensions/string/conversions"
|
|
25
|
+
require "mongoid/extensions/string/inflections"
|
|
26
|
+
require "mongoid/extensions/symbol/inflections"
|
|
27
|
+
require "mongoid/extensions/symbol/conversions"
|
|
28
|
+
require "mongoid/extensions/true_class/equality"
|
|
29
|
+
require "mongoid/extensions/object_id/conversions"
|
|
30
|
+
|
|
31
|
+
class Array #:nodoc
|
|
32
|
+
include Mongoid::Extensions::Array::Conversions
|
|
33
|
+
include Mongoid::Extensions::Array::Parentization
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
class Set #:nodoc
|
|
37
|
+
include Mongoid::Extensions::Set::Conversions
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
class BigDecimal #:nodoc
|
|
41
|
+
extend Mongoid::Extensions::BigDecimal::Conversions
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
class Binary #:nodoc
|
|
45
|
+
extend Mongoid::Extensions::Binary::Conversions
|
|
46
|
+
end
|
|
47
|
+
|
|
48
|
+
class Boolean #:nodoc
|
|
49
|
+
include Mongoid::Extensions::Boolean::Conversions
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
class DateTime #:nodoc
|
|
53
|
+
extend Mongoid::Extensions::TimeConversions
|
|
54
|
+
extend Mongoid::Extensions::DateTime::Conversions
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
class Date #:nodoc
|
|
58
|
+
extend Mongoid::Extensions::TimeConversions
|
|
59
|
+
extend Mongoid::Extensions::Date::Conversions
|
|
60
|
+
end
|
|
61
|
+
|
|
62
|
+
class FalseClass #:nodoc
|
|
63
|
+
include Mongoid::Extensions::FalseClass::Equality
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
class Float #:nodoc
|
|
67
|
+
extend Mongoid::Extensions::Float::Conversions
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
class Hash #:nodoc
|
|
71
|
+
include Mongoid::Extensions::Hash::CriteriaHelpers
|
|
72
|
+
include Mongoid::Extensions::Hash::Scoping
|
|
73
|
+
include Mongoid::Extensions::Hash::Conversions
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
class Integer #:nodoc
|
|
77
|
+
extend Mongoid::Extensions::Integer::Conversions
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
class NilClass #:nodoc
|
|
81
|
+
include Mongoid::Extensions::Nil::Collectionization
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
class Object #:nodoc:
|
|
85
|
+
include Mongoid::Extensions::Object::Checks
|
|
86
|
+
include Mongoid::Extensions::Object::Conversions
|
|
87
|
+
include Mongoid::Extensions::Object::Reflections
|
|
88
|
+
include Mongoid::Extensions::Object::Yoda
|
|
89
|
+
end
|
|
90
|
+
|
|
91
|
+
class Proc #:nodoc:
|
|
92
|
+
include Mongoid::Extensions::Proc::Scoping
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
class Range
|
|
96
|
+
include Mongoid::Extensions::Range::Conversions
|
|
97
|
+
end
|
|
98
|
+
|
|
99
|
+
class String #:nodoc
|
|
100
|
+
include Mongoid::Extensions::String::Inflections
|
|
101
|
+
include Mongoid::Extensions::String::Conversions
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
class Symbol #:nodoc
|
|
105
|
+
remove_method :size if instance_methods.include? :size # temporal fix for ruby 1.9
|
|
106
|
+
include Mongoid::Extensions::Symbol::Inflections
|
|
107
|
+
include Mongoid::Extensions::Symbol::Conversions
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
class Time #:nodoc
|
|
111
|
+
extend Mongoid::Extensions::TimeConversions
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
class TrueClass #:nodoc
|
|
115
|
+
include Mongoid::Extensions::TrueClass::Equality
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
class BSON::ObjectId #:nodoc
|
|
119
|
+
extend Mongoid::Extensions::ObjectId::Conversions
|
|
120
|
+
def as_json(options = nil)
|
|
121
|
+
to_s
|
|
122
|
+
end
|
|
123
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc:
|
|
3
|
+
module Extensions #:nodoc:
|
|
4
|
+
module Array #:nodoc:
|
|
5
|
+
# This module converts arrays into mongoid related objects.
|
|
6
|
+
module Conversions #:nodoc:
|
|
7
|
+
extend ActiveSupport::Concern
|
|
8
|
+
|
|
9
|
+
module ClassMethods #:nodoc:
|
|
10
|
+
def raise_or_return(value)
|
|
11
|
+
unless value.nil? || value.is_a?(::Array)
|
|
12
|
+
raise Mongoid::Errors::InvalidType.new(::Array, value)
|
|
13
|
+
end
|
|
14
|
+
value
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
alias :get :raise_or_return
|
|
18
|
+
alias :set :raise_or_return
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc:
|
|
3
|
+
module Extensions #:nodoc:
|
|
4
|
+
module Array #:nodoc:
|
|
5
|
+
module Parentization #:nodoc:
|
|
6
|
+
# Adds the parent document to each element in the array.
|
|
7
|
+
def parentize(parent)
|
|
8
|
+
each { |obj| obj.parentize(parent) }
|
|
9
|
+
end
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
require "bigdecimal"
|
|
3
|
+
|
|
4
|
+
module Mongoid #:nodoc:
|
|
5
|
+
module Extensions #:nodoc:
|
|
6
|
+
module BigDecimal #:nodoc:
|
|
7
|
+
module Conversions #:nodoc:
|
|
8
|
+
# Get the string as a +BigDecimal+
|
|
9
|
+
def get(value)
|
|
10
|
+
value ? ::BigDecimal.new(value) : value
|
|
11
|
+
end
|
|
12
|
+
# Set the value in the hash as a string.
|
|
13
|
+
def set(value)
|
|
14
|
+
value ? value.to_s : value
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc:
|
|
3
|
+
module Extensions #:nodoc:
|
|
4
|
+
module Binary #:nodoc:
|
|
5
|
+
module Conversions #:nodoc:
|
|
6
|
+
# Get the value from the db hash.
|
|
7
|
+
def get(value)
|
|
8
|
+
value
|
|
9
|
+
end
|
|
10
|
+
# Set the value in the db hash.
|
|
11
|
+
def set(value)
|
|
12
|
+
value
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc:
|
|
3
|
+
module Extensions #:nodoc:
|
|
4
|
+
module Boolean #:nodoc:
|
|
5
|
+
module Conversions #:nodoc:
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
BOOLEAN_MAP = {
|
|
9
|
+
true => true, "true" => true, "TRUE" => true, "1" => true, 1 => true, 1.0 => true,
|
|
10
|
+
false => false, "false" => false, "FALSE" => false, "0" => false, 0 => false, 0.0 => false
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
module ClassMethods #:nodoc
|
|
14
|
+
|
|
15
|
+
def set(value)
|
|
16
|
+
value = BOOLEAN_MAP[value]
|
|
17
|
+
value.nil? ? nil : value
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def get(value)
|
|
21
|
+
value
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc:
|
|
3
|
+
module Extensions #:nodoc:
|
|
4
|
+
module Date #:nodoc:
|
|
5
|
+
module Conversions #:nodoc:
|
|
6
|
+
def get(value)
|
|
7
|
+
return nil if value.blank?
|
|
8
|
+
if Mongoid::Config.use_utc?
|
|
9
|
+
value.to_date
|
|
10
|
+
else
|
|
11
|
+
::Date.new(value.year, value.month, value.day)
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
protected
|
|
16
|
+
|
|
17
|
+
def convert_to_time(value)
|
|
18
|
+
value = ::Date.parse(value) if value.is_a?(::String)
|
|
19
|
+
value = ::Date.civil(*value) if value.is_a?(::Array)
|
|
20
|
+
::Time.utc(value.year, value.month, value.day)
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc:
|
|
3
|
+
module Extensions #:nodoc:
|
|
4
|
+
module Float #:nodoc:
|
|
5
|
+
module Conversions #:nodoc:
|
|
6
|
+
def set(value)
|
|
7
|
+
return nil if value.blank?
|
|
8
|
+
begin
|
|
9
|
+
Float(value)
|
|
10
|
+
rescue ArgumentError => e
|
|
11
|
+
value
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
def get(value)
|
|
15
|
+
value
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
module Mongoid #:nodoc:
|
|
3
|
+
module Extensions #:nodoc:
|
|
4
|
+
module Hash #:nodoc:
|
|
5
|
+
module Conversions #:nodoc:
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
module ClassMethods #:nodoc:
|
|
9
|
+
def get(value)
|
|
10
|
+
value
|
|
11
|
+
end
|
|
12
|
+
def set(value)
|
|
13
|
+
value
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|