OSDN Git Service

Upgrade the Engines plugin to get the bugfix for Rails::Plugin::GemLocator
authorEric Davis <edavis@littlestreamsoftware.com>
Wed, 7 Oct 2009 16:43:50 +0000 (16:43 +0000)
committerEric Davis <edavis@littlestreamsoftware.com>
Wed, 7 Oct 2009 16:43:50 +0000 (16:43 +0000)
This update will allow Rails Engines to be installed as gems.  For example:

    # config/environment.rb
    Rails::Initializer.run do |config|
      ...
      config.gem 'timesheet_plugin'
    end

Will load the timesheet_plugins's RubyGem and allow it to work as if it was
installed to vendor/plugins.

git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@2904 e93f8b46-1217-0410-a6f0-8f06a7374b81

vendor/plugins/engines/boot.rb
vendor/plugins/engines/generators/plugin_migration/plugin_migration_generator.rb

index 1c55e21..7dd90d1 100644 (file)
@@ -10,7 +10,7 @@ require File.join(File.dirname(__FILE__), 'lib/engines')
 # initialize Rails::Configuration with our own default values to spare users 
 # some hassle with the installation and keep the environment cleaner
 
-{ :default_plugin_locators => [Engines::Plugin::FileSystemLocator],
+{ :default_plugin_locators => (defined?(Gem) ? [Rails::Plugin::GemLocator] : []).push(Engines::Plugin::FileSystemLocator),
   :default_plugin_loader => Engines::Plugin::Loader,
   :default_plugins => [:engines, :all] }.each do |name, default|    
   Rails::Configuration.send(:define_method, name) { default }
index 5944ae2..d6ecbd4 100644 (file)
@@ -48,7 +48,7 @@ class PluginMigrationGenerator < Rails::Generator::Base
         end
       end
       
-      @plugins_to_migrate.reject! { |p| p.latest_migration.nil? }
+      @plugins_to_migrate.reject! { |p| !p.respond_to?(:latest_migration) || p.latest_migration.nil? }
       
       # Then find the current versions from the database    
       @current_versions = {}