class Dry::Plugins::Registry::ClassBuilder

Builds a {Registry} child class specific to `plugins` module @see ClassBuilder#call

Attributes

class_name[R]

@return [Symbol]

Public Class Methods

new(class_name: Plugins.config.registry_class_name) click to toggle source

@param class_name [Symbol]

# File lib/dry/plugins/registry/class_builder.rb, line 13
def initialize(class_name: Plugins.config.registry_class_name)
  @class_name = class_name
end

Public Instance Methods

call(plugins) click to toggle source

@param plugins [Module]

@return [Class(Registry)]

# File lib/dry/plugins/registry/class_builder.rb, line 23
def call(plugins)
  unless plugins.const_defined? class_name
    plugins.const_set class_name, Class.new(Registry)
  end
  plugins.const_get class_name
end