open-uri.rb 605 B

12345678910111213141516171819
  1. if Kernel.respond_to?(:open_uri_original_open) # rubocop:disable Naming/FileName
  2. module Kernel
  3. private
  4. # see: https://github.com/ruby/ruby/pull/1675
  5. def open(name, *rest, &block)
  6. if name.respond_to?(:open) && name.method(:open).parameters.present?
  7. name.open(*rest, &block)
  8. elsif name.respond_to?(:to_str) &&
  9. %r{\A[A-Za-z][A-Za-z0-9+\-\.]*://} =~ name &&
  10. (uri = URI.parse(name)).respond_to?(:open)
  11. uri.open(*rest, &block)
  12. else
  13. open_uri_original_open(name, *rest, &block)
  14. end
  15. end
  16. module_function :open
  17. end
  18. end