Module: Mongoid::Extensions::Array
- Defined in:
- build/mongoid-8.1/lib/mongoid/extensions/array.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#__evolve_object_id__ ⇒ Array<BSON::ObjectId>
Evolve the array into an array of object ids.
-
#__find_args__ ⇒ Array
Get the array of args as arguments for a find query.
-
#__mongoize_object_id__ ⇒ Array<BSON::ObjectId>
Mongoize the array into an array of object ids.
-
#__mongoize_time__ ⇒ Time | ActiveSupport::TimeWithZone
Converts the array for storing as a time.
- #blank_criteria? ⇒ false deprecated Deprecated.
-
#delete_one(object) ⇒ Object
Delete the first object in the array that is equal to the supplied object and return it.
-
#mongoize ⇒ Array | nil
Turn the object from the ruby type we deal with to a Mongo friendly type.
-
#multi_arged? ⇒ true | false
Is the array a set of multiple arguments in a method?.
-
#resizable? ⇒ true
Returns whether the object’s size can be changed.
Instance Method Details
#__evolve_object_id__ ⇒ Array<BSON::ObjectId>
Evolve the array into an array of object ids.
13 14 15 16 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 13 def __evolve_object_id__ map!(&:__evolve_object_id__) self end |
#__find_args__ ⇒ Array
Get the array of args as arguments for a find query.
24 25 26 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 24 def __find_args__ flat_map{ |a| a.__find_args__ }.uniq{ |a| a.to_s } end |
#__mongoize_object_id__ ⇒ Array<BSON::ObjectId>
Mongoize the array into an array of object ids.
34 35 36 37 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 34 def __mongoize_object_id__ map!(&:__mongoize_object_id__).compact! self end |
#__mongoize_time__ ⇒ Time | ActiveSupport::TimeWithZone
Returns a local time in the default time zone.
Converts the array for storing as a time.
50 51 52 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 50 def __mongoize_time__ ::Time.configured.local(*self) end |
#blank_criteria? ⇒ false
Checks whether conditions given in this array are known to be unsatisfiable, i.e., querying with this array will always return no documents.
This method used to assume that the array is the list of criteria to be used with an $and operator. This assumption is no longer made; therefore, since the interpretation of conditions in the array differs between $and, $or and $nor operators, this method now always returns false.
This method is deprecated. Mongoid now uses _mongoid_unsatisfiable_criteria?
internally; this method is retained for backwards compatibility only. It always returns false.
70 71 72 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 70 def blank_criteria? false end |
#delete_one(object) ⇒ Object
Delete the first object in the array that is equal to the supplied object and return it. This is much faster than performing a standard delete for large arrays since it does not perform multiple deletes.
105 106 107 108 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 105 def delete_one(object) position = index(object) position ? delete_at(position) : nil end |
#mongoize ⇒ Array | nil
Turn the object from the ruby type we deal with to a Mongo friendly type.
91 92 93 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 91 def mongoize ::Array.mongoize(self) end |
#multi_arged? ⇒ true | false
Is the array a set of multiple arguments in a method?
80 81 82 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 80 def multi_arged? !first.is_a?(Hash) && first.resizable? || size > 1 end |
#resizable? ⇒ true
Returns whether the object’s size can be changed.
116 117 118 |
# File 'build/mongoid-8.1/lib/mongoid/extensions/array.rb', line 116 def resizable? true end |