Я пытаюсь разобрать URI с пользовательского ввода. Я предполагаю, что некоторые пользователи не будут помещать эту схему в свои URI, и я хочу по умолчанию «http».Как настроить схему на объект URI в Ruby
Следующий код не работает:
require 'uri'
uri_to_check = URI::parse("www.google.com")
uri_to_check.scheme = "http" unless uri_to_check.scheme
puts uri_to_check.to_s
я ожидал увидеть "http://www.google.com", но я получаю "HTTP: www.google.com". Возможно ли это сделать так?
Если да, то что мне не хватает?
Есть ли лучший способ сделать это?
+1. В вашем конкретном случае использования вы можете посмотреть «Addressable :: URI.heuristic_parse», который специально предназначен для данного случая, где некоторая информация действительно отсутствует в URI, а не намеренно отсутствует. –
Addressable :: URI.heuristic_parse - именно то, что я ищу. Спасибо! – maz
Согласовано. Что говорит оловянный человек, правда, но для случая использования в реальном мире (или, по крайней мере, того, о чем конкретно идет речь), «Addressable :: URI.heuristic_parse» - это то, что нужно. – hlascelles