Sha256: a23503f21e58cde56a57b5fa6fce9450c49ca3d14b888b9edd9ef2ba1ef32fe9

Contents?: true

Size: 1.17 KB

Versions: 8

Compression:

Stored size: 1.17 KB

Contents

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

class WatchersToFollowing < Wagn::CoreMigration
  def up
    
    follower_hash = Hash.new { |h, v| h[v] = [] } 

    #NOTE: this migration must find cards in the trash, because the original (1.14.0) migration attempt
    # did not successfully migration to the +*following card but did successfully delete +*watchers cards.
    # Therefore cards migrated using 1.14.0 or 1.14.1 will not have the correct migrations
    
    if watcher_card = Card.find_by_key('*watcher')
      Card.find_by_sql("select * from cards where right_id = #{watcher_card.id}").each do |card|
        card.include_set_modules

        if watched = card.left
          card.item_names.each do |user_name|
            follower_hash[user_name] << watched.name
          end
        end
      end
    
      follower_hash.each do |user, items|
        if card=Card.fetch(user) and card.account
          following = card.fetch :trait=>"following", :new=>{}
          items.each { |item| following.add_item item }
          following.save!
        end
      end    
    end
    
    if watchers = Card[:watchers]
      watchers.update_attributes :codename=>nil
      watchers.delete!
    end

  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
wagn-1.14.9 db/migrate_core_cards/20141204061304_watchers_to_following.rb
wagn-1.14.8 db/migrate_core_cards/20141204061304_watchers_to_following.rb
wagn-1.14.7 db/migrate_core_cards/20141204061304_watchers_to_following.rb
wagn-1.14.6 db/migrate_core_cards/20141204061304_watchers_to_following.rb
wagn-1.14.5 db/migrate_core_cards/20141204061304_watchers_to_following.rb
wagn-1.14.4 db/migrate_core_cards/20141204061304_watchers_to_following.rb
wagn-1.14.3 db/migrate_core_cards/20141204061304_watchers_to_following.rb
wagn-1.14.2 db/migrate_core_cards/20141204061304_watchers_to_following.rb