我想以这种方式使用URI:
require 'open-uri'
uri = URI.parse('http://subdomain.domain.com/section/page.html')
puts uri.first_level_domain # => 'domain.com'
我该怎么做?
我正在尝试:
module URI
def parse
ret = super
domain = ret.host.split('.').last(2).join('.')
ret.send(:define_method, :first_level_domain, lambda { domain })
ret
end
end
但我得到undefined method 'first_level_domain' for #<URI::HTTP:0x9bc7ab0> (NoMethodError)
答案 0 :(得分:3)
为什么这么复杂?你可以这样的
module URI
def first_level_domain
host.split('.').last(2).join('.')
end
end
uri = URI.parse('http://subdomain.domain.com/section/page.html')
uri.first_level_domain
# => "domain.com"