Class: Confuse::Definition

Inherits:
Object
  • Object
show all
Defined in:
lib/confuse/definition.rb

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ Definition

Returns a new instance of Definition.



5
6
7
8
# File 'lib/confuse/definition.rb', line 5

def initialize(&block)
  @default_namespace = :default
  block.call(self)
end

Instance Method Details

#add_item(name, opts = {}) ⇒ Object



23
24
25
# File 'lib/confuse/definition.rb', line 23

def add_item(name, opts = {})
  namespaces[@default_namespace].add_item(name, opts)
end

#add_namespace(name, &block) ⇒ Object



18
19
20
21
# File 'lib/confuse/definition.rb', line 18

def add_namespace(name, &block)
  new_namespace = Namespace.new(&block)
  namespaces[name.to_sym] = new_namespace
end

#default(namespace, key) ⇒ Object



14
15
16
# File 'lib/confuse/definition.rb', line 14

def default(namespace, key)
  (item = find_item(namespace, key)) && item.default
end

#defines?(name) ⇒ Boolean

Returns:

  • (Boolean)


10
11
12
# File 'lib/confuse/definition.rb', line 10

def defines?(name)
  !!find_item_by_name(name)
end

#namespace_and_key(name) ⇒ Object



33
34
35
36
# File 'lib/confuse/definition.rb', line 33

def namespace_and_key(name)
  KeySplitter.new(name).split.find { |(ns, _)| namespaces[ns]  } ||
    [nil, name]
end

#namespacesObject



27
28
29
30
31
# File 'lib/confuse/definition.rb', line 27

def namespaces
  @namespaces ||= {
    @default_namespace => Namespace.new(&(Proc.new {}))
  }
end