ActiveSupport::BufferedLogger#silencer

/app/.bundle/gems/gems/activesupport-3.0.0.beta/lib/active_support/core_ext/class/attribute_accessors.rb:24
 1 require 'active_support/core_ext/array/extract_options'
 2 
 3 # Extends the class object with class and instance accessors for class attributes,
 4 # just like the native attr* accessors for instance attributes.
 5 #
 6 #  class Person
 7 #    cattr_accessor :hair_colors
 8 #  end
 9 #
10 #  Person.hair_colors = [:brown, :black, :blonde, :red]
11 class Class
12   def cattr_reader(*syms)
13     syms.flatten.each do |sym|
14       next if sym.is_a?(Hash)
15       class_eval(<<-EOS        unless defined? @@#{sym}  # unless defined? @@hair_colors
16           @@#{sym} = nil          #   @@hair_colors = nil
17         end                       # end
18                                   #
19         def self.#{sym}           # def self.hair_colors
20           @@#{sym}                #   @@hair_colors
21         end                       # end
22                                   #
23         def #{sym}                # def hair_colors
24           @@#{sym}                #   @@hair_colors
25         end                       # end
26       EOS
27 , __FILE__, __LINE__ + 1)
28     end
29   end
30 
31   def cattr_writer(*syms)
32     options = syms.extract_options!
33     syms.flatten.each do |sym|
34       class_eval(<<-EOS        unless defined? @@#{sym}                       # unless defined? @@hair_colors
35           @@#{sym} = nil                               #   @@hair_colors = nil
36         end                                            # end
37                                                        #
38         def self.#{sym}=(obj)                          # def self.hair_colors=(obj)
39           @@#{sym} = obj                               #   @@hair_colors = obj
40         end                                            # end
41                                                        #
42         #{"                                            #
43         def #{sym}=(obj)                               # def hair_colors=(obj)
44           @@#{sym} = obj                               #   @@hair_colors = obj
45         end                                            # end
46         " unless options[:instance_writer] == false }  # # instance writer above is generated unless options[:instance_writer] == false
47       EOS
48 , __FILE__, __LINE__ + 1)
49       self.send("#{sym}=", yield) if block_given?
50     end
51   end
52 
53   def cattr_accessor(*syms, &blk)
54     cattr_reader(*syms)
55     cattr_writer(*syms, &blk)
56   end
57 end