diff options
| author | Kir | 2012-01-17 15:20:51 +0200 | 
|---|---|---|
| committer | Kir | 2012-01-17 15:20:51 +0200 | 
| commit | 9c0467d35acc4a7ced8b8068f52f5d492a734ce8 (patch) | |
| tree | 566d6ab4370aabd126cf699409adce698ff849fe /lib | |
| parent | a2d573c32cfb8c7cab773b0ea04cba19241c55dd (diff) | |
| download | inboxes-9c0467d35acc4a7ced8b8068f52f5d492a734ce8.tar.bz2 | |
Upgrade migration, refactoring
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/generators/inboxes/templates/upgrade_discussible.rb | 9 | ||||
| -rw-r--r-- | lib/generators/inboxes/upgrade_discussible_generator.rb | 40 | ||||
| -rw-r--r-- | lib/inboxes/active_record_extension.rb | 6 | 
3 files changed, 50 insertions, 5 deletions
| diff --git a/lib/generators/inboxes/templates/upgrade_discussible.rb b/lib/generators/inboxes/templates/upgrade_discussible.rb new file mode 100644 index 0000000..dc39dd9 --- /dev/null +++ b/lib/generators/inboxes/templates/upgrade_discussible.rb @@ -0,0 +1,9 @@ +class UpgradeDiscussibleInboxes < ActiveRecord::Migration +  def self.change +    add_column :discussions, :discussible_id, :integer +  end + +  def self.down +    remove_column :discussions, :discussible_id +  end +end diff --git a/lib/generators/inboxes/upgrade_discussible_generator.rb b/lib/generators/inboxes/upgrade_discussible_generator.rb new file mode 100644 index 0000000..dd85972 --- /dev/null +++ b/lib/generators/inboxes/upgrade_discussible_generator.rb @@ -0,0 +1,40 @@ +require 'rails/generators' +require 'rails/generators/migration' + +module Inboxes +  module Generators +    class UpgradeDiscussibleGenerator < Rails::Generators::Base +      include Rails::Generators::Migration + +      source_root File.expand_path("../templates", __FILE__) + +      # desc "Generates migration for Discussion, Message, Speaker and DiscussionView models" + +      def self.orm +        Rails::Generators.options[:rails][:orm] +      end + +      # def self.source_root +        # File.join(File.dirname(__FILE__), 'templates', (orm.to_s unless orm.class.eql?(String)) ) +      # end + +      def self.orm_has_migration? +        [:active_record].include? orm +      end + +      def self.next_migration_number(dirname) +        if ActiveRecord::Base.timestamped_migrations +          migration_number = Time.now.utc.strftime("%Y%m%d%H%M%S").to_i +          migration_number += 1 +          migration_number.to_s +        else +          "%.3d" % (current_migration_number(dirname) + 1) +        end +      end + +      def copy_migration +        migration_template 'upgrade_discussible.rb', 'db/migrate/upgrade_discussible_inboxes.rb' +      end +    end +  end +end diff --git a/lib/inboxes/active_record_extension.rb b/lib/inboxes/active_record_extension.rb index d6e7e36..b3c3231 100644 --- a/lib/inboxes/active_record_extension.rb +++ b/lib/inboxes/active_record_extension.rb @@ -5,11 +5,7 @@ module Inboxes        # prefix = options[:prefix] || "with"        has_many :speakers, :dependent => :destroy -      has_many :discussions, :through => :speakers -    end - -    def acts_as_discussable -      has_many :discussions, :as => :discussable +      has_many :discussions, :as => :discussable, :through => :speakers      end    end  end | 
