module ConsoleDetective::ModAttrAccessor

Public Instance Methods

mod_attr_accessor(attr_name, default_value) click to toggle source
# File lib/console_detective/mod_attr_accessor.rb, line 6
    def mod_attr_accessor(attr_name, default_value)
      class_eval(<<-EOS, __FILE__, __LINE__ + 1)
        @@#{attr_name} = nil unless defined? @@#{attr_name}

        def self.#{attr_name}
          @@#{attr_name}
        end

        def self.#{attr_name}=(obj)
          @@#{attr_name} = obj
        end
      EOS

      send("#{attr_name}=", default_value) unless default_value.nil?
    end