module Mongo::Operation::Specifiable

This module contains common functionality for convenience methods getting various values from the spec.

@since 2.0.0

Constants

BYPASS_DOC_VALIDATION

Whether to bypass document level validation.

@since 2.2.0

COLL_NAME

The field for collection name.

@since 2.0.0

CURSOR_COUNT

The field for cursor count.

@since 2.0.0

CURSOR_ID

The field for cursor id.

@since 2.0.0

CURSOR_IDS

The field for cursor ids.

@since 2.0.0

DB_NAME

The field for database name.

@since 2.0.0

DELETE

The field for delete.

@since 2.0.0

DELETES

The field for deletes.

@since 2.0.0

DOCUMENTS

The field for documents.

@since 2.0.0

INDEX

The field for an index.

@since 2.0.0

INDEXES

The field for multiple indexes.

@since 2.0.0

INDEX_NAME

The field for index names.

@since 2.0.0

OPERATION_ID

The operation id constant.

@since 2.1.0

OPTIONS

The field for options.

@since 2.0.0

READ

The field name for the read preference.

@since 2.0.0

READ_CONCERN

The read concern option.

@since 2.2.0

SELECTOR

The field for a selector.

@since 2.0.0

TO_RETURN

The field for number to return.

@since 2.0.0

UPDATE

The field for update.

@since 2.0.0

UPDATES

The field for updates.

@since 2.0.0

USER

The field name for a user.

@since 2.0.0

USER_NAME

The field name for user name.

@since 2.0.0

WRITE_CONCERN

The field name for a write concern.

@since 2.0.0

Attributes

spec[R]

@return [ Hash ] spec The specification for the operation.

Public Class Methods

new(spec) click to toggle source

Create the new specifiable operation.

@example Create the new specifiable operation.

Specifiable.new(spec)

@param [ Hash ] spec The operation specification.

@see The individual operations for the values they require in their

specs.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 301
def initialize(spec)
  @spec = spec
end

Public Instance Methods

==(other) click to toggle source

Check equality of two specifiable operations.

@example Are the operations equal?

operation == other

@param [ Object ] other The other operation.

@return [ true, false ] Whether the objects are equal.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 152
def ==(other)
  return false unless other.is_a?(Specifiable)
  spec == other.spec
end
Also aliased as: eql?
bypass_document_validation() click to toggle source

Whether or not to bypass document level validation.

@example Get the #bypass_document_validation option.

specifiable.bypass_documentation_validation.

@return [ true, false ] Whether to bypass document level validation.

@since 2.2.0

# File lib/mongo/operation/specifiable.rb, line 350
def bypass_document_validation
  spec[BYPASS_DOC_VALIDATION]
end
coll_name() click to toggle source

The name of the collection to which the operation should be sent.

@example Get the collection name.

specifiable.coll_name

@return [ String ] Collection name.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 226
def coll_name
  spec[COLL_NAME]
end
cursor_count() click to toggle source

Get the cursor count from the spec.

@example Get the cursor count.

specifiable.cursor_count

@return [ Integer ] The cursor count.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 166
def cursor_count
  spec[CURSOR_COUNT]
end
cursor_id() click to toggle source

The id of the cursor created on the server.

@example Get the cursor id.

specifiable.cursor_id

@return [ Integer ] The cursor id.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 238
def cursor_id
  spec[CURSOR_ID]
end
cursor_ids() click to toggle source

The ids of the cursors to kill from the spec.

@example Get the cursor ids from the spec.

specifiable.cursor_ids

@return [ Array<Integer> ] The cursor ids.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 250
def cursor_ids
  spec[CURSOR_IDS]
end
db_name() click to toggle source

The name of the database to which the operation should be sent.

@example Get the database name.

specifiable.db_name

@return [ String ] Database name.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 178
def db_name
  spec[DB_NAME]
end
delete() click to toggle source

Get the delete document from the specification.

@example Get the delete document.

specifiable.delete

@return [ Hash ] The delete document.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 202
def delete
  spec[DELETE]
end
deletes() click to toggle source

Get the deletes from the specification.

