aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/plugin.rb
diff options
context:
space:
mode:
Diffstat (limited to 'railties/lib/rails/plugin.rb')
-rw-r--r--railties/lib/rails/plugin.rb126
1 files changed, 42 insertions, 84 deletions
diff --git a/railties/lib/rails/plugin.rb b/railties/lib/rails/plugin.rb
index e154e9b706..9cc6b9c35b 100644
--- a/railties/lib/rails/plugin.rb
+++ b/railties/lib/rails/plugin.rb
@@ -1,106 +1,64 @@
module Rails
- class Plugin
- include Initializable
-
- def self.plugin_name(plugin_name = nil)
- @plugin_name ||= name.demodulize.underscore
- @plugin_name = plugin_name if plugin_name
- @plugin_name
- end
-
- def self.inherited(klass)
- @plugins ||= []
- @plugins << klass unless klass == Vendored
- end
-
- def self.plugins
- @plugins
- end
+ class Plugin < Railtie
+ def self.all(list, paths)
+ plugins = []
+ paths.each do |path|
+ Dir["#{path}/*"].each do |plugin_path|
+ plugin = new(plugin_path)
+ next unless list.include?(plugin.name) || list.include?(:all)
+ plugins << plugin
+ end
+ end
- def self.plugin_names
- plugins.map { |p| p.plugin_name }
+ plugins.sort_by do |p|
+ [list.index(p.name) || list.index(:all), p.name.to_s]
+ end
end
- def self.config
- Configuration.default
- end
+ attr_reader :name, :path
- def self.rake_tasks(&blk)
- @rake_tasks ||= []
- @rake_tasks << blk if blk
- @rake_tasks
+ def initialize(path)
+ @name = File.basename(path).to_sym
+ @path = path
end
- def rake_tasks
- self.class.rake_tasks
+ def load_paths
+ Dir["#{path}/{lib}", "#{path}/app/{models,controllers,helpers}"]
end
def load_tasks
- return unless rake_tasks
- rake_tasks.each { |blk| blk.call }
+ Dir["#{path}/**/tasks/**/*.rake"].sort.each { |ext| load ext }
end
- class Vendored < Plugin
- def self.all(list, paths)
- plugins = []
- paths.each do |path|
- Dir["#{path}/*"].each do |plugin_path|
- plugin = new(plugin_path)
- next unless list.include?(plugin.name) || list.include?(:all)
- plugins << plugin
- end
- end
-
- plugins.sort_by do |p|
- [list.index(p.name) || list.index(:all), p.name.to_s]
- end
- end
-
- attr_reader :name, :path
-
- def initialize(path)
- @name = File.basename(path).to_sym
- @path = path
- end
-
- def load_paths
- Dir["#{path}/{lib}", "#{path}/app/{models,controllers,helpers}"]
- end
-
- def load_tasks
- Dir["#{path}/**/tasks/**/*.rake"].sort.each { |ext| load ext }
- end
-
- initializer :add_to_load_path, :after => :set_autoload_paths do |app|
- load_paths.each do |path|
- $LOAD_PATH << path
- require "active_support/dependencies"
+ initializer :add_to_load_path, :after => :set_autoload_paths do |app|
+ load_paths.each do |path|
+ $LOAD_PATH << path
+ require "active_support/dependencies"
- ActiveSupport::Dependencies.load_paths << path
+ ActiveSupport::Dependencies.load_paths << path
- unless app.config.reload_plugins
- ActiveSupport::Dependencies.load_once_paths << path
- end
+ unless app.config.reload_plugins
+ ActiveSupport::Dependencies.load_once_paths << path
end
end
+ end
- initializer :load_init_rb, :before => :load_application_initializers do |app|
- file = "#{@path}/init.rb"
- config = app.config
- eval File.read(file), binding, file if File.file?(file)
- end
+ initializer :load_init_rb, :before => :load_application_initializers do |app|
+ file = "#{@path}/init.rb"
+ config = app.config
+ eval File.read(file), binding, file if File.file?(file)
+ end
- initializer :add_view_paths, :after => :initialize_framework_views do
- ActionController::Base.view_paths.concat ["#{path}/app/views"] if File.directory?("#{path}/app/views")
- end
+ initializer :add_view_paths, :after => :initialize_framework_views do
+ ActionController::Base.view_paths.concat ["#{path}/app/views"] if File.directory?("#{path}/app/views")
+ end
- initializer :add_routing_file, :after => :initialize_routing do |app|
- routing_file = "#{path}/config/routes.rb"
- if File.exist?(routing_file)
- app.route_configuration_files << routing_file
- app.reload_routes!
- end
+ initializer :add_routing_file, :after => :initialize_routing do |app|
+ routing_file = "#{path}/config/routes.rb"
+ if File.exist?(routing_file)
+ app.route_configuration_files << routing_file
+ app.reload_routes!
end
end
end
-end
+end \ No newline at end of file