module Directive::ConfigDelegation::ClassMethods

Private Instance Methods

_configuration_module() click to toggle source
# File lib/directive/config_delegation.rb, line 38
def _configuration_module
  raise NoMethodError, "Configuration not set up for #{self}. Did you forget to call delegates_to_configuration?" if @_configuration_module.nil?

  @_configuration_module
end
delegates_to_configuration(config_class = nil) click to toggle source

Sets up delegation from a top-level class to a nested Configuration module.

@example

class SomeClass
  include Directive::ConfigDelegation

  delegates_to_configuration
end

module SomeClass::Configuration
  extend Directive
end

SomeClass.config
=> returns SomeClass::Configuration.config
SomeClass.configure do { |config| # config is the yielded config object from SomeClass::Configuration.configure }

@param config_class [Directive] A module that extends Directive. Defaults to the module YourGem::Configuration

# File lib/directive/config_delegation.rb, line 34
def delegates_to_configuration(config_class = nil)
  @_configuration_module = config_class || "#{self}::#{DEFAULT_CONFIGURATION_MODULE_NAME}".constantize
end