Module: DomainSwitcher::ConfigBuilder

Included in:
Domain, Website
Defined in:
lib/domain_switcher/config_builder.rb

Instance Method Summary collapse

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(m) ⇒ Object

Do nothing when a method is missing



35
36
37
# File 'lib/domain_switcher/config_builder.rb', line 35

def method_missing(m)
  nil
end

Instance Method Details

#build_config!(hash) ⇒ Object

Create a bunch of method for the configuration hash



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/domain_switcher/config_builder.rb', line 5

def build_config!(hash)
  raise "Build config only accept hashes and not #{conf.class}" unless Hash === hash
  
  # From: https://github.com/kwi/awesome_conf
  m = Module.new do
    instance_methods.each { |selector| remove_method(selector) }

    hash.each do |k, v|
      const_set('AC_' + k.to_s, v)
      module_eval "        def \#{k}\n          \#{'AC_'+ k.to_s}\n        end\n      END_EVAL\n      \n      if TrueClass === v or FalseClass === v\n        module_eval <<-END_EVAL, __FILE__, __LINE__ + 1\n          def \#{k}?\n            \#{v ? true : false}\n          end\n        END_EVAL\n      end\n    end\n\n  end\n\n  extend m\nend\n", __FILE__, __LINE__ + 1