Class: Pharrell::Config

Inherits:
Object
  • Object
show all
Defined in:
lib/pharrell/config.rb

Defined Under Namespace

Classes: Binder

Instance Method Summary collapse

Constructor Details

#initialize(definition) ⇒ Config

Returns a new instance of Config.



3
4
5
# File 'lib/pharrell/config.rb', line 3

def initialize(definition)
  @definition = definition
end

Instance Method Details

#extend(definition) ⇒ Object



23
24
25
26
27
28
29
30
# File 'lib/pharrell/config.rb', line 23

def extend(definition)
  agg_definition = proc { |binder| 
    @definition.call(binder)
    definition.call(binder) 
  }
  
  Config.new(agg_definition)
end

#instance_for(klass) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/pharrell/config.rb', line 7

def instance_for(klass)
  binding = @bindings[klass]
  
  if binding
    binding.call(self)
  else
    raise BindingNotFoundError
  end
end

#rebuild!Object



17
18
19
20
21
# File 'lib/pharrell/config.rb', line 17

def rebuild!
  @bindings =  Binder.new.tap { |b|
    @definition.call(b)
  }.bindings
end