Sha256: a35b93e0aa3706828a61ba5c92fd26cb6e0d9a0d4efd6d54907f306ef0f5ac91
Contents?: true
Size: 1.5 KB
Versions: 3
Compression:
Stored size: 1.5 KB
Contents
require 'rom/configuration' require 'rom/environment' require 'rom/setup' require 'rom/setup/finalize' module ROM class CreateContainer attr_reader :container def initialize(environment, setup) @container = finalize(environment, setup) end private def finalize(environment, setup) environment.configure do |config| environment.gateways.each_key do |key| gateway_config = config.gateways[key] gateway_config.infer_relations = true unless gateway_config.key?(:infer_relations) end end finalize = Finalize.new( gateways: environment.gateways, relation_classes: setup.relation_classes, command_classes: setup.command_classes, mappers: setup.mapper_classes, plugins: setup.plugins, notifications: setup.notifications, config: environment.config.dup.freeze ) finalize.run! end end class InlineCreateContainer < CreateContainer def initialize(*args, &block) case args.first when Configuration environment = args.first.environment setup = args.first.setup when Environment environment = args.first setup = args[1] else configuration = Configuration.new(*args, &block) environment = configuration.environment setup = configuration.setup end super(environment, setup) end end def self.container(*args, &block) InlineCreateContainer.new(*args, &block).container end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rom-core-4.0.0.beta3 | lib/rom/create_container.rb |
rom-core-4.0.0.beta2 | lib/rom/create_container.rb |
rom-core-4.0.0.beta1 | lib/rom/create_container.rb |