Module: Sequel::Plugins::SoftDeletes

Defined in:
lib/sequel/plugins/soft_deletes.rb

Overview

Plugin for adding soft-delete to a model.

Example

Defining a model class with a timestamp as the deletion flag:

class ACME::Customer < Sequel::Model(:customers)
    plugin :soft_deletes, column: :deleted_at

And in the schema:

create_table( :customers ) do
    primary_key :id
    timestamptz :deleted_at
end

Defined Under Namespace

Modules: ClassMethods, DatasetMethods, InstanceMethods

Constant Summary collapse

VERSION =
"0.1.3"
DEFAULT_OPTIONS =

Default plugin options

{
  column: :soft_deleted_at,
  omit_by_default: false,
}.freeze

Class Method Summary collapse

Class Method Details

.configure(model, opts = DEFAULT_OPTIONS) ⇒ Object



30
31
32
33
34
35
# File 'lib/sequel/plugins/soft_deletes.rb', line 30

def self.configure(model, opts=DEFAULT_OPTIONS)
  opts = DEFAULT_OPTIONS.merge(opts)
  column = opts[:column]
  model.soft_delete_column = column
  model.set_dataset(model.where(column => nil)) if opts[:omit_by_default]
end