Sha256: 8c67b0d7837195e406fc45d3f863ca64d36f4ddc07867356dff31f0c19d1bc5c
Contents?: true
Size: 730 Bytes
Versions: 3
Compression:
Stored size: 730 Bytes
Contents
module CanHasState module DirtyHelper extend ActiveSupport::Concern included do include ActiveModel::Dirty end module ClassMethods def track_dirty(*attrs) define_attribute_methods attrs attrs.each do |attr| attr = attr.to_s attr_reader(attr) unless respond_to?(attr) has_writer = respond_to?("#{attr}=") define_method "#{attr}=" do |val| send("#{attr}_will_change!") unless val == instance_variable_get("@#{attr}") has_writer ? super(val) : instance_variable_set("@#{attr}", val) changed_attributes.delete(attr) if attribute_was(attr) == send(attr) end end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
can_has_state-0.3.2 | lib/can_has_state/dirty_helper.rb |
can_has_state-0.3.1 | lib/can_has_state/dirty_helper.rb |
can_has_state-0.3.0 | lib/can_has_state/dirty_helper.rb |