aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/generators/inboxes/install_generator.rb40
-rw-r--r--lib/generators/inboxes/templates/install.rb36
-rw-r--r--lib/inboxes.rb8
-rw-r--r--lib/inboxes/engine.rb4
-rw-r--r--lib/inboxes/railtie.rb16
5 files changed, 101 insertions, 3 deletions
diff --git a/lib/generators/inboxes/install_generator.rb b/lib/generators/inboxes/install_generator.rb
new file mode 100644
index 0000000..d5d2a97
--- /dev/null
+++ b/lib/generators/inboxes/install_generator.rb
@@ -0,0 +1,40 @@
+require 'rails/generators'
+require 'rails/generators/migration'
+
+module Inboxes
+ module Generators
+ class InstallGenerator < 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 'install.rb', 'db/migrate/install_inboxes.rb'
+ end
+ end
+ end
+end
diff --git a/lib/generators/inboxes/templates/install.rb b/lib/generators/inboxes/templates/install.rb
new file mode 100644
index 0000000..ff83b40
--- /dev/null
+++ b/lib/generators/inboxes/templates/install.rb
@@ -0,0 +1,36 @@
+class InstallInboxes < ActiveRecord::Migration
+ def self.up
+ create_table :discussion_views do |t|
+ t.references :user
+ t.references :discussion
+ t.timestamps
+ end
+
+ create_table :discussions do |t|
+ t.integer :messages_count, :default => 0 # counter cache
+ t.timestamps
+ end
+
+ create_table :messages do |t|
+ t.references :user
+ t.references :discussion
+ t.text :body
+
+ t.timestamps
+ end
+
+ create_table :speakers do |t|
+ t.references :user
+ t.references :discussion
+
+ t.timestamps
+ end
+ end
+
+ def self.down
+ drop_table :speakers
+ drop_table :discussions
+ drop_table :discussion_views
+ drop_table :messages
+ end
+end \ No newline at end of file
diff --git a/lib/inboxes.rb b/lib/inboxes.rb
index 2720101..29bb078 100644
--- a/lib/inboxes.rb
+++ b/lib/inboxes.rb
@@ -1,5 +1,7 @@
require "inboxes/version"
+require "inboxes/railtie"
+require "inboxes/engine"
-module Inboxes
- # Your code goes here...
-end
+# module Inboxes
+# # Your code goes here...
+# end
diff --git a/lib/inboxes/engine.rb b/lib/inboxes/engine.rb
new file mode 100644
index 0000000..061694e
--- /dev/null
+++ b/lib/inboxes/engine.rb
@@ -0,0 +1,4 @@
+module Inboxes
+ class Engine < ::Rails::Engine
+ end
+end \ No newline at end of file
diff --git a/lib/inboxes/railtie.rb b/lib/inboxes/railtie.rb
new file mode 100644
index 0000000..5be6db5
--- /dev/null
+++ b/lib/inboxes/railtie.rb
@@ -0,0 +1,16 @@
+require 'rails'
+
+module Inboxes
+ class Railtie < ::Rails::Railtie #:nodoc:
+ initializer 'inboxes' do |app|
+ ActiveSupport.on_load(:active_record) do
+ # require 'kaminari/models/active_record_extension'
+ # ::ActiveRecord::Base.send :include, Kaminari::ActiveRecordExtension
+ end
+
+ ActiveSupport.on_load(:action_view) do
+ # ::ActionView::Base.send :include, Kaminari::ActionViewExtension
+ end
+ end
+ end
+end \ No newline at end of file