1

https://github.com/alexreisner/geocoder

我喜欢 Ruby Geocoder Gem,因为它具有惊人的元编程,其中大部分我根本不明白。

有谁知道 Geocoder::Request 模块底部发生了什么?

有一个简单的 3 行块让我感到困惑:

它实际上在模块定义之外,它读作

    if defined?(Rack) and defined?(Rack::Request)
      Rack::Request.send :include, Geocoder::Request
    end

Rack::Request 上没有预定义方法 .include 所以我不确定这里发生了什么。

4

1 回答 1

0

该块意味着如果满足条件,Geocoder::Request模块将被包含在Rack::Request类中,因此本质上是扩展Rack::Request功能以包含location刚刚定义的方法。该include方法位于 ruby​​ Module中。

这是您所指的文件:地理编码器请求

于 2013-03-14T18:51:11.853 回答