Module: Mongoid::Extensions::Array

Defined in:
lib/mongoid/extensions/array.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary (collapse)

Instance Method Details

- (Array<BSON::ObjectId>) __evolve_object_id__

Evolve the array into an array of object ids.

Examples:

Evolve the array to object ids.

[ id ].__evolve_object_id__

Since:

  • 3.0.0



14
15
16
17
# File 'lib/mongoid/extensions/array.rb', line 14

def __evolve_object_id__
  map!(&:__evolve_object_id__)
  self
end

- (Array) __find_args__

Get the array of args as arguments for a find query.

Examples:

Get the array as find args.

[ 1, 2, 3 ].__find_args__

Since:

  • 3.0.0



27
28
29
# File 'lib/mongoid/extensions/array.rb', line 27

def __find_args__
  flat_map{ |a| a.__find_args__ }.uniq{ |a| a.to_s }
end

- (Array<BSON::ObjectId>) __mongoize_object_id__

Mongoize the array into an array of object ids.

Examples:

Evolve the array to object ids.

[ id ].__mongoize_object_id__

Since:

  • 3.0.0



39
40
41
42
# File 'lib/mongoid/extensions/array.rb', line 39

def __mongoize_object_id__
  map!(&:__mongoize_object_id__).compact!
  self
end

- (Time) __mongoize_time__

Converts the array for storing as a time.

Examples:

Convert the array to a time.

[ 2010, 1, 1 ].__mongoize_time__

Since:

  • 3.0.0



52
53
54
# File 'lib/mongoid/extensions/array.rb', line 52

def __mongoize_time__
  ::Time.configured.local(*self)
end

- (true, false) blank_criteria?

Check if the array is part of a blank relation criteria.

Examples:

Is the array blank criteria?

[].blank_criteria?

Since:

  • 3.1.0



64
65
66
# File 'lib/mongoid/extensions/array.rb', line 64

def blank_criteria?
  any?(&:blank_criteria?)
end

- (Object) delete_one(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 ince it attempt to delete multiple in the other.

Examples:

Delete the first object.

[ "1", "2", "1" ].delete_one("1")

Since:

  • 2.1.0



106
107
108
109
# File 'lib/mongoid/extensions/array.rb', line 106

def delete_one(object)
  position = index(object)
  position ? delete_at(position) : nil
end

- (Array) mongoize

Turn the object from the ruby type we deal with to a Mongo friendly type.

Examples:

Mongoize the object.

object.mongoize

Since:

  • 3.0.0



89
90
91
# File 'lib/mongoid/extensions/array.rb', line 89

def mongoize
  ::Array.mongoize(self)
end

- (true, false) multi_arged?

Is the array a set of multiple arguments in a method?

Examples:

Is this multi args?

[ 1, 2, 3 ].multi_arged?

Since:

  • 3.0.0



76
77
78
# File 'lib/mongoid/extensions/array.rb', line 76

def multi_arged?
  !first.is_a?(Hash) && first.resizable? || size > 1
end

- (true) resizable?

Is the object's size changable?

Examples:

Is the object resizable?

object.resizable?

Since:

  • 3.0.0



119
120
121
# File 'lib/mongoid/extensions/array.rb', line 119

def resizable?
  true
end