Module: Hyperactive::Cleaner::Accessors::ClassMethods

Defined in:
lib/hyperactive/cleaner.rb

Overview

The class methods that help us set/get instance variables in a dirt-aware way.

Instance Method Summary collapse

Instance Method Details

#attr_accessor(*attributes) ⇒ Object

Works like normal attr_accessor but with with dirt-aware attr_writer.



80
81
82
83
# File 'lib/hyperactive/cleaner.rb', line 80

def attr_accessor(*attributes)
  attr_reader(*attributes)
  attr_writer(*attributes)
end

#attr_writer(*attributes) ⇒ Object

Works like normal attr_writer but sets us to dirty.



66
67
68
69
70
71
72
73
74
75
# File 'lib/hyperactive/cleaner.rb', line 66

def attr_writer(*attributes)
  super
  attributes.each do |attribute|
    alias_method "hyperactive_cleaner_accessors_#{attribute}=", "#{attribute}="
    define_method("#{attribute}=") do |new_value|
      self.send("hyperactive_cleaner_accessors_#{attribute}=", new_value)
      self.is_dirty!
    end
  end
end