class Pharrell::Config::Binder
Attributes
bindings[R]
Public Class Methods
new()
click to toggle source
# File lib/pharrell/config.rb, line 37 def initialize @bindings = {} end
Public Instance Methods
bind(klass, arg = nil, &blk)
click to toggle source
# File lib/pharrell/config.rb, line 41 def bind(klass, arg = nil, &blk) if blk @bindings[klass] = blk else obj_block = if arg.kind_of?(Class) Proc.new { |config| build_instance(arg, config)} else Proc.new { arg } end @bindings[klass] = obj_block end end
Private Instance Methods
build_instance(target_klass, config)
click to toggle source
# File lib/pharrell/config.rb, line 57 def build_instance(target_klass, config) if target_klass.respond_to?(:__pharrell_constructor_classes) args = target_klass.__pharrell_constructor_classes.map do |arg_klass| config.instance_for(arg_klass) end target_klass.new(*args) else target_klass.new end end