module Scorpion # A scorpion factory class Nest # ============================================================================ # @!group Associations # # @!attribute # @return [Scorpion] the mother scorpion that that will {#conceive} new # scorpions for each request. attr_reader :mother # # @!endgroup Associations def initialize( mother = nil ) @mother = mother || Scorpion::Hunter.new end def prepare( &block ) mother.prepare &block end # @return [Scorpion] a new scorpion used to hunt for dependencies. def conceive mother.replicate end # Free up any persistent resources def destroy mother.destroy @mother = nil end end end