Sha256: d54a9df8be8cc08b99f9d3850937c999198a06821e228aa125f1b98d1704a5be
Contents?: true
Size: 1.39 KB
Versions: 1
Compression:
Stored size: 1.39 KB
Contents
module Sequel module Plugins # The update_refresh plugin makes the model class refresh # the object after updating. By default, Sequel only # refreshes automatically after inserting new rows, not # after updating. However, if you are using triggers # to modify the contents of updated rows, it can be # helpful to immediately get the current data after # updating. # # If the dataset supports UPDATE RETURNING, this # plugin will use it so that it can retrieve the current # data in the same query it uses for the update. # # Usage: # # # Make all model subclasses refresh after update # Sequel::Model.plugin :update_refresh # # # Make the Album class refresh after update # Album.plugin :update_refresh module UpdateRefresh module InstanceMethods def after_update super unless this.supports_returning?(:update) refresh end end private def _update_without_checking(columns) ds = _update_dataset if ds.supports_returning?(:update) ds = ds.opts[:returning] ? ds : ds.returning rows = ds.update(columns) n = rows.length if n == 1 @values.merge!(rows.first) end n else super end end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sequel-4.23.0 | lib/sequel/plugins/update_refresh.rb |