Sha256: aa4a70338bb02fe04eb000552ebbb1639b039e90c9ae42ae72d0e6fef5c40b62

Contents?: true

Size: 1.05 KB

Versions: 6

Compression:

Stored size: 1.05 KB

Contents

class FixesBuggyArticlesAndNotes < ActiveRecord::Migration
  class Content < ActiveRecord::Base

  end

  class Article < Content
    def set_permalink
      return if state == 'draft' || permalink.present?
      self.permalink = title.to_permalink
    end
  end

  class Note < Content
    def set_permalink
      self.permalink = "#{id}-#{body.to_permalink[0..79]}" if permalink.blank?
      save
    end

    def create_guid
      return true unless guid.blank?

      self.guid = UUIDTools::UUID.random_create.to_s
    end
  end

  class Page < Content
    def set_permalink
      self.name = title.to_permalink if name.blank?
    end
  end

  def self.up
    say "Fixing contents permalinks, this may take some time"

    contents = Content.where("permalink is ? or permalink = ?", nil, '')
    contents.each do |c|
      c.set_permalink
      c.save
    end

    say "Fixes empty notes GUID"
    notes = Note.where("guid is ? or guid = ?", nil, '')
    notes.each do |n|
      n.create_guid
      n.save
    end
  end

  def self.down
    say "Nothing to do here"
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
publify_core-9.0.0.pre6 db/migrate/114_fixes_buggy_articles_and_notes.rb
publify_core-9.0.0.pre5 db/migrate/114_fixes_buggy_articles_and_notes.rb
publify_core-9.0.0.pre4 db/migrate/114_fixes_buggy_articles_and_notes.rb
publify_core-9.0.0.pre3 db/migrate/114_fixes_buggy_articles_and_notes.rb
publify_core-9.0.0.pre2 db/migrate/114_fixes_buggy_articles_and_notes.rb
publify_core-9.0.0.pre1 db/migrate/114_fixes_buggy_articles_and_notes.rb