提交 9dd4c79d 编写于 作者: J José Valim

Allow to add subscribers through Railtie.

上级 4704af76
......@@ -15,6 +15,7 @@
require 'rails/paths'
require 'rails/configuration'
require 'rails/deprecation'
require 'rails/subscriber'
require 'rails/ruby_version_check'
# For Ruby 1.8, this initialization sets $KCODE to 'u' to enable the
......
......@@ -53,6 +53,7 @@ def load_tasks
ActionController::Base.view_paths.concat ["#{path}/app/views"] if File.directory?("#{path}/app/views")
end
# TODO Isn't it supposed to be :after => "action_controller.initialize_routing" ?
initializer :add_routing_file, :after => :initialize_routing do |app|
routing_file = "#{path}/config/routes.rb"
if File.exist?(routing_file)
......
......@@ -25,6 +25,10 @@ def self.config
Configuration.default
end
def self.subscriber(subscriber)
Rails::Subscriber.add(plugin_name, subscriber)
end
def self.rake_tasks(&blk)
@rake_tasks ||= []
@rake_tasks << blk if blk
......
......@@ -32,5 +32,14 @@ class MyApp < Rails::Application
assert_equal "hello", MyApp.config.foo.greetings
assert_equal "bar", MyApp.config.foo.bar
end
test "plugin can add subscribers" do
begin
class Foo < Rails::Railtie; subscriber(Rails::Subscriber.new); end
assert_kind_of Rails::Subscriber, Rails::Subscriber.subscribers[:foo]
ensure
Rails::Subscriber.subscribers.clear
end
end
end
end
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册