ruby中的方法定义(如sinatra)

时间:2014-05-28 05:55:13

标签: ruby sinatra

我不知道Sinatra方法(如getparams)的定义。根据{{​​1}},它们是Sinatra的base.rb类的静态部分。只需写Base,我怎么能在任何地方打电话给他们?我不应该写get之类的东西吗?我怎么能自己定义这样的东西?

1 个答案:

答案 0 :(得分:3)

答案可以在这里找到:https://github.com/sinatra/sinatra/blob/master/lib/sinatra/main.rb

当您以简单模式执行Sinatra时,getsetpost等所有方法都通过Sinatra :: Delegator委派,其定义如下:https://github.com/sinatra/sinatra/blob/master/lib/sinatra/base.rb#L1977并混合到main.rb

中的全局范围内

单独留下所有Sinatra技巧,对于您自己的模块,您可以通过非常简单的代码实现效果:

module MyMixin
  def testme
    puts 'testme'
  end
end

extend MyMixin

testme # => testme