aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKir2012-01-17 15:20:51 +0200
committerKir2012-01-17 15:20:51 +0200
commit9c0467d35acc4a7ced8b8068f52f5d492a734ce8 (patch)
tree566d6ab4370aabd126cf699409adce698ff849fe
parenta2d573c32cfb8c7cab773b0ea04cba19241c55dd (diff)
downloadinboxes-9c0467d35acc4a7ced8b8068f52f5d492a734ce8.tar.bz2
Upgrade migration, refactoring
-rw-r--r--lib/generators/inboxes/templates/upgrade_discussible.rb9
-rw-r--r--lib/generators/inboxes/upgrade_discussible_generator.rb40
-rw-r--r--lib/inboxes/active_record_extension.rb6
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