Module: Threadsafety::AttrOverride

Defined in:
lib/threadsafety.rb

Class Method Summary collapse

Class Method Details

.extended(base) ⇒ Object



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

def self.extended base
  class <<base
    undef_method :attr_accessor
    undef_method :attr_writer
    
    def attr_writer *args
      args.each do |arg|
        define_method "#{arg.to_s}=" do |v| 
          threadsafe { instance_variable_set "@#{arg.to_s}", v }  
        end
      end
    end
    
    def attr_accessor *args
      attr_reader *args
      attr_writer *args
    end
  end
end

.included(base) ⇒ Object



26
27
28
# File 'lib/threadsafety.rb', line 26

def self.included base
  extended base
end