Module: Raven::BetterAttrAccessor::ClassMethods

Defined in:
lib/raven/better_attr_accessor.rb

Instance Method Summary collapse

Instance Method Details

#attr_accessor(attr, options = {}) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
# 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

#attributesObject



19
20
21
22
23
24
25
26
27
# 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