Module: Mongoid::Extensions::Array
Relationships & Source Files | |
Namespace Children | |
Modules:
| |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Defined in: | lib/mongoid/extensions/array.rb |
Overview
Adds type-casting behavior to Array
class.
Instance Attribute Summary
- #multi_arged? ⇒ true | false readonly deprecated Deprecated.
-
#resizable? ⇒ true
readonly
Returns whether the object’s size can be changed.
Instance Method Summary
-
#__evolve_object_id__ ⇒ Array<BSON::ObjectId>
Evolve the array into an array of object ids.
- #__find_args__ ⇒ Array deprecated Deprecated.
-
#__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.
-
#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.
Instance Attribute Details
#multi_arged? ⇒ true
| false
(readonly)
Is the array a set of multiple arguments in a method?
# File 'lib/mongoid/extensions/array.rb', line 65
def multi_arged? !first.is_a?(Hash) && first.resizable? || size > 1 end
#resizable? ⇒ true
(readonly)
Returns whether the object’s size can be changed.
# File 'lib/mongoid/extensions/array.rb', line 102
def resizable? true end
Instance Method Details
#__evolve_object_id__ ⇒ Array
<BSON::ObjectId>
Evolve the array into an array of object ids.
# File 'lib/mongoid/extensions/array.rb', line 15
def __evolve_object_id__ map!(&:__evolve_object_id__) self end
#__find_args__ ⇒ Array
Get the array of args as arguments for a find query.
# File 'lib/mongoid/extensions/array.rb', line 27
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.
# File 'lib/mongoid/extensions/array.rb', line 38
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.
# File 'lib/mongoid/extensions/array.rb', line 54
def __mongoize_time__ ::Time.zone.local(*self) 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.
# File 'lib/mongoid/extensions/array.rb', line 91
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.