class HasConfig::Configuration

Constants

CHAINING_OPTIONS
MODIFIABLE_ATTRS
VALID_TYPES

Attributes

name[R]
type[R]

Public Class Methods

modify(configuration, config) click to toggle source
# File lib/has_config/configuration.rb, line 10
def self.modify(configuration, config)
  configuration = configuration.dup
  MODIFIABLE_ATTRS.each do |key|
    configuration.public_send("#{key}=", config[key]) if config.key?(key)
  end
  configuration.validate
  configuration
end
new(name, type: nil, default: nil, validations: [], chain_on: :blank) click to toggle source
# File lib/has_config/configuration.rb, line 19
def initialize(name, type: nil, default: nil, validations: [], chain_on: :blank)
  raise InvalidType, 'Type is required' if type.nil?

  @chain_on     = chain_on.to_sym
  @default      = default
  @name         = name.to_s
  @type         = type.to_sym
  @validations  = [validations].flatten
  validate
end

Public Instance Methods

validate() click to toggle source
# File lib/has_config/configuration.rb, line 30
def validate
  validate_configuration
  validate_chain_on
end