Module: Mongoid::Criteria::Queryable::Extensions::Array

Defined in:
build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb

Overview

The array module adds custom behavior for Origin onto the Array class.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#__add__(object) ⇒ Object

Combine the two objects using the add strategy.

Examples:

Add the object to the array.

[ 1, 2, 3 ].__add__(4)

Parameters:

  • object (Object)

    The object to add.

Returns:

  • (Object)

    The result of the add.

Since:

  • 1.0.0



22
23
24
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 22

def __add__(object)
  object.__add_from_array__(self)
end

#__array__Array

Return the object as an array.

Examples:

Get the array.

[ 1, 2 ].__array__

Returns:

Since:

  • 1.0.0



34
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 34

def __array__; self; end

#__deep_copy__Array

Makes a deep copy of the array, deep copying every element inside the array.

Examples:

Get a deep copy of the array.

[ 1, 2, 3 ].__deep_copy__

Returns:

  • (Array)

    The deep copy of the array.

Since:

  • 1.0.0



45
46
47
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 45

def __deep_copy__
  map { |value| value.__deep_copy__ }
end

#__evolve_date__Array<Time>

Evolve the array into an array of mongo friendly dates. (Times at midnight).

Examples:

Evolve the array to dates.

[ Date.new(2010, 1, 1) ].__evolve_date__

Returns:

  • (Array<Time>)

    The array as times at midnight UTC.

Since:

  • 1.0.0



58
59
60
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 58

def __evolve_date__
  map { |value| value.__evolve_date__ }
end

#__evolve_time__Array<Time>

Evolve the array to an array of times.

Examples:

Evolve the array to times.

[ 1231231231 ].__evolve_time__

Returns:

Since:

  • 1.0.0



84
85
86
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 84

def __evolve_time__
  map { |value| value.__evolve_time__ }
end

#__expand_complex__Array

Get the object as expanded.

Examples:

Get the object expanded.

obj.__expand_complex__

Returns:

  • (Array)

    The expanded array.

Since:

  • 1.1.0



70
71
72
73
74
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 70

def __expand_complex__
  map do |value|
    value.__expand_complex__
  end
end

#__intersect__(object) ⇒ Object

Combine the two objects using an intersection strategy.

Examples:

Interset with the object.

[ 1, 2 ].__intersect__(3)

Parameters:

  • object (Object)

    The object to intersect with.

Returns:

  • (Object)

    The result of the intersection.

Since:

  • 1.0.0



98
99
100
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 98

def __intersect__(object)
  object.__intersect_from_array__(self)
end

#__sort_option__Hash

Gets the array as options in the proper format to pass as MongoDB sort criteria.

Examples:

Get the array as sorting options.

[ :field, 1 ].__sort_option__

Returns:

  • (Hash)

    The array as sort criterion.

Since:

  • 1.0.0



111
112
113
114
115
116
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 111

def __sort_option__
  multi.inject({}) do |options, criteria|
    options.merge!(criteria.__sort_pair__)
    options
  end
end

#__sort_pair__Hash

Get the array as a sort pair.

Examples:

Get the array as field/direction pair.

[ field, 1 ].__sort_pair__

Returns:

  • (Hash)

    The field/direction pair.

Since:

  • 1.0.0



126
127
128
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 126

def __sort_pair__
  { first => last.to_direction }
end

#update_values(&block) ⇒ Array

Update all the values in the hash with the provided block.

Examples:

Update the values in place.

[ 1, 2, 3 ].update_values(&:to_s)

Parameters:

  • block (Proc)

    The block to execute on each value.

Returns:

Since:

  • 1.0.0



140
141
142
# File 'build/mongoid-master/lib/mongoid/criteria/queryable/extensions/array.rb', line 140

def update_values(&block)
  replace(map(&block))
end