class Kamaze::Project::Config

Generic config(urator) class

@abstract Subclass and override {#defaults} to implement

Attributes

attributes[R]

@return [Kamaze::Project::Struct]

Public Class Methods

new() click to toggle source
# File lib/kamaze/project/config.rb, line 19
def initialize
  @attributes = Kamaze::Project::Struct.new(defaults)
end

Public Instance Methods

configure(configurable) click to toggle source

Configure an object (manipulating its properties)

@param [Object] configurable @return [Object]

# File lib/kamaze/project/config.rb, line 27
def configure(configurable)
  to_h.each do |k, v|
    configurable.__send__("#{k}=", v)
  end

  configurable
end
defaults() click to toggle source

@return [Hash]

# File lib/kamaze/project/config.rb, line 55
def defaults
  {}
end
method_missing(method, *args, &block) click to toggle source
Calls superclass method
# File lib/kamaze/project/config.rb, line 40
def method_missing(method, *args, &block)
  if respond_to_missing?(method)
    @attributes.public_send(method, *args, &block)
  else
    super
  end
end
respond_to_missing?(method, include_private = false) click to toggle source
Calls superclass method
# File lib/kamaze/project/config.rb, line 48
def respond_to_missing?(method, include_private = false)
  return true if attributes.respond_to?(method, include_private)

  super(method, include_private)
end
to_h() click to toggle source

@return [Hash]

# File lib/kamaze/project/config.rb, line 36
def to_h
  attributes.to_h
end