module Sequel::Plugins::HasPaperTrail
Add Paper Trail versioning callbacks to model.
Usage:
# Enable versioning for all models. Sequel::Model.plugin :has_paper_trail # Make the Album class be able to versioning. Album.plugin :has_paper_trail, item_class_name: Album, class_name: 'Album::Version'
Public Class Methods
configure(model, opts = {})
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/sequel/plugins/has_paper_trail.rb, line 15 def self.configure(model, opts = {}) paper_trail_item_class_name = opts.fetch(:item_class_name) { model.name } paper_trail_version_class_name = opts.fetch(:class_name) { 'SequelPaperTrail::Version' } model.plugin :dirty model.one_to_many :versions, class: paper_trail_version_class_name, key: :item_id, conditions: { item_type: paper_trail_item_class_name } model.instance_eval do @paper_trail_item_class_name = paper_trail_item_class_name @paper_trail_version_class_name = paper_trail_version_class_name end end