我正在构建一个命名空间 Rails Engine gem,它可以通过其他 gem 进行扩展。例如: MyEngine 是主要的 gem,也是命名空间。MyEngine-blog 和 MyEngine-support 是可选的 gem,用于在继承 MyEngine 命名空间的同时扩展 MyEngine gem。
MyEngine-blog 和 MyEngine-support 依赖于 MyEngine 的核心功能,这两个 gem 都将包含spec.add_dependency "synculus"
在它们的 gemspec 文件中。
Rails::Engine
为依赖项指定 gem的正确方法是什么?我是否必须class Engine < ::Rails::Engine
在每个 MyEngine-blog 和 MyEngine-support gem 的 engine.rb 文件中指定?
# lib/myengine/engine.rb
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
end
end
# lib/myengine/blog/engine.rb
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
module Blog
end
end
end
# lib/myengine/support/engine.rb
module MyEngine
class Engine < ::Rails::Engine
isolate_namespace MyEngine
module Support
end
end
end