Sha256: 759d9e5cdeda67b467480673adfd475ae5f849d0746b58273c0da66f7174c79f

Contents?: true

Size: 1.04 KB

Versions: 4

Compression:

Stored size: 1.04 KB

Contents

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

class SearchCardContext < Cardio::Migration::Transform
  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.compound? && 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

4 entries across 4 versions & 1 rubygems

Version Path
card-1.108.1 mod/core/data/transform/20150429090551_search_card_context.rb
card-1.108.0 mod/core/data/transform/20150429090551_search_card_context.rb
card-1.107.0 mod/core/data/transform/20150429090551_search_card_context.rb
card-1.106.0 mod/core/data/transform/20150429090551_search_card_context.rb