module LittleBoxes::Dependant::ClassMethods
Attributes
config[RW]
Public Class Methods
extended(base)
click to toggle source
# File lib/little_boxes/dependant.rb, line 22 def self.extended(base) base.class_eval do class << self attr_accessor :config instance_variable_set :@config, {} end end end
Public Instance Methods
class_dependency(name, &default_block)
click to toggle source
# File lib/little_boxes/dependant.rb, line 45 def class_dependency name, &default_block default_block ||= Proc.new do fail(DependencyNotFound, "Dependency #{name} not found") end @config ||= {} define_singleton_method name do @config[name] ||= default_block.call(@config[:box]) end define_singleton_method "#{name}=" do |value| @config[name] = value end define_method name do self.class.config[name] ||= default_block.call(self.class.config[:box]) end end
configure() { |config| ... }
click to toggle source
# File lib/little_boxes/dependant.rb, line 65 def configure(&block) yield @config self end
dependency(name, &default_block)
click to toggle source
# File lib/little_boxes/dependant.rb, line 31 def dependency name, &default_block default_block ||= Proc.new do fail(DependencyNotFound, "Dependency #{name} not found") end define_method name do @config[name] ||= default_block.call(@config[:box]) end define_method "#{name}=" do |value| @config[name] = value end end