Sha256: d446d55057eaaadbe93a3baae4d4b4f0d8c8144e5b8935507bb5a0d491cdbf48
Contents?: true
Size: 1.11 KB
Versions: 24
Compression:
Stored size: 1.11 KB
Contents
require 'bare_migration' class FixupForthcomingPublications < ActiveRecord::Migration class Trigger < ActiveRecord::Base belongs_to :pending_item, :polymorphic => true end class Content < ActiveRecord::Base end class Article < Content end def self.up return if $schema_generator Article.transaction do Trigger.transaction do Article.find(:all, :conditions => ['published = ? AND published_at > ?', true, Time.now]).each do |art| Trigger.create!(:pending_item => art, :due_at => art.published_at, :trigger_method => 'publish!') art.update_attribute(:published, false) end end end end def self.down return if $schema_generator Article.transaction do Trigger.transaction do Trigger.find(:all, :conditions => "pending_item_type = 'Article' AND trigger_method = 'publish!'").each do |t| t.pending_item.update_attribute(:published, :true) t.destroy end end end end end
Version data entries
24 entries across 24 versions & 1 rubygems