/
skip_create_refresh.rb
37 lines (36 loc) · 1.21 KB
/
skip_create_refresh.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# frozen-string-literal: true
module Sequel
module Plugins
# The skip_create_refresh plugin skips the
# refresh after saving a new model object. Sequel does the
# refresh by default to make sure all columns are populated, which is
# necessary so that database defaults work correctly.
#
# This plugin is mostly for performance reasons where you
# want to save the cost of select statement after the insert,
# but it could also help cases where records are not
# immediately available for selection after insertion.
#
# Note that Sequel by default does not attempt to refresh records when
# updating existing model objects, only when inserting new
# model objects.
#
# Usage:
#
# # Make all model subclass instances skip refreshes when saving
# # (called before loading subclasses)
# Sequel::Model.plugin :skip_create_refresh
#
# # Make the Album class skip refreshes when saving
# Album.plugin :skip_create_refresh
module SkipCreateRefresh
module InstanceMethods
private
# Do nothing instead of refreshing the record inside of save.
def _save_refresh
nil
end
end
end
end
end