Module: Pharrell

Defined in:
lib/pharrell.rb,
lib/pharrell/config.rb,
lib/pharrell/injectable.rb,
lib/pharrell/constructor.rb

Defined Under Namespace

Modules: Constructor, Injectable Classes: BindingNotFoundError, Config, ConfigNotDefinedError, InvalidOptionsError

Constant Summary collapse

@@configs =
{}
@@config =
nil

Class Method Summary collapse

Class Method Details

.config(name, opts = {}, &blk) ⇒ Object



31
32
33
34
35
36
37
38
39
# File 'lib/pharrell.rb', line 31

def self.config(name, opts = {}, &blk)
  check_options([:extends], opts)
  
  if opts[:extends]
    @@configs[name] = fetch_config(opts[:extends]).extend(blk)
  else
    @@configs[name] = Config.new(blk)
  end
end

.instance_for(klass) ⇒ Object



46
47
48
# File 'lib/pharrell.rb', line 46

def self.instance_for(klass)
  current_config.instance_for(klass)
end

.rebuild!Object



50
51
52
# File 'lib/pharrell.rb', line 50

def self.rebuild!
  current_config.rebuild!
end

.reset!Object



54
55
56
57
# File 'lib/pharrell.rb', line 54

def self.reset!
  @@configs = {}
  @@config = nil
end

.use_config(name) ⇒ Object



41
42
43
44
# File 'lib/pharrell.rb', line 41

def self.use_config(name)
  @@config = name
  rebuild!
end