module Sequel::Plugins::Touch::ClassMethods

  1. lib/sequel/plugins/touch.rb
Parent: Touch

Attributes

touch_column [RW]

The column to modify when touching a model instance, as a symbol. Also used as the default column when touching associations, if the associations don't specify a column.

touched_associations [R]

A hash specifying the associations to touch when instances are updated or destroyed. Keys are association dataset method name symbols and values are column name symbols.

Public Instance methods

inherited (subclass)

Set the touch_column for the subclass to be the same as the current class. Also, create a copy of the touched_associations in the subclass.

[show source]
# File lib/sequel/plugins/touch.rb, line 61
def inherited(subclass)
  super
  subclass.touch_column = touch_column
  subclass.instance_variable_set(:@touched_associations, touched_associations.dup)
end
touch_associations (*associations)

Add additional associations to be touched. See the :association option of the Sequel::Plugin::Touch.configure method for the format of the associations arguments.

[show source]
# File lib/sequel/plugins/touch.rb, line 70
def touch_associations(*associations)
  associations.flatten.each do |a|
    a = {a=>touch_column} if a.is_a?(Symbol)
    a.each do |k,v|
      raise(Error, "invalid association: #{k}") unless r = association_reflection(k)
      touched_associations[r.dataset_method] = v
    end
  end
end