Module: Sequel::Plugins::Touch::ClassMethods
- Defined in:
- lib/sequel/plugins/touch.rb
Instance Attribute Summary collapse
-
#touch_column ⇒ Object
The column to modify when touching a model instance, as a symbol.
-
#touched_associations ⇒ Object
readonly
A hash specifying the associations to touch when instances are updated or destroyed.
Instance Method Summary collapse
-
#inherited(subclass) ⇒ Object
Set the touch_column for the subclass to be the same as the current class.
-
#touch_associations(*associations) ⇒ Object
Add additional associations to be touched.
Instance Attribute Details
#touch_column ⇒ Object
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.
52 53 54 |
# File 'lib/sequel/plugins/touch.rb', line 52 def touch_column @touch_column end |
#touched_associations ⇒ Object (readonly)
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.
57 58 59 |
# File 'lib/sequel/plugins/touch.rb', line 57 def touched_associations @touched_associations end |
Instance Method Details
#inherited(subclass) ⇒ Object
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.
61 62 63 64 65 |
# 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) ⇒ Object
Add additional associations to be touched. See the :association option of the Sequel::Plugin::Touch.configure method for the format of the associations arguments.
70 71 72 73 74 75 76 77 78 |
# 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 |