在模块中包含外部Ruby模块?

时间:2012-04-30 16:31:00

标签: ruby inheritance module

我正在为Ruby创建一个Rack框架,它在以下内容中运行App::Router模块:

module App
    Router = HttpRouter.new do
        get('/') { |env| erb('home') }
    end
end

请注意我希望在路由器中使用的erb()方法。问题是将方法从外部源(我的框架)转换为模块并传递到内部的do块中。

是否有可能将外部源模块转换为另一个文件中的模块?

感谢。

2 个答案:

答案 0 :(得分:2)

module App
  def foo
    "bar"
  end
end

module Route
  include App
end

include Route

foo
 => "bar" 

答案 1 :(得分:2)

erb是你在某处定义的方法吗?尝试这样的事情:

    require 'path/to/module/with/erb_method'
    module App
      include YourModule
      Router = HttpRouter.new do
        get('/') { |env| erb('home') }
      end
    end