Sha256: 97652346291afef25974b37b90ccf83436b615509c4b5639c488f193bcf8f36f
Contents?: true
Size: 899 Bytes
Versions: 1
Compression:
Stored size: 899 Bytes
Contents
# Author: Stephen Sykes module SlimScrooge class ResultSet attr_reader :rows, :callsite_key def initialize(rows, callsite_key, fetched_columns) @rows = rows @callsite_key = callsite_key @fetched_columns = fetched_columns end def rows_by_key(key) @rows.inject({}) {|hash, row| hash[row[key]] = row; hash} end def reload! callsite = Callsites[@callsite_key] rows_hash = rows_by_key(callsite.primary_key) sql = callsite.reload_sql(rows_hash.keys, @fetched_columns) model_class = callsite.model_class new_rows = model_class.connection.send(:select, sql, "#{model_class.name} Reload SlimScrooged") new_rows.each do |row| if old_row = rows_hash[row[callsite.primary_key]] old_row.result_set = nil old_row.monitored_columns.merge!(row) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
slim_scrooge-1.0.0 | lib/slim_scrooge/result_set.rb |