Class: Numerics::Configuration

Inherits:
Object
  • Object
show all
Defined in:
lib/numerics/configuration.rb

Instance Method Summary collapse

Constructor Details

#initialize(arg, env = nil) ⇒ Configuration

Returns a new instance of Configuration.



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/numerics/configuration.rb', line 26

def initialize(arg, env=nil)
  @config = if arg.is_a?(Hash)
             arg
           else
             if arg.match(/\.json$/)
               File.open(arg){ |f| Yajl::Parser.parse(f) }
             elsif arg.match(/\.ya?ml$/)
               YAML::load_file(arg)
             else
               nil
             end
           end
  
  if !@config
    raise "Only json and yaml config files supported"
  end
  
  if env
    @config = @config[env.to_s] || @config[env.to_sym]
    if !@config
      raise "No #{env} found in #{arg}"
    end
  end      
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(meth) ⇒ Object



71
72
73
74
75
76
77
78
# File 'lib/numerics/configuration.rb', line 71

def method_missing(meth)
  keys = @config[meth.to_s] || @config[meth.to_sym]
  if keys
    KeySet.new(keys)
  else
    super
  end
end

Instance Method Details

#disabled?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/numerics/configuration.rb', line 55

def disabled?
  @config[:disabled] || @config['disabled']
end

#hostObject



59
60
61
# File 'lib/numerics/configuration.rb', line 59

def host
  @config[:host] || @config['host']
end

#mainObject



51
52
53
# File 'lib/numerics/configuration.rb', line 51

def main
  KeySet.new(@config['main'] || @config[:main] || @config)
end

#portObject



63
64
65
# File 'lib/numerics/configuration.rb', line 63

def port
  @config[:port] || @config['port']
end

#respond_to?(meth) ⇒ Boolean

Returns:

  • (Boolean)


67
68
69
# File 'lib/numerics/configuration.rb', line 67

def respond_to?(meth)
  @config.has_key?(meth.to_s) || @config.has_key?(meth.to_sym) || super
end