Commit 4c9ca01ba5903a0e4346f0a0e9e22d5fc0373b2e

Authored by Antonio Terceiro
1 parent ce57b69f

Now really avoiding crash when passing nil to YAML.load()

(ActionItem1769)
db/migrate/20101129234429_convert_folders_to_galleries.rb
1 class ConvertFoldersToGalleries < ActiveRecord::Migration 1 class ConvertFoldersToGalleries < ActiveRecord::Migration
2 def self.up 2 def self.up
3 select_all("select id, setting from articles where type = 'Folder'").each do |folder| 3 select_all("select id, setting from articles where type = 'Folder'").each do |folder|
4 - view_as = YAML.load(folder['setting'] || {})[:view_as] 4 + view_as = YAML.load(folder['setting'] || {}.to_yaml)[:view_as]
5 update("update articles set type = 'Gallery' where id = %d" % folder['id']) if view_as == 'image_gallery' 5 update("update articles set type = 'Gallery' where id = %d" % folder['id']) if view_as == 'image_gallery'
6 end 6 end
7 end 7 end
8 8
9 def self.down 9 def self.down
10 select_all("select id, setting from articles where type = 'Gallery'").each do |folder| 10 select_all("select id, setting from articles where type = 'Gallery'").each do |folder|
11 - settings = YAML.load(folder['setting'] || {}) 11 + settings = YAML.load(folder['setting'] || {}.to_yaml)
12 settings[:view_as] = 'image_gallery' 12 settings[:view_as] = 'image_gallery'
13 assignments = ActiveRecord::Base.sanitize_sql_for_assignment(:setting => settings.to_yaml) 13 assignments = ActiveRecord::Base.sanitize_sql_for_assignment(:setting => settings.to_yaml)
14 update("update articles set %s, type = 'Folder' where id = %d" % [assignments, folder['id']]) 14 update("update articles set %s, type = 'Folder' where id = %d" % [assignments, folder['id']])