Sha256: 8483eaf2e7254ad2fcf80dc8ed2080f44f10fe3e59c7c9c5ed45ed7315d2f311
Contents?: true
Size: 904 Bytes
Versions: 1
Compression:
Stored size: 904 Bytes
Contents
# Author: Stephen Sykes module SlimScrooge class MonitoredHash < Hash attr_accessor :callsite, :result_set def self.[](original_hash, callsite, result_set) hash = super(original_hash) hash.callsite = callsite hash.result_set = result_set hash end def [](name) if @callsite.columns_hash.has_key?(name) @result_set.reload! if @result_set && name != @callsite.primary_key Callsites.add_seen_column(@callsite, name) end super end def []=(name, value) if @result_set && @callsite.columns_hash.has_key?(name) @result_set.reload! end super end def keys @result_set ? @callsite.columns_hash.keys : super end def has_key?(name) @result_set ? @callsite.columns_hash.has_key?(name) : super end alias_method :include?, :has_key? end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slim_scrooge-0.1.1 | lib/slim_scrooge/monitored_hash.rb |