diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/generators/inboxes/install_generator.rb | 10 | ||||
| -rw-r--r-- | lib/generators/inboxes/templates/install.rb | 9 | ||||
| -rw-r--r-- | lib/generators/inboxes/templates/upgrade_discussible.rb | 9 | ||||
| -rw-r--r-- | lib/generators/inboxes/upgrade_discussible_generator.rb | 36 | ||||
| -rw-r--r-- | lib/generators/inboxes/views_generator.rb | 2 | ||||
| -rw-r--r-- | lib/inboxes.rb | 8 | ||||
| -rw-r--r-- | lib/inboxes/ability.rb | 6 | ||||
| -rw-r--r-- | lib/inboxes/active_record_extension.rb | 6 | ||||
| -rw-r--r-- | lib/inboxes/engine.rb | 2 | ||||
| -rw-r--r-- | lib/inboxes/railtie.rb | 4 | ||||
| -rw-r--r-- | lib/inboxes/version.rb | 2 |
11 files changed, 67 insertions, 27 deletions
diff --git a/lib/generators/inboxes/install_generator.rb b/lib/generators/inboxes/install_generator.rb index d5d2a97..48ac223 100644 --- a/lib/generators/inboxes/install_generator.rb +++ b/lib/generators/inboxes/install_generator.rb @@ -5,19 +5,15 @@ 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" + + desc "Generates migration for Inboxes" 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 diff --git a/lib/generators/inboxes/templates/install.rb b/lib/generators/inboxes/templates/install.rb index 91fded7..e89c128 100644 --- a/lib/generators/inboxes/templates/install.rb +++ b/lib/generators/inboxes/templates/install.rb @@ -2,6 +2,7 @@ class InstallInboxes < ActiveRecord::Migration def self.up create_table :discussions do |t| t.integer :messages_count, :default => 0 # counter cache + t.references :discussable t.timestamps end @@ -9,14 +10,14 @@ class InstallInboxes < ActiveRecord::Migration 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 @@ -26,4 +27,4 @@ class InstallInboxes < ActiveRecord::Migration drop_table :discussions drop_table :messages end -end
\ No newline at end of file +end 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..475f668 --- /dev/null +++ b/lib/generators/inboxes/upgrade_discussible_generator.rb @@ -0,0 +1,36 @@ +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 Inboxes 0.2.0 update" + + def self.orm + Rails::Generators.options[:rails][:orm] + 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/generators/inboxes/views_generator.rb b/lib/generators/inboxes/views_generator.rb index 117c05d..e9a8818 100644 --- a/lib/generators/inboxes/views_generator.rb +++ b/lib/generators/inboxes/views_generator.rb @@ -5,7 +5,7 @@ module Inboxes class ViewsGenerator < Rails::Generators::Base source_root File.expand_path('../../../../app/views', __FILE__) #class_option :template_engine, :type => :string, :aliases => '-e', :desc => 'Template engine for the views. Available options are "erb" and "haml".' - + # TODO support of both haml and erb def copy_or_fetch filename_pattern = File.join self.class.source_root, "*" #/*.html.#{template_engine}" diff --git a/lib/inboxes.rb b/lib/inboxes.rb index f1b9c7a..af88b0c 100644 --- a/lib/inboxes.rb +++ b/lib/inboxes.rb @@ -3,10 +3,9 @@ require "inboxes/railtie" require "inboxes/ability" require "inboxes/engine" require "inboxes/active_record_extension" - +require "cancan" module Inboxes - def self.configure(&block) yield @config ||= Inboxes::Configuration.new end @@ -25,11 +24,10 @@ module Inboxes config_accessor :faye_enabled def param_name - config.param_name.respond_to?(:call) ? config.param_name.call() : config.param_name + config.param_name.respond_to?(:call) ? config.param_name.call() : config.param_name end end - + # adding method inboxes for models ActiveRecord::Base.extend(Inboxes::ActiveRecordExtension) - end diff --git a/lib/inboxes/ability.rb b/lib/inboxes/ability.rb index 3ed216b..c9f8d6b 100644 --- a/lib/inboxes/ability.rb +++ b/lib/inboxes/ability.rb @@ -13,17 +13,17 @@ module Inboxes discussion.can_participate?(user) end end - + # Message # can :create, Message do |message| # message.discussion.can_participate?(user) # end - # + # # # Speaker # can [:create, :destroy], Speaker do |speaker| # speaker.discussion.can_participate?(user) # end end end - + end
\ No newline at end of file diff --git a/lib/inboxes/active_record_extension.rb b/lib/inboxes/active_record_extension.rb index 34fd387..b3c3231 100644 --- a/lib/inboxes/active_record_extension.rb +++ b/lib/inboxes/active_record_extension.rb @@ -3,9 +3,9 @@ module Inboxes def has_inboxes(options = {}) # field = options[:as] || name # prefix = options[:prefix] || "with" - + has_many :speakers, :dependent => :destroy - has_many :discussions, :through => :speakers + has_many :discussions, :as => :discussable, :through => :speakers end end -end
\ No newline at end of file +end diff --git a/lib/inboxes/engine.rb b/lib/inboxes/engine.rb index 01f63b5..b61eebc 100644 --- a/lib/inboxes/engine.rb +++ b/lib/inboxes/engine.rb @@ -5,7 +5,7 @@ module Inboxes def self.activate Ability.register_ability(InboxesAbility) end - + config.to_prepare &method(:activate).to_proc end end
\ No newline at end of file diff --git a/lib/inboxes/railtie.rb b/lib/inboxes/railtie.rb index 673784e..1626b20 100644 --- a/lib/inboxes/railtie.rb +++ b/lib/inboxes/railtie.rb @@ -4,7 +4,7 @@ require "inboxes/ability" module Inboxes class Railtie < ::Rails::Railtie config.inboxes = ActiveSupport::OrderedOptions.new - + initializer "inboxes.configure" do |app| Inboxes.configure do |config| config.user_name = app.config.inboxes[:user_name] || "email" @@ -15,7 +15,7 @@ module Inboxes # app.config.middleware.insert_before "::Rails::Rack::Logger", "Inboxes::Middleware" end - + # def self.activate # Ability.register_ability(InboxesAbility) # end diff --git a/lib/inboxes/version.rb b/lib/inboxes/version.rb index 5470b38..ee23565 100644 --- a/lib/inboxes/version.rb +++ b/lib/inboxes/version.rb @@ -1,3 +1,3 @@ module Inboxes - VERSION = "0.1.5" + VERSION = "0.2.0" end |
