Module: ActiveRemote::Dirty

Extended by:
ActiveSupport::Concern
Included in:
Base
Defined in:
lib/active_remote/dirty.rb

Instance Method Summary collapse

Instance Method Details

#disable_dirty_trackingObject



15
16
17
# File 'lib/active_remote/dirty.rb', line 15

def disable_dirty_tracking
  @_active_remote_track_changes = false
end

#enable_dirty_trackingObject



19
20
21
# File 'lib/active_remote/dirty.rb', line 19

def enable_dirty_tracking
  @_active_remote_track_changes = true
end

#reloadObject

Override #reload to provide dirty tracking.



25
26
27
28
29
# File 'lib/active_remote/dirty.rb', line 25

def reload(*)
  super.tap do
    clear_changes_information
  end
end

#remoteObject

Override #remote to provide dirty tracking.



33
34
35
36
37
# File 'lib/active_remote/dirty.rb', line 33

def remote(*)
  super.tap do
    clear_changes_information
  end
end

#saveObject

Override #save to store changes as previous changes then clear them.



41
42
43
44
45
46
47
# File 'lib/active_remote/dirty.rb', line 41

def save(*)
  if (status = super)
    changes_applied
  end

  status
end

#save!Object

Override #save to store changes as previous changes then clear them.



51
52
53
54
55
# File 'lib/active_remote/dirty.rb', line 51

def save!(*)
  super.tap do
    changes_applied
  end
end

#skip_dirty_trackingObject



57
58
59
60
61
62
63
# File 'lib/active_remote/dirty.rb', line 57

def skip_dirty_tracking
  disable_dirty_tracking

  yield

  enable_dirty_tracking
end