class AddAttachmentsIconToProfile < ActiveRecord::Migration
def self.up
add_column :profiles, :icon_file_name, :string
add_column :profiles, :icon_content_type, :string
add_column :profiles, :icon_file_size, :integer
add_column :profiles, :icon_updated_at, :datetime
rename_column :profiles, :icon, :old_file_name
add_crop("plugins.tog_social.profile.image.versions.big")
add_crop("plugins.tog_social.profile.image.versions.medium")
add_crop("plugins.tog_social.profile.image.versions.small")
add_crop("plugins.tog_social.profile.image.versions.tiny")
Profile.all.each do |p|
unless p.old_file_name.blank?
p.icon = File.new("public/system/profile/profile/icon/#{p.id}/#{p.old_file_name}") if File.exists?("public/system/profile/profile/icon/#{p.id}/#{p.old_file_name}")
p.save!
end
end
FileUtils.rm_rf "public/system/profile/"
remove_column :profiles, :old_file_name
end
def self.down
add_column :profiles, :icon, :string
remove_crop("plugins.tog_social.profile.image.versions.big")
remove_crop("plugins.tog_social.profile.image.versions.medium")
remove_crop("plugins.tog_social.profile.image.versions.small")
remove_crop("plugins.tog_social.profile.image.versions.tiny")
Profile.all.each do |p|
unless p.icon_file_name.blank?
p.icon = File.new("public/system/profiles/images/#{p.id}/#{p.icon_file_name}") if File.exists?("public/system/profiles/images/#{p.id}/#{p.icon_file_name}")
p.save!
end
end
FileUtils.rm_rf "public/system/profiles"
remove_column :profiles, :icon_file_name
remove_column :profiles, :icon_content_type
remove_column :profiles, :icon_file_size
remove_column :profiles, :icon_updated_at
end
private
def self.add_crop(key)
Tog::Config[key]="#{Tog::Config[key]}#" unless Tog::Config[key] =~ /#|%|@|!|<|>|\^/
end
def self.remove_crop(key)
Tog::Config[key]=Tog::Config[key].gsub("#",'')
end
end