Class: Spider::Migrations::Replace
- Defined in:
- lib/spiderfw/model/migrations/replace.rb
Instance Method Summary collapse
-
#initialize(model, element, values) ⇒ Replace
constructor
A new instance of Replace.
- #run ⇒ Object
- #undo ⇒ Object
Constructor Details
#initialize(model, element, values) ⇒ Replace
Returns a new instance of Replace.
5 6 7 8 9 10 |
# File 'lib/spiderfw/model/migrations/replace.rb', line 5 def initialize(model, element, values) @models = model @models = [@models] unless @models.is_a?(Enumerable) @element = element @values = values end |
Instance Method Details
#run ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/spiderfw/model/migrations/replace.rb', line 12 def run @models.each do |model| 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) model.storage.execute(sql, *bind_vars) end end end |