Sha256: b8004def64a79cc06a282726c9c433e9f800a38c9a84bcf2819464388013912f

Contents?: true

Size: 607 Bytes

Versions: 4

Compression:

Stored size: 607 Bytes

Contents

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

class JsonizeTinymce < Cardio::Migration::Transform
  def up
    card = Card[:tiny_mce]
    content = card.db_content
    return if valid_json? content

    card.content = cleaned_content content
    card.save!
  end

  def cleaned_content content
    cleaned_rows = content.strip.split(/\s*,\s+/).map do |row|
      key, val = row.split(/\s*:\s*/)
      val.gsub!(/"\s*\+\s*"/, "")
      val.gsub! "'", '",'
      %("#{key}":#{val})
    end
    %({\n#{cleaned_rows.join ",\n"}\n})
  end

  def valid_json? text
    JSON.parse text
  rescue JSON::ParserError
    false
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
card-1.108.1 mod/core/data/transform/20130920214038_jsonize_tinymce.rb
card-1.108.0 mod/core/data/transform/20130920214038_jsonize_tinymce.rb
card-1.107.0 mod/core/data/transform/20130920214038_jsonize_tinymce.rb
card-1.106.0 mod/core/data/transform/20130920214038_jsonize_tinymce.rb