Sha256: 75dd5e81eef8a216ed4894fbe27fdc06b1ea65894fab52a6a572b65e29058679

Contents?: true

Size: 1.06 KB

Versions: 1

Compression:

Stored size: 1.06 KB

Contents

class FixesBuggyArticlesAndNotes < ActiveRecord::Migration[4.2]
  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 if guid.present?

      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

1 entries across 1 versions & 1 rubygems

Version Path
publify_core-9.1.0 db/migrate/114_fixes_buggy_articles_and_notes.rb