module Sequel::Plugins::Timestamps

  1. lib/sequel/plugins/timestamps.rb

The timestamps plugin creates hooks that automatically set create and update timestamp fields. Both field names used are configurable, and you can also set whether to overwrite existing create timestamps (false by default), or whether to set the update timestamp when creating (also false by default).

Usage:

# Timestamp all model instances using +created_at+ and +updated_at+
# (called before loading subclasses)
Sequel::Model.plugin :timestamps

# Timestamp Album instances, with custom column names
Album.plugin :timestamps, create: :created_on, update: :updated_on

# Timestamp Artist instances, forcing an overwrite of the create
# timestamp, and setting the update timestamp when creating
Artist.plugin :timestamps, force: true, update_on_create: true

Methods

Public Class

  1. configure

Public Class methods

configure(model, opts=OPTS)

Configure the plugin by setting the available options. Note that if this method is run more than once, previous settings are ignored, and it will just use the settings given or the default settings. Options:

:allow_manual_update

Whether to skip setting the update timestamp if it has been modified manually (default: false)

:create

The field to hold the create timestamp (default: :created_at)

:force

Whether to overwrite an existing create timestamp (default: false)

:update

The field to hold the update timestamp (default: :updated_at)

:update_on_create

Whether to set the update timestamp to the create timestamp when creating (default: false)

[show source]
   # File lib/sequel/plugins/timestamps.rb
32 def self.configure(model, opts=OPTS)
33   model.instance_exec do
34     @allow_manual_timestamp_update = opts[:allow_manual_update]||false
35     @create_timestamp_field = opts[:create]||:created_at
36     @update_timestamp_field = opts[:update]||:updated_at
37     @create_timestamp_overwrite = opts[:force]||false
38     @set_update_timestamp_on_create = opts[:update_on_create]||false
39   end
40 end