aboutsummaryrefslogtreecommitdiffstats
path: root/spec/dummy/db/migrate/20110117053357_remove_duplicate_user_image_sizes_setting.rb
blob: 9b6db2beb712b44acb84cb7f414a5c62b2830196 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class RemoveDuplicateUserImageSizesSetting < ActiveRecord::Migration
  def self.up
    if (settings = ::Refinery::Setting.where(:name => :user_image_sizes)).count > 1
      default_value = { :small => '110x110>', :medium => '225x255>', :large => '450x450>' }

      if (non_default_setting = settings.detect { |setting| setting[:value] != default_value })
        settings.detect { |setting| setting[:value] == default_value }.destroy
        non_default_setting[:destroyable] = false
        non_default_setting.save
      else
        settings.detect { |setting| setting[:destroyable] == true }.destroy
      end
      say "Removed duplicate user image sizes settings"
    else
      say "Nothing done, no duplicate settings found"
    end
  end

  def self.down
    # there is no step down ...
  end
end