module Mongoid::Threaded::Lifecycle

This module contains convenience methods for document lifecycle that resides on thread locals.

Private Instance Methods

_assigning() { || ... } click to toggle source

Begin the assignment of attributes. While in this block embedded documents will not autosave themselves in order to allow the document to be in a valid state.

@example Execute the assignment.

_assigning do
  person.attributes = { :addresses => [ address ] }
end

@return [ Object ] The yielded value.

@since 2.2.0

# File lib/mongoid/threaded/lifecycle.rb, line 23
def _assigning
  Threaded.begin_execution("assign")
  yield
ensure
  Threaded.exit_execution("assign")
end
_assigning?() click to toggle source

Is the current thread in assigning mode?

@example Is the current thread in assigning mode?

proxy._assigning?

@return [ true, false ] If the thread is assigning.

@since 2.1.0

# File lib/mongoid/threaded/lifecycle.rb, line 38
def _assigning?
  Threaded.executing?("assign")
end
_binding() { || ... } click to toggle source

Execute a block in binding mode.

@example Execute in binding mode.

binding do
  relation.push(doc)
end

@return [ Object ] The return value of the block.

@since 2.1.0

# File lib/mongoid/threaded/lifecycle.rb, line 52
def _binding
  Threaded.begin_execution("bind")
  yield
ensure
  Threaded.exit_execution("bind")
end
_binding?() click to toggle source

Is the current thread in binding mode?

@example Is the current thread in binding mode?

proxy.binding?

@return [ true, false ] If the thread is binding.

@since 2.1.0

# File lib/mongoid/threaded/lifecycle.rb, line 67
def _binding?
  Threaded.executing?("bind")
end
_building() { || ... } click to toggle source

Execute a block in building mode.

@example Execute in building mode.

_building do
  relation.push(doc)
end

@return [ Object ] The return value of the block.

@since 2.1.0

# File lib/mongoid/threaded/lifecycle.rb, line 81
def _building
  Threaded.begin_execution("build")
  yield
ensure
  Threaded.exit_execution("build")
end
_building?() click to toggle source

Is the current thread in building mode?

@example Is the current thread in building mode?

proxy._building?

@return [ true, false ] If the thread is building.

@since 2.1.0

# File lib/mongoid/threaded/lifecycle.rb, line 96
def _building?
  Threaded.executing?("build")
end
_creating?() click to toggle source

Is the current thread in creating mode?

@example Is the current thread in creating mode?

proxy.creating?

@return [ true, false ] If the thread is creating.

@since 2.1.0

# File lib/mongoid/threaded/lifecycle.rb, line 108
def _creating?
  Threaded.executing?("create")
end
_loading() { || ... } click to toggle source

Execute a block in loading mode.

@example Execute in loading mode.

_loading do
  relation.push(doc)
end

@return [ Object ] The return value of the block.

@since 2.3.2

# File lib/mongoid/threaded/lifecycle.rb, line 122
def _loading
  Threaded.begin_execution("load")
  yield
ensure
  Threaded.exit_execution("load")
end
_loading?() click to toggle source

Is the current thread in loading mode?

@example Is the current thread in loading mode?

proxy._loading?

@return [ true, false ] If the thread is loading.

@since 2.3.2

# File lib/mongoid/threaded/lifecycle.rb, line 137
def _loading?
  Threaded.executing?("load")
end