class Dry::Plugins::Registry::Builder
Build a plug-in registry for given `host`
@see Builder#call
Attributes
registry_method[R]
@return [Symbol]
Public Class Methods
new(registry_method: Plugins.config.registry_method, **kwargs)
click to toggle source
Calls superclass method
# File lib/dry/plugins/registry/builder.rb, line 13 def initialize(registry_method: Plugins.config.registry_method, **kwargs) @registry_method = registry_method super(**kwargs) end
Public Instance Methods
call(host, plugins: module_builder.call(host), registry_class: class_builder.call(plugins))
click to toggle source
@param plugins [Module]
@return [Registry]
# File lib/dry/plugins/registry/builder.rb, line 24 def call(host, plugins: module_builder.call(host), registry_class: class_builder.call(plugins)) unless plugins.respond_to? registry_method registry_variable = :"@#{registry_method}" plugins.define_singleton_method registry_method do if instance_variable_defined? registry_variable instance_variable_get registry_variable else instance_variable_set registry_variable, registry_class.new(plugins) end end end unless plugins.singleton_class.included_modules.include? DSL plugins.extend DSL end plugins.public_send registry_method end