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