Sha256: 9becd55e145645c64a82da656c2da7e62449542e52f5a88f8cddc9d50e33e97c
Contents?: true
Size: 992 Bytes
Versions: 4
Compression:
Stored size: 992 Bytes
Contents
module Spider; module Migrations class Replace < Migration def initialize(model, element, values) @model = model @element = element @values = values end def run field = @model.mapper.schema.field(@model.get_element(@element).name) table = @model.mapper.schema.table raise "Table #{table} does not have a field #{field}" unless field @values.each do |from, to| save = { :table => table, :values => {field => to}, :condition => {:values => [[field, '=', from]]} } sql, bind_vars = @model.storage.sql_update(save) return @model.storage.execute(sql, *bind_vars) end end def undo Replace.new(@model, @element, @values.invert).run end end end; end
Version data entries
4 entries across 4 versions & 1 rubygems