class Synapse::Configuration::MongoProcessRepositoryDefinitionBuilder

Definition builder used to create a Mongo-backed process repository

@example The minimum possible effort to build a process repository

mongo_process_repository do
  use_client Mongo::MongoClient.new
end

@example Mix it up a bit

mongo_process_repository :alt_process_repository do
  use_resource_injector :alt_resource_injector
  use_serializer :alt_serializer
  use_template :alt_template
end

Public Instance Methods

use_client(client) click to toggle source

Convenience method that creates a process repository template with the given Mongo client

@param [Mongo::MongoClient] client @return [undefined]

# File lib/synapse/configuration/process_manager/mongo/process_repository.rb, line 21
def use_client(client)
  @template = ProcessManager::Mongo::Template.new client
end
use_resource_injector(resource_injector) click to toggle source

Changes the resource injector to use with this process repository

@see ProcessManager::ResourceInjector @param [Symbol] resource_injector @return [undefined]

# File lib/synapse/configuration/process_manager/mongo/process_repository.rb, line 48
def use_resource_injector(resource_injector)
  @resource_injector = resource_injector
end
use_serializer(serializer) click to toggle source

Changes the serializer to use with this process repository

@see Serialization::Serializer @param [Symbol] serializer @return [undefined]

# File lib/synapse/configuration/process_manager/mongo/process_repository.rb, line 30
def use_serializer(serializer)
  @serializer = serializer
end
use_template(template) click to toggle source

Changes the Mongo template to use with this process repository

@see ProcessManager::Mongo::Template @param [Symbol] template @return [undefined]

# File lib/synapse/configuration/process_manager/mongo/process_repository.rb, line 39
def use_template(template)
  @template = template
end

Protected Instance Methods

populate_defaults() click to toggle source

@return [undefined]

# File lib/synapse/configuration/process_manager/mongo/process_repository.rb, line 55
def populate_defaults
  identified_by :process_repository

  use_resource_injector :resource_injector
  use_serializer :serializer
  use_template :mongo_process_repository_template

  use_factory do
    serializer = resolve @serializer
    template = resolve @template
    resource_injector = resolve @resource_injector, true

    process_repository = ProcessManager::Mongo::MongoProcessRepository.new serializer, template
    if resource_injector
      process_factory.resource_injector = resource_injector
    end

    process_repository
  end
end