Add table_name_prefix to Engine's namespace automatically
This commit is contained in:
parent
a7c6fe4c2a
commit
db8a864e69
@ -201,11 +201,19 @@ def endpoint(endpoint = nil)
|
||||
end
|
||||
|
||||
def namespace(mod)
|
||||
# TODO: extract that into a module
|
||||
engine_name(generate_railtie_name(mod))
|
||||
|
||||
_railtie = self
|
||||
name = engine_name
|
||||
mod.singleton_class.instance_eval do
|
||||
define_method(:_railtie) do
|
||||
_railtie
|
||||
end
|
||||
|
||||
define_method(:table_name_prefix) do
|
||||
"#{name}_"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -167,8 +167,13 @@ def abstract_railtie?
|
||||
|
||||
def railtie_name(name = nil)
|
||||
@railtie_name = name.to_s if name
|
||||
@railtie_name ||= ActiveSupport::Inflector.underscore(self.name).gsub("/", "_")
|
||||
@railtie_name ||= generate_railtie_name(self.name)
|
||||
end
|
||||
|
||||
protected
|
||||
def generate_railtie_name(class_or_module)
|
||||
ActiveSupport::Inflector.underscore(class_or_module).gsub("/", "_")
|
||||
end
|
||||
end
|
||||
|
||||
delegate :railtie_name, :to => "self.class"
|
||||
|
@ -408,6 +408,8 @@ class MyMailer < ActionMailer::Base
|
||||
|
||||
boot_rails
|
||||
|
||||
assert_equal "bukkits_", Bukkits.table_name_prefix
|
||||
assert_equal "bukkits", Bukkits::Engine.engine_name
|
||||
assert_equal Bukkits._railtie, Bukkits::Engine
|
||||
assert ::Bukkits::MyMailer.method_defined?(:foo_path)
|
||||
assert !::Bukkits::MyMailer.method_defined?(:bar_path)
|
||||
|
Loading…
Reference in New Issue
Block a user