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