Module: Mongoid::Extensions::Object

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

Overview

Adds type-casting behavior to Object class.

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#__evolve_object_id__Object Also known as: __mongoize_object_id__

Evolve a plain object into an object id.

Examples:

Evolve the object.

object.__evolve_object_id__

Returns:



16
17
18
# File 'lib/mongoid/extensions/object.rb', line 16

def __evolve_object_id__
  self
end

#__find_args__Object

Convert the object to args for a find query.

Examples:

Convert the object to args.

object.__find_args__

Returns:



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

def __find_args__
  self
end

#__mongoize_time__Object

Deprecated.
Note:

This method should not be used, because it does not return correct results for non-Time objects. Override mongoize_time in classes that are time-like to return an instance of Time or ActiveSupport::TimeWithZone.

Mongoize a plain object into a time.

Examples:

Mongoize the object.

object.__mongoize_time__

Returns:



43
44
45
# File 'lib/mongoid/extensions/object.rb', line 43

def __mongoize_time__
  self
end

#__setter__String

Try to form a setter from this object.

Examples:

Try to form a setter.

object.__setter__

Returns:

  • (String)

    The object as a string plus =.



53
54
55
# File 'lib/mongoid/extensions/object.rb', line 53

def __setter__
  "#{self}="
end

#__sortable__Object

Get the value of the object as a mongo friendly sort value.

Examples:

Get the object as sort criteria.

object.__sortable__

Returns:



63
64
65
# File 'lib/mongoid/extensions/object.rb', line 63

def __sortable__
  self
end

#__to_inc__Object

Conversion of an object to an $inc-able value.

Examples:

Convert the object.

1.__to_inc__

Returns:



73
74
75
# File 'lib/mongoid/extensions/object.rb', line 73

def __to_inc__
  self
end

#blank_criteria?false

Deprecated.

Checks whether conditions given in this object are known to be unsatisfiable, i.e., querying with this object will always return no documents.

This method is deprecated. Mongoid now uses _mongoid_unsatisfiable_criteria? internally; this method is retained for backwards compatibility only. It always returns false.

Returns:

  • (false)

    Always false.



87
88
89
# File 'lib/mongoid/extensions/object.rb', line 87

def blank_criteria?
  false
end

#do_or_do_not(name, *args) ⇒ Object | nil

Do or do not, there is no try. – Yoda.

Examples:

Do or do not.

object.do_or_do_not(:use, "The Force")

Parameters:

Returns:

  • (Object | nil)

    The result of the method call or nil if the method does not exist.



101
102
103
# File 'lib/mongoid/extensions/object.rb', line 101

def do_or_do_not(name, *args)
  send(name, *args) if name && respond_to?(name)
end

#ivar(name) ⇒ Object | false

Get the value for an instance variable or false if it doesn’t exist.

Examples:

Get the value for an instance var.

document.ivar("person")

Parameters:

  • name (String)

    The name of the variable.

Returns:

  • (Object | false)

    The value or false.



113
114
115
116
117
118
119
120
# File 'lib/mongoid/extensions/object.rb', line 113

def ivar(name)
  var_name = "@_#{name}"
  if instance_variable_defined?(var_name)
    return instance_variable_get(var_name)
  else
    false
  end
end

#mongoizeObject

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

Examples:

Mongoize the object.

object.mongoize

Returns:



129
130
131
# File 'lib/mongoid/extensions/object.rb', line 129

def mongoize
  self
end

#multi_arged?false

Is the object multi args.

Examples:

Is the object multi args?

object.multi_arged?

Returns:

  • (false)

    false.



139
140
141
# File 'lib/mongoid/extensions/object.rb', line 139

def multi_arged?
  false
end

#numeric?false

Is the object a number?

Examples:

Is the object a number?.

object.numeric?

Returns:

  • (false)

    Always false.



149
150
151
# File 'lib/mongoid/extensions/object.rb', line 149

def numeric?
  false
end

#remove_ivar(name) ⇒ true | false

Remove the instance variable for the provided name.

Examples:

Remove the instance variable

document.remove_ivar("person")

Parameters:

  • name (String)

    The name of the variable.

Returns:

  • (true | false)

    If the variable was defined.



161
162
163
164
165
166
167
# File 'lib/mongoid/extensions/object.rb', line 161

def remove_ivar(name)
  if instance_variable_defined?("@_#{name}")
    return remove_instance_variable("@_#{name}")
  else
    false
  end
end

#resizable?false

Is the object’s size changable? Only returns true for arrays and hashes currently.

Examples:

Is the object resizable?

object.resizable?

Returns:

  • (false)

    false.



176
177
178
# File 'lib/mongoid/extensions/object.rb', line 176

def resizable?
  false
end

#substitutableObject

Get the substitutable version of an object.

Examples:

Get the substitutable.

object.substitutable

Returns:



186
187
188
# File 'lib/mongoid/extensions/object.rb', line 186

def substitutable
  self
end

#you_must(name, *args) ⇒ Object | nil

You must unlearn what you have learned. – Yoda

Examples:

You must perform this execution.

object.you_must(:use, "The Force")

Parameters:

Returns:

  • (Object | nil)

    The result of the method call or nil if the method does not exist. Nil if the object is frozen.



200
201
202
# File 'lib/mongoid/extensions/object.rb', line 200

def you_must(name, *args)
  frozen? ? nil : do_or_do_not(name, *args)
end