module Raven::BetterAttrAccessor::ClassMethods

Public Instance Methods

attr_accessor(attr, options = {}) click to toggle source
# File lib/raven/better_attr_accessor.rb, line 29
def attr_accessor(attr, options = {})
  @attributes ||= Set.new
  @attributes << attr.to_s

  define_method attr do
    if instance_variable_defined? "@#{attr}"
      instance_variable_get "@#{attr}"
    elsif options.key? :default
      instance_variable_set "@#{attr}", options[:default].dup
    end
  end
  attr_writer attr
end
attributes() click to toggle source
# File lib/raven/better_attr_accessor.rb, line 19
def attributes
  @attributes ||= Set.new

  if superclass.include? BetterAttrAccessor
    @attributes + superclass.attributes
  else
    @attributes
  end
end