Sha256: 016d38152ad2e0a58d88086730f2be5cdb1b045f7d82fc8e28460b3640909204

Contents?: true

Size: 1.38 KB

Versions: 36

Compression:

Stored size: 1.38 KB

Contents

class MergeBehaviorsAndPages < ActiveRecord::Migration
  class OldPage < ActiveRecord::Base
    set_table_name 'pages'
  end

  @@page_map = {
    "Page Missing" => "FileNotFoundPage"
  }

  @@behavior_map = @@page_map.invert

  def self.up
    announce "converting behavior names to class names"
    OldPage.find(:all).each do |page|
      unless page.behavior_id.blank?
        page.behavior_id = page_name(page.behavior_id)
        page.save!
      end
    end
    rename_column :pages, :behavior_id, :type
  end

  def self.down
    rename_column :pages, :type, :behavior_id
    OldPage.reset_column_information
    announce "converting class names back to behavior names"
    OldPage.find(:all).each do |page|
      unless page.behavior_id.blank?
        page.behavior_id = behavior_name(page.behavior_id)
        page.save!
      end
    end
  end

  def self.page_name(behavior_name)
    if @@page_map.has_key?(behavior_name)
      @@page_map[behavior_name]
    else
      name = behavior_name.scan(/\w+/).map { |word| word.capitalize }.join
      name = $1 if name =~ /^(.*?)Behavior$/
      name += "Page" unless name =~ /Page$/
      name
    end
  end

  def self.behavior_name(page_name)
    if @@behavior_map.has_key?(page_name)
      @@behavior_map[page_name]
    else
      name = page_name.gsub(/(^.|[A-Z])/, ' \1').strip
      name = $1 if name =~ /^(.*)Page$/
      name
    end
  end


end

Version data entries

36 entries across 36 versions & 1 rubygems

Version Path
trusty-cms-2.0.2.pre.beta db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-2.0.1.pre.beta db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-2.0.0.pre.beta db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.2.29 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.2.28 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.28 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.27 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.26 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.25 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.24 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.23 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.22 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.21 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.20 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.19 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.18 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.17 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.16 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.15 db/migrate/010_merge_behaviors_and_pages.rb
trusty-cms-1.1.14 db/migrate/010_merge_behaviors_and_pages.rb