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

Improve heuristic for railties default name, otherwise railties may be named...

Improve heuristic for railties default name, otherwise railties may be named :railtie, :engine and so on.
上级 7b8399b8
......@@ -14,7 +14,7 @@ class << self
alias :engine_names :railtie_names
def inherited(base)
unless abstract_railtie?(base)
unless base.abstract_railtie?
base.called_from = begin
# Remove the line number from backtraces making sure we don't leave anything behind
call_stack = caller.map { |p| p.split(':')[0..-2].join(':') }
......
......@@ -9,7 +9,8 @@ class Railtie
include Initializable
ABSTRACT_RAILTIES = %w(Rails::Plugin Rails::Engine Rails::Application)
ABSTRACT_RAILTIES = %w(Rails::Railtie Rails::Plugin Rails::Engine Rails::Application)
RAILTIES_TYPES = ABSTRACT_RAILTIES.map { |r| r.split('::').last }
class << self
def subclasses
......@@ -17,7 +18,7 @@ def subclasses
end
def inherited(base)
unless abstract_railtie?(base)
unless base.abstract_railtie?
base.send(:include, self::Configurable)
subclasses << base
end
......@@ -52,14 +53,16 @@ def generators(&blk)
@generators
end
protected
def abstract_railtie?(base)
ABSTRACT_RAILTIES.include?(base.name)
def abstract_railtie?
ABSTRACT_RAILTIES.include?(name)
end
protected
def default_name
ActiveSupport::Inflector.underscore(ActiveSupport::Inflector.demodulize(name))
namespaces = name.split("::")
namespaces.pop if RAILTIES_TYPES.include?(namespaces.last)
ActiveSupport::Inflector.underscore(namespaces.last).to_sym
end
end
......
......@@ -15,6 +15,14 @@ def app
@app ||= Rails.application
end
test "name can be retrieved from namespaced railties" do
module ActiveRailtie
class Railtie < Rails::Railtie; end
end
assert_equal :active_railtie, ActiveRailtie::Railtie.railtie_name
end
test "can find railtie by name" do
class TieA < Rails::Railtie; railtie_name :railtie_a; end
class TieB < Rails::Railtie; railtie_name :railtie_b; end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册