module Sequel::Plugins::Revisions::InstanceMethods
Public Instance Methods
after_create()
click to toggle source
Calls superclass method
# File lib/sequel/plugins/revisions.rb, line 88 def after_create super track_changes(:create) if model.revisions_on? :create end
before_destroy()
click to toggle source
Calls superclass method
# File lib/sequel/plugins/revisions.rb, line 83 def before_destroy super track_changes(:destroy) if model.revisions_on? :destroy end
before_update()
click to toggle source
Calls superclass method
# File lib/sequel/plugins/revisions.rb, line 78 def before_update super track_changes(:update) if model.revisions_on? :update end
Private Instance Methods
track_changes(action)
click to toggle source
# File lib/sequel/plugins/revisions.rb, line 95 def track_changes(action) case action when :update return if changed_columns.empty? # Map the changed fields into an object changes = changed_columns.inject({}) do |obj, key| obj[key] = column_change(key) obj end when :create changes = (columns - model.revisions_exclude).inject({}) do |obj, key| obj[key] = [nil, send(key)] obj end when :destroy changes = (columns - model.revisions_exclude).inject({}) do |obj, key| obj[key] = [send(key), nil] obj end end # meta = model.revisions_meta.call() unless model.revisions_meta.nil? if model.revisions_embedded_in.nil? add_revision(changes: changes, action: action, meta: meta) else trackable = self.send(model.revisions_embedded_in) add_revision(changes: changes, action: action, meta: meta, trackable: trackable) end end