module Wardrobe::ModuleMethods

This module is extended in Wardrobe and extended to anonymous modules created by Wardrobe() method.

Public Instance Methods

config() click to toggle source
# File lib/wardrobe/module_methods.rb, line 32
def config
  @config ||= begin
    callee = caller_locations.first
    if callee.label == 'config' && callee.lineno == (__LINE__ + 3)
      RootConfig.new
    else
      Wardrobe.config
    end
  end
end
configure(&blk) click to toggle source
# File lib/wardrobe/module_methods.rb, line 43
def configure(&blk)
  @config = config.mutate(&blk)
end
create_class(plugins: [], attributes: []) click to toggle source
# File lib/wardrobe/module_methods.rb, line 21
def create_class(plugins: [], attributes: [])
  Class.new.class_exec do
    include Wardrobe
    plugin(*plugins)
    attributes.each do |atr|
      attribute(atr[:name], const_get(atr[:class]), atr.fetch(:options, {}))
    end
    self
  end
end
included(base) click to toggle source
# File lib/wardrobe/module_methods.rb, line 9
def included(base)
  base.extend(ClassMethods)
  unless base.to_s == 'Wardrobe::RootConfig'
    base.root_config = config
    config.default_plugins.each do |plugin|
      # TODO: Support k_args
      base.plugin plugin
    end
  end
  base.include(InstanceMethods)
end
logger() click to toggle source
# File lib/wardrobe/module_methods.rb, line 47
def logger
  config.logger
end