1
我從sinatra應用程序中將功能提取到擴展中。我的擴展模塊(ExtensionBar
)取決於是否存在另一個擴展模塊(ExtensionFoo
)創建的類級dsl擴展。因此,當我的主應用程序require
d時,我的擴展程序就會死亡。創建依賴於另一個Sinatra擴展的Sinatra擴展
my_app.rb:
require "extension_foo"
require "extension_bar"
class MyApp < Sinatra::Base
register ExtensionFoo
register ExtensionBar
end
extension_foo.rb:
module ExtensionFoo
def with_foo
yield
end
end
extension_bar.rb:
module ExtensionBar
with_foo do
"bar"
end
end
我的問題:我如何才能最有力,簡單地編寫擴展這取決於另一個擴展的註冊表?我想盡可能避免元編程。