class Realm::Builder
Public Class Methods
new(config)
click to toggle source
# File lib/realm/builder.rb, line 9 def initialize(config) @config = config end
setup(config)
click to toggle source
# File lib/realm/builder.rb, line 5 def self.setup(config) new(config).setup end
Public Instance Methods
runtime()
click to toggle source
# File lib/realm/builder.rb, line 25 def runtime @container.resolve(Runtime) end
setup()
click to toggle source
# File lib/realm/builder.rb, line 13 def setup logger.info("Setting up #{cfg.root_module} realm") register_domain_resolver register_event_router register_runtime register_logger register_dependencies setup_plugins config_persistence self end
Private Instance Methods
cfg()
click to toggle source
# File lib/realm/builder.rb, line 71 def cfg @config end
config_persistence()
click to toggle source
# File lib/realm/builder.rb, line 59 def config_persistence return unless cfg.persistence_gateway.present? Persistence.setup(container, cfg.persistence_gateway[:repositories]) end
constantize(*parts)
click to toggle source
# File lib/realm/builder.rb, line 65 def constantize(*parts) return parts[0] unless parts[0].is_a?(String) parts.join('::').safe_constantize end
container()
click to toggle source
# File lib/realm/builder.rb, line 75 def container @container ||= Container.new end
logger()
click to toggle source
# File lib/realm/builder.rb, line 79 def logger @logger ||= cfg.logger || (defined?(Rails) && Rails.logger) || Logger.new($stdout, level: ENV.fetch('LOG_LEVEL', :info).to_sym) end
register_dependencies()
click to toggle source
# File lib/realm/builder.rb, line 49 def register_dependencies container.register_all(**cfg.dependencies) end
register_domain_resolver()
click to toggle source
# File lib/realm/builder.rb, line 31 def register_domain_resolver container.register_factory(DomainResolver, constantize(cfg.domain_module)) end
register_event_router()
click to toggle source
# File lib/realm/builder.rb, line 35 def register_event_router return if cfg.event_gateways.empty? container.register_factory(EventRouter, cfg.event_gateways, prefix: cfg.prefix) end
register_logger()
click to toggle source
# File lib/realm/builder.rb, line 45 def register_logger container.register(:logger, logger) end
register_runtime()
click to toggle source
# File lib/realm/builder.rb, line 41 def register_runtime container.register_factory(Runtime, container) end
setup_plugins()
click to toggle source
# File lib/realm/builder.rb, line 53 def setup_plugins Plugin.descendants.each do |plugin| plugin.setup(cfg, container) if cfg.plugins.include?(plugin.plugin_name) end end