Module: SyslogRuby::LookupFromConst

Included in:
Facility, Severity
Defined in:
lib/syslog_ruby/lookup_from_const.rb

Instance Method Summary collapse

Instance Method Details

#setup_constants(dst) ⇒ Object



3
4
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/syslog_ruby/lookup_from_const.rb', line 3

def setup_constants(dst)
  constants.each do |pri|
    cval = const_get pri

    dst[pri] = cval
    dst[pri.downcase] = cval

    dst[:"LOG_#{pri.to_s}"] = cval
    dst[:"LOG_#{pri.downcase.to_s}"] = cval
    const_set :"LOG_#{pri.to_s}", cval

    dst[pri.to_s] = cval
    dst[pri.downcase.to_s] = cval

    dst[cval] = cval
  end

  self.class.send(:define_method, :keys) do
    dst.keys
  end

  self.class.send(:define_method, :[]) do |key|
    value_none = const_get :NONE
    dst.fetch(key, value_none)
  end

  self.class.send(:define_method, :[]=) do |key, value|
    raise RuntimeError.new "#{self.class} is read only"
  end
end