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 | |
| parent | a2d573c32cfb8c7cab773b0ea04cba19241c55dd (diff) | |
| download | inboxes-9c0467d35acc4a7ced8b8068f52f5d492a734ce8.tar.bz2 | |
Upgrade migration, refactoring
| -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 |
