Sha256: ffb14cc0eb061162b8a42e852814e02b82f5dbd271ee3497f502f167e213be3e

Contents?: true

Size: 659 Bytes

Versions: 50

Compression:

Stored size: 659 Bytes

Contents

# encoding: utf-8

if RUBY_VERSION >= '1.9'
  require 'uri'

  str = "\xE6\x97\xA5\xE6\x9C\xAC\xE8\xAA\x9E" # Ni-ho-nn-go in UTF-8, means Japanese.

  parser = URI::Parser.new

  unless str == parser.unescape(parser.escape(str))
    URI::Parser.class_eval do
      remove_method :unescape
      def unescape(str, escaped = /%[a-fA-F\d]{2}/)
        # TODO: Are we actually sure that ASCII == UTF-8?
        # YK: My initial experiments say yes, but let's be sure please
        enc = str.encoding
        enc = Encoding::UTF_8 if enc == Encoding::US_ASCII
        str.gsub(escaped) { [$&[1, 2].hex].pack('C') }.force_encoding(enc)
      end
    end
  end
end

Version data entries

50 entries across 50 versions & 4 rubygems

Version Path
social_url_stats-0.0.1 vendor/ruby/1.9.1/gems/activesupport-3.0.0/lib/active_support/core_ext/uri.rb
activesupport-3.0.20 lib/active_support/core_ext/uri.rb
activesupport-3.0.19 lib/active_support/core_ext/uri.rb
activesupport-3.0.18 lib/active_support/core_ext/uri.rb
activesupport-3.0.17 lib/active_support/core_ext/uri.rb
activesupport-3.0.16 lib/active_support/core_ext/uri.rb
activesupport-3.0.15 lib/active_support/core_ext/uri.rb
activesupport-3.0.14 lib/active_support/core_ext/uri.rb
activesupport-3.0.13 lib/active_support/core_ext/uri.rb
activesupport-3.0.13.rc1 lib/active_support/core_ext/uri.rb
activesupport-3.0.12 lib/active_support/core_ext/uri.rb
activesupport-3.0.12.rc1 lib/active_support/core_ext/uri.rb
activesupport-3.0.11 lib/active_support/core_ext/uri.rb
messagebus_ruby_api-0.4.7 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/uri.rb
messagebus_ruby_api-0.4.4 spec/ruby/1.9.1/gems/activesupport-3.0.9/lib/active_support/core_ext/uri.rb
activesupport-3.0.10 lib/active_support/core_ext/uri.rb
activesupport-3.0.10.rc1 lib/active_support/core_ext/uri.rb
activesupport-3.0.9 lib/active_support/core_ext/uri.rb
activesupport-3.0.9.rc5 lib/active_support/core_ext/uri.rb
activesupport-3.0.9.rc4 lib/active_support/core_ext/uri.rb