class Dry::Plugins::ModuleBuilder

Builds a `Module` containing all plug-ins for `host`

Attributes

plugins_module_name[R]

@return [Symbol]

Public Class Methods

new(plugins_module_name: Plugins.config.plugins_module_name) click to toggle source
# File lib/dry/plugins/module_builder.rb, line 10
def initialize(plugins_module_name: Plugins.config.plugins_module_name)
  @plugins_module_name = plugins_module_name
end

Public Instance Methods

call(host) click to toggle source

@param host [Module]

@return [Module]

@example

require 'dry/plugins/module_builder'

class Host
end

module_builder = Dry::Plugins::ModuleBuilder.new
module_builder.call(Host) #=> Host::Plugins
# File lib/dry/plugins/module_builder.rb, line 29
def call(host)
  plugins = if host.const_defined?(plugins_module_name)
              host.const_get(plugins_module_name)
            else
              host.const_set(plugins_module_name, Module.new)
            end
  plugins
end