Class: Waffle::Config::Node

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

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(config = {}) {|_self| ... } ⇒ Node

Returns a new instance of Node.

Yields:

  • (_self)

Yield Parameters:



36
37
38
39
# File 'lib/waffle/config.rb', line 36

def initialize config = {}
  @settings = config ? defaults.merge(config) : {}
  yield self if block_given?
end

Instance Attribute Details

#settingsObject

Returns the value of attribute settings.



4
5
6
# File 'lib/waffle/config.rb', line 4

def settings
  @settings
end

Class Method Details

.defaultsObject



25
26
27
# File 'lib/waffle/config.rb', line 25

def defaults
  @defaults ||= {}
end

.option(name, options = {}) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/waffle/config.rb', line 7

def option(name, options = {})
  defaults[name] = options[:default]

  class_eval <<-RUBY
    def #{name}
      settings[#{name.inspect}] || defaults[#{name.inspect}]
    end

    def #{name}=(value)
      settings[#{name.inspect}] = value
    end

    def #{name}?
      #{name}
    end
  RUBY
end