Alcuni siti di blog popolari usano solitamente parentesi quadre nei loro URL ma il metodo URI.parse() di Ruby si strozza su di essi, sollevando una brutta eccezione, come da: http://redmine.ruby-lang.org/issues/show/1466Come utilizzare il metodo URI.parse di scimmia ruby
Sto provando a scrivere una semplice patch di scimmia che gestisce con grazia gli URL con la parentesi quadra. Il seguente è quello che ho finora:
require 'uri'
module URI
def self.parse_with_safety(uri)
safe_uri = uri.replace('[', '%5B')
safe_uri = safe_uri.replace(']', '%5D')
URI.parse_without_safety(safe_uri)
end
alias_method_chain :parse, :safety
end
Ma quando andare, questo genera un errore:
/Library/Ruby/Gems/1.8/gems/activesupport-2.3.8/lib/active_support/ core_ext/module/aliasing.rb: 33: in alias_method: NameError: metodo undefined 'parse' per il modulo 'URI'
Come posso eseguire correttamente la patch della scimmia URI.parse?
per Ruby> = 1.9 vedere http://stackoverflow.com/questions/7637138/how-to-prevent-the-character-from-causing-a-bad-uri-error-in-ruby –