@example Get the deletes.

specifiable.deletes

@return [ Array<BSON::Document> ] The deletes.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 190
def deletes
  spec[DELETES]
end
documents() click to toggle source

The documents to in the specification.

@example Get the documents.

specifiable.documents

@return [ Array<BSON::Document> ] The documents.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 214
def documents
  spec[DOCUMENTS]
end
eql?(other)
Alias for: ==
index() click to toggle source

Get the index from the specification.

@example Get the index specification.

specifiable.index

@return [ Hash ] The index specification.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 262
def index
  spec[INDEX]
end
index_name() click to toggle source

Get the index name from the spec.

@example Get the index name.

specifiable.index_name

@return [ String ] The index name.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 274
def index_name
  spec[INDEX_NAME]
end
indexes() click to toggle source

Get the indexes from the specification.

@example Get the index specifications.

specifiable.indexes

@return [ Hash ] The index specifications.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 286
def indexes
  spec[INDEXES]
end
namespace() click to toggle source

The namespace, consisting of the db name and collection name.

@example Get the namespace.

specifiable.namespace

@return [ String ] The namespace.

@since 2.1.0

# File lib/mongo/operation/specifiable.rb, line 468
def namespace
  "#{db_name}.#{coll_name}"
end
operation_id() click to toggle source

Get the operation id for the operation. Used for linking operations in monitoring.

@example Get the operation id.

specifiable.operation_id

@return [ Integer ] The operation id.

@since 2.1.0

# File lib/mongo/operation/specifiable.rb, line 314
def operation_id
  spec[OPERATION_ID]
end
options() click to toggle source

Get the options for the operation.

@example Get the options.

specifiable.options

@return [ Hash ] The options.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 326
def options
  spec[OPTIONS] || {}
end
ordered?() click to toggle source

Whether the operation is ordered.

@example Get the ordered value, true is the default.

specifiable.ordered?

@return [ true, false ] Whether the operation is ordered.

@since 2.1.0

# File lib/mongo/operation/specifiable.rb, line 456
def ordered?
  !!(@spec.fetch(:ordered, true))
end
read() click to toggle source

The read preference for this operation.

@example Get the read preference.

specifiable.read

@return [ Mongo::ServerSelector ] The read preference.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 444
def read
  @spec[READ] || ServerSelector.get
end
read_concern() click to toggle source

Get the read concern from the spec.

@example Get the read concern.

specifiable.read_concern

@return [ Hash ] The read concern.

@since 2.2.0

# File lib/mongo/operation/specifiable.rb, line 338
def read_concern
  spec[READ_CONCERN]
end
selector() click to toggle source

The selector for from the specification.

@example Get a selector specification.

specifiable.selector.

@return [ Hash ] The selector spec.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 362
def selector
  spec[SELECTOR]
end
to_return() click to toggle source

The number of documents to request from the server.

@example Get the to return value from the spec.

specifiable.to_return

@return [ Integer ] The number of documents to return.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 374
def to_return
  spec[TO_RETURN]
end
update() click to toggle source

The update document from the spec.

@example Get the update document.

@return [ Hash ] The update document.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 396
def update
  spec[UPDATE]
end
updates() click to toggle source

The update documents from the spec.

@example Get the update documents.

@return [ Array<BSON::Document> ] The update documents.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 385
def updates
  spec[UPDATES]
end
user() click to toggle source

The user for user related operations.

@example Get the user.

specifiable.user

@return [ Auth::User ] The user.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 408
def user
  spec[USER]
end
user_name() click to toggle source

The user name from the specification.

@example Get the user name.

specifiable.user_name

@return [ String ] The user name.

@since 2.0.

# File lib/mongo/operation/specifiable.rb, line 420
def user_name
  spec[USER_NAME]
end
write_concern() click to toggle source

The write concern to use for this operation.

@example Get the write concern.

specifiable.write_concern

@return [ Mongo::WriteConcern ] The write concern.

@since 2.0.0

# File lib/mongo/operation/specifiable.rb, line 432
def write_concern
  @spec[WRITE_CONCERN]
end