Module: BSON::Object

Defined in:
lib/bson/object.rb

Overview

Injects behaviour for all Ruby objects.

Since:

  • 2.2.4

Instance Method Summary collapse

Instance Method Details

#as_extended_json(**_options) ⇒ Object

Converts this object to a representation directly serializable to Extended JSON (github.com/mongodb/specifications/blob/master/source/extended-json.rst).

Subclasses should override this method to provide custom serialization to Extended JSON.

Returns:

  • (Object)

    The extended json representation.

Since:

  • 2.2.4



84
85
86
# File 'lib/bson/object.rb', line 84

def as_extended_json(**_options)
  self
end

#to_bson_keyObject

Objects that don’t override this method will raise an error when trying to use them as keys in a BSON document. This is only overridden in String and Symbol.

Examples:

Convert the object to a BSON key.

object.to_bson_key

Raises:

See Also:

Since:

  • 2.2.4



36
37
38
# File 'lib/bson/object.rb', line 36

def to_bson_key
  raise Error::InvalidKey.new(self)
end

#to_bson_normalized_keyObject

Converts the object to a normalized key in a BSON document.

Examples:

Convert the object to a normalized key.

object.to_bson_normalized_key

Returns:

Since:

  • 3.0.0



48
49
50
# File 'lib/bson/object.rb', line 48

def to_bson_normalized_key
  self
end

#to_bson_normalized_valueObject

Converts the object to a normalized value in a BSON document.

Examples:

Convert the object to a normalized value.

object.to_bson_normalized_value

Returns:

Since:

  • 3.0.0



60
61
62
# File 'lib/bson/object.rb', line 60

def to_bson_normalized_value
  self
end

#to_extended_json(**options) ⇒ String

Serializes this object to Extended JSON (github.com/mongodb/specifications/blob/master/source/extended-json.rst).

Subclasses should override as_extended_json rather than this method.

Parameters:

  • opts (Hash)

    a customizable set of options

Returns:

  • (String)

    The extended json serialization.

Since:

  • 2.2.4



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

def to_extended_json(**options)
  as_extended_json(**options).to_json
end