Sha256: 485a1b3e24ec5126a72740d8491cc951263f07e3f013a73164a60fa1d74c8cd4

Contents?: true

Size: 1.04 KB

Versions: 43

Compression:

Stored size: 1.04 KB

Contents

# -*- encoding : utf-8 -*-

class SearchCardContext < Card::Migration::Core
  def up
    sep = /\W/
    replace = [
      ["[lr]+", 'l\\1'],
      ["[LR]+", 'L\\1'],
      ["(?=[LR]*[lr]+)(?=[lr]*[LR]+)[lrLR]+", 'l\\1'],   # mix of lowercase and uppercase l's and r's
      %w(left LL),
      %w(right LR),
      %w(self left),
      ["",       "left"]
    ]
    Card.search(type_id: ["in", Card::SearchTypeID, Card::SetID]).each do |card|
      next unless card.name.junction? && card.real?
      content = card.db_content
      replace.each do |key, val|
        content.gsub!(/(#{sep})_(#{key})(?=#{sep})/, "\\1_#{val}")
      end
      card.update_column :db_content, content
      card.actions.each do |action|
        next unless (content_change = action.change :db_content)
        next if content_change.new_record?
        content = content_change.value
        replace.each do |key, val|
          content.gsub!(/(#{sep})_(#{key})(?=#{sep})/, "\\1_#{val}")
        end
        content_change.update_column :value, content
      end
    end
  end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
card-1.93.2 db/migrate_core_cards/20150429090551_search_card_context.rb
card-1.93.1 db/migrate_core_cards/20150429090551_search_card_context.rb
card-1.93.0 db/migrate_core_cards/20150429090551_search_card_context.rb