Module: Mongoid::Clients::Options::ClassMethods

Defined in:
build/mongoid-7.0/lib/mongoid/clients/options.rb

Instance Method Summary collapse

Instance Method Details

#client_nameObject



61
62
63
# File 'build/mongoid-7.0/lib/mongoid/clients/options.rb', line 61

def client_name
  persistence_context.client_name
end

#collectionObject



73
74
75
# File 'build/mongoid-7.0/lib/mongoid/clients/options.rb', line 73

def collection
  persistence_context.collection
end

#collection_nameObject



65
66
67
# File 'build/mongoid-7.0/lib/mongoid/clients/options.rb', line 65

def collection_name
  persistence_context.collection_name
end

#database_nameObject



69
70
71
# File 'build/mongoid-7.0/lib/mongoid/clients/options.rb', line 69

def database_name
  persistence_context.database_name
end

#mongo_clientObject



77
78
79
# File 'build/mongoid-7.0/lib/mongoid/clients/options.rb', line 77

def mongo_client
  persistence_context.client
end

#persistence_contextObject



104
105
106
# File 'build/mongoid-7.0/lib/mongoid/clients/options.rb', line 104

def persistence_context
  PersistenceContext.get(self) || PersistenceContext.new(self)
end

#with(options, &block) ⇒ Object

Change the persistence context for this class during the block.

Examples:

Save the current document to a different collection.

Model.with(collection: "secondary") do |m|
  m.create
end

Parameters:

  • options (Hash)

    The storage options.

Options Hash (options):

  • :collection (String, Symbol)

    The collection name.

  • :database (String, Symbol)

    The database name.

  • :client (String, Symbol)

    The client name.

Since:

  • 6.0.0



95
96
97
98
99
100
101
102
# File 'build/mongoid-7.0/lib/mongoid/clients/options.rb', line 95

def with(options, &block)
  original_context = PersistenceContext.get(self)
  original_cluster = persistence_context.cluster
  PersistenceContext.set(self, options)
  yield self
ensure
  PersistenceContext.clear(self, original_cluster, original_context)
end