Sha256: 987afb47bf1dc1aa8188933be5ba3148ccf5ada09c36a686971fc3f5e5750384

Contents?: true

Size: 913 Bytes

Versions: 1

Compression:

Stored size: 913 Bytes

Contents

class AddAntecedentsToTickets < ActiveRecord::Migration
  def up
    add_column :tickets, :antecedents, :string, array: true
    
    Ticket.reset_column_information
    
    Ticket.unscoped.find_each do |ticket|
      goldmine_numbers = ticket.goldmine || ""
      
      antecedents = []
      antecedents.concat goldmine_numbers.split(/[, ]/).map(&:strip).reject(&:blank?).map { |number| "Goldmine:#{number}" }
      antecedents.concat ticket.description.to_s.scan(/^Goldmine: (\d+)/).flatten.map { |number| "Goldmine:#{number}" }
      antecedents.concat ticket.description.to_s.scan(/^Errbit: ([0-9a-fA-F]+)/).flatten.map { |number| "Errbit:#{number}" }
      
      next if antecedents.empty?
      
      puts "#{ticket.id}: #{antecedents.join(", ")}"
      ticket.antecedents = antecedents
      ticket.save!(validate: false)
    end
  end
  
  def down
    remove_column :tickets, :antecedents
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
houston-core-0.5.0.beta1 db/migrate/20130504135741_add_antecedents_to_tickets.rb