Sha256: 78f174d4b0e9c3fe5a89ada4a7b17bf344fe9afbce213bdfc43243f4ab0e538b
Contents?: true
Size: 1013 Bytes
Versions: 1
Compression:
Stored size: 1013 Bytes
Contents
require 'active_support/concern' require 'mongoid' module Mongoid::Fields class Localized def mongoize(object) if object.is_a? ::Hash object else { ::I18n.locale.to_s => type.mongoize(object) } end end end end module Mongoid module Undo extend ActiveSupport::Concern include Mongoid::Paranoia include Mongoid::Versioning included do field :action, type: Symbol, versioned: false index deleted_at: 1 [:create, :update, :destroy].each do |action| set_callback action, :after do collection.find(atomic_selector).update '$set' => { action: action } reload end end end def undo case action when :create, :destroy deleted_at.present? ? restore : delete when :update retrieve end end alias_method :redo, :undo private def retrieve update_attributes versions.last.versioned_attributes.except('version') end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
mongoid-undo-0.0.1 | lib/mongoid/undo.rb |