Sha256: bd01b59c7037929506e46db2879aeeed9749dad394a7f81372626a8db99c4fc7

Contents?: true

Size: 1004 Bytes

Versions: 6

Compression:

Stored size: 1004 Bytes

Contents

require 'effective_resources'
require 'effective_trash/engine'
require 'effective_trash/version'

module EffectiveTrash

  def self.config_keys
    [
      :trash_table_name, :layout, :routes_enabled
    ]
  end

  include EffectiveGem

  # This is set by the "set_effective_trash_current_user" before_filter.
  def self.current_user=(user)
    @effective_trash_current_user = user
  end

  def self.current_user
    @effective_trash_current_user
  end

  # Trash it - Does not delete the original object.
  # This is run in a before_destroy, or through a script.
  def self.trash!(obj)
    args = (obj.respond_to?(:acts_as_trashable_options) ? obj.acts_as_trashable_options : {})
    details = Effective::Resource.new(obj).instance_attributes(only: args[:only], except: args[:except])

    trash = Effective::Trash.new(
      trashed: obj,
      user: EffectiveTrash.current_user,
      trashed_to_s: obj.to_s,
      trashed_extra: obj.try(:trashed_extra),
      details: details
    ).save!
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
effective_trash-0.4.5 lib/effective_trash.rb
effective_trash-0.4.4 lib/effective_trash.rb
effective_trash-0.4.3 lib/effective_trash.rb
effective_trash-0.4.2 lib/effective_trash.rb
effective_trash-0.4.1 lib/effective_trash.rb
effective_trash-0.4.0 lib/effective_trash.rb