Record the column access before retrieving the value.
# File lib/sequel/plugins/accessed_columns.rb, line 29 def [](c) (@accessed_columns ||= {})[c] = true unless frozen? super end
The columns that have been accessed.
# File lib/sequel/plugins/accessed_columns.rb, line 41 def accessed_columns @accessed_columns ? @accessed_columns.keys : [] end
Clear the accessed columns when saving.
# File lib/sequel/plugins/accessed_columns.rb, line 35 def after_save super @accessed_columns = nil end
Copy the accessed columns when duping and cloning.
# File lib/sequel/plugins/accessed_columns.rb, line 46 def initialize_copy(other) other.instance_variable_set(:@accessed_columns, @accessed_columns.dup) if @accessed_columns super end
Clear the accessed columns when refreshing.
# File lib/sequel/plugins/accessed_columns.rb, line 54 def _refresh(_) @accessed_columns = nil super end