Class: Module

Inherits:
Object show all
Defined in:
extend/module.rb

Instance Method Summary collapse

Instance Method Details

#attr_rw(*attrs) ⇒ Object



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

def attr_rw(*attrs)
  attrs.each do |attr|
    module_eval <<-EOS, __FILE__, __LINE__+1
      def #{attr}(val=nil)                         # def prefix(val=nil)
        if val.nil?                                #   if val.nil?
          if instance_variable_defined?(:@#{attr}) #      if instance_variable_defined?(:@prefix)
            return @#{attr}                        #        return @prefix
          else                                     #      else
            return nil                             #        return nil
          end                                      #      end
        end                                        #    end
                                                   #
        @#{attr} = val                             #   @prefix = val
      end                                          # end
    EOS
  end
end