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 所以我不确定这里发生了什么。