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 31
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 46
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 60
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 75
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 89
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 104
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 116
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 130
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 145
def _loading?
  Threaded.executing?(LOAD)
end