1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

64 commits

Author SHA1 Message Date
naruse
8c7310e713 * lib/uri/rfc2396_parser.rb (initialize_pattern):
URI::Generic.build should accept port as a string.
  pattern[:PORT] is not defined for long.
  by Dave Slutzkin <daveslutzkin@fastmail.fm>
  https://github.com/ruby/ruby/pull/804 fix GH-804

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-05-19 02:34:47 +00:00
duerst
e3c4c7e13b * lib/uri/mailto.rb: raising URI::InvalidComponentError instead
of failing with undefined method `split' for nil:NilClass for
  mailto: URIs without opaque part. [Bug ]
* test/uri/testuri.rb: Test for above

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@49254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-01-14 09:06:13 +00:00
naruse
30fef86b38 * lib/uri/generic.rb (URI::Generic#query=): don't escape [\]^
on both rfc2396 and rfc3986. [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-23 13:11:43 +00:00
naruse
e1606f920b * lib/uri/generic.rb (URI::Generic.build):
use hostname= to detect and wrap IPv6 hosts.
  Build is accepting URI components and users may not expect
  that a host component needs to be wrapped with square brackets
  since it's not providing a URI.
  Note: initialize with arg_check => true does not wrap IPv6 hosts.
  by Joe Rafaniello <jrafanie@redhat.com>
  https://github.com/ruby/ruby/pull/765 fix GH-765

* test/uri/test_generic.rb: Add more tests

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48666 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-01 17:36:54 +00:00
akr
fb2008a73a * test/lib/envutil.rb: Moved from test/ruby/.
* test/lib/find_executable.rb: Ditto.

* test/lib/memory_status.rb: Ditto.

* test/lib/test/unit.rb: require envutil.

* test/: Don't require envutil in test files.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-13 16:05:37 +00:00
naruse
21ab98a997 * lib/uri/rfc3986_parser.rb (URI::RFC3986_Parser::RFC3986_URI):
allow '[' and ']' for URI input (and escape). [Bug ]

* lib/uri/generic.rb (URI#query=): escape '[', '\', and ']'.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48244 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-11-03 00:33:47 +00:00
glass
a4645e5612 * lib/uri/rfc3986_parser.rb: raise URI::InvalidURIError when
uri doesn't respond to #to_str. [ruby-core:64453] [Bug ]

* test/uri/test_parser.rb: test for above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47721 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-27 03:13:22 +00:00
naruse
e37aab94da * lib/uri/rfc3986_parser.rb: specify a regexp for :OPAQUE; generic.rb
assumes it is present, and will refuse all values otherwise.
  by Matthew Draper <matthew@trebex.net>
  https://github.com/ruby/ruby/pull/718 fix GH-718

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-09-17 14:15:03 +00:00
nobu
682f3a7881 uri/common.rb: use negative look-ahead
* lib/uri/common.rb (URI.decode_www_form_component): use negative
  look-ahead instead of nested repeat operators, to get rid of
  backtrack explosion.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-25 07:29:50 +00:00
naruse
7af7388202 * lib/uri/generic.rb (URI::Generic#query=): remove validation, just
escape. [Feature ]

* lib/uri/generic.rb (URI::Generic#fragment=): ditto.

* lib/uri/generic.rb (URI::Generic#check_query): removed.

* lib/uri/generic.rb (URI::Generic#set_query): ditto.

* lib/uri/generic.rb (URI::Generic#check_fragment): ditto.

* lib/uri/generic.rb (URI::Generic#set_fragment): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-07-03 18:00:08 +00:00
naruse
e63ab5d3ad * lib/uri/mailto.rb: update to latest specs, RFC 6068 and HTML5.
* lib/uri/mailto.rb (HEADER_PATTERN): removed.

* lib/uri/mailto.rb (HEADER_REGEXP): use RFC 6068 hfields.

* lib/uri/mailto.rb (EMAIL_REGEXP): use HTML5 email regexp.

* lib/uri/mailto.rb (URI::MailTo.build): support multiple to addresses.

* lib/uri/mailto.rb (URI::MailTo#initialize): Support multiple to
  addresses. Don't check with regexp, only split.

* lib/uri/mailto.rb (URI::MailTo#check_to): verify by matching
  URI path-rootless and HTML5 email regexp with unescaped one.

* lib/uri/mailto.rb (URI::MailTo#check_headers): verify only by
  HEADER_REGEXP.

* lib/uri/mailto.rb (URI::MailTo#set_headers): don't check by
  HEADER_REGEXP, only split it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-27 19:26:43 +00:00
naruse
36a043a93a suppress warnings: URI.regexp is obsolete
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46572 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-27 06:25:44 +00:00
naruse
a054854324 Revert "* lib/uri/mailto.rb: support RFC6068."
to fix mailto URI syntax

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-24 02:58:45 +00:00
nobu
195bee47b7 * test/uri/test_common.rb: use require_relative for parallel test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-23 21:57:23 +00:00
naruse
a672789739 * lib/uri/mailto.rb: support RFC6068.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-23 20:01:27 +00:00
naruse
e02eb253e7 * lib/uri/generic.rb (check_port): allow strings for port= as
described in rdoc.

* lib/uri/rfc3986_parser.rb (regexp): implementation detail of above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46504 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-23 03:18:51 +00:00
naruse
66aba8cca2 suppress warnings of URI.extract
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46503 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-23 03:18:17 +00:00
naruse
bb83f32dc3 support RFC3986 [Feature ]
* lib/uri/common.rb (URI::REGEXP): move to lib/uri/rfc2396_parser.rb.

* lib/uri/common.rb (URI::Parser): ditto.

* lib/uri/common.rb (URI.split): use RFC3986_Parser.

* lib/uri/common.rb (URI.parse): ditto.

* lib/uri/common.rb (URI.join): ditto.

* lib/uri/common.rb (URI.extract): deprecated.

* lib/uri/common.rb (URI.regexp): ditto.

* lib/uri/rfc2396_parser.rb: added.

* lib/uri/rfc3986_parser.rb: added.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-22 00:22:19 +00:00
hsbt
e5af180eb0 * test/uri/test_generic.rb: fix wrong arguments for test case.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-16 09:23:02 +00:00
knu
d3edb4a85e * test/uri/test_generic.rb (URI#test_merge): Test uri + URI(path)
in addition to uri + path.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-21 07:26:53 +00:00
naruse
80d8216415 * lib/uri/generic.rb (URI::Generic.find_proxy): return nil if
http_proxy environment variable is empty string.
  [ruby-core:57140] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42930 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-09-13 04:57:25 +00:00
sorah
b30a172385 * lib/uri/common.rb (URI.decode_www_form_component):
Don't raise error when str includes multibyte characters.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 09:00:18 +00:00
naruse
6398f79853 * lib/uri/generic.rb (find_proxy): raise BadURIError if the URI is
a relative URI. [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-24 10:52:15 +00:00
naruse
53fdb30e7f * lib/uri/common.rb (URI.decode_www_form): scrub string if decoded
bytes are invalid for the encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40820 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-05-18 18:58:13 +00:00
naruse
4a50d447d9 * lib/uri/common.rb (URI.decode_www_form): follow current URL Standard.
It gets encoding argument to specify the character encoding.
  It now allows loose percent encoded strings, but denies ;-separator.
  [ruby-core:53475] [Bug ]

* lib/uri/common.rb (URI.decode_www_form): follow current URL Standard.
  It gets encoding argument to convert before percent encode.
  Now UTF-16 strings aren't converted to UTF-8 before percent encode
  by default.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@40460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-04-25 05:27:41 +00:00
naruse
37cc18d54b * lib/uri/ftp.rb (URI::FTP#initialize): raise InvalidURIError if "//"
is not present [ruby-core:47344] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36852 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-08-30 00:22:11 +00:00
kazu
216b833003 * test/uri/test_generic.rb (URI#test_find_proxy): add tests with empty *_proxy env variables.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-22 16:55:55 +00:00
kazu
89a030795a fix failures
* test/uri/test_generic.rb (URI#with_env): unset proxy related env
  variables.  [Bug ]

* test/uri/test_generic.rb (URI#test_find_proxy): fix failures
  when proxy related env variables already set.  [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-22 16:50:49 +00:00
drbrain
9416becda4 * lib/net/http.rb: Net::HTTP now automatically detects and uses
proxies from the environment.  A proxy may also be specified as
  before.

  Net::HTTP::Proxy still creates anonymous classes, but these classes
  are only used to store configuration information.  When an HTTP
  instance is created the configuration is now copied.

  Additionally, Net::HTTP::ProxyDelta is no longer used by Net::HTTP

  [Feature ]
* lib/open-uri.rb:  Moved URI::Generic#find_proxy to uri/generic.
* lib/uri/generic.rb:  Imported find_proxy from open-uri.
* test/open-uri/test_open-uri.rb:  Moved proxy-discovery tests to URI.
* test/uri/test_generic.rb:  Imported proxy-discovery tests from
  open-uri.
* test/net/http/test_http.rb:  Added tests for proxy behavior.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@36476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-07-20 01:56:21 +00:00
naruse
9381cd1184 * lib/uri/generic.rb (URI::Generic.build): duplicate args before adding
new items. (don't change arguments)

* lib/uri/generic.rb (URI::Generic.build): use URI::Generic::COMPONENT
  if this method is called from URI::Generic.

* lib/uri/generic.rb (URI::Generic.build2): escape only if the item is
  a String.

* lib/uri/generic.rb (URI::Generic.build2): use DEFAULT_PARSER because
  it doesn't have parser method. [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-05-18 07:32:08 +00:00
drbrain
655738577f * lib/uri/generic.rb (module URI): URI now downcases the scheme to
follow RFC 2396 section 3.1.  [ruby-trunk - Feature ]
* test/uri/test_generic.rb (class URI):  Test for above


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-04-11 22:11:07 +00:00
naruse
44d7233201 * lib/uri/mailto.rb (URI::MailTo.build): follow Array#to_s change of
Ruby 1.9; use Array#join. [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34360 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-23 08:12:52 +00:00
naruse
87fe448091 * lib/uri/common.rb (URI::Parser#initialize_regexp):
use \A \z instead of ^ $. [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@34214 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2012-01-05 02:57:21 +00:00
naruse
a83f125c31 * lib/net/http.rb (URI::HTTP#request_uri): return nil when the uri
is path-rootless form. Bug 

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31907 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-03 00:32:25 +00:00
knu
733d4294fc Add some more tests for the previous fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-15 06:21:56 +00:00
knu
835693dac5 * lib/uri/generic.rb (#route_from_path): Fix a bug where
URI('http://h/b/').route_to('http://h/b') wrongly returned './'
  (should be '../b'). [Bug ]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-04-15 06:13:08 +00:00
kazu
9600d9693c * test/uri/test_common.rb (TestCommon#test_encode_www_form): add
tests for r30015.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30093 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-06 10:01:42 +00:00
naruse
68b18291ac * lib/uri/common.rb (URI::Parser#initialize_pattern):
refix for restrict the pattern.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@30091 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-12-06 01:41:10 +00:00
nobu
839ee60687 * lib/uri/common.rb (URI::WFKV_): get rid of backtrack explosion
by nested repeat operators.  [ruby-core:33464]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-29 13:55:27 +00:00
akr
5fd45a4b79 * lib/uri/generic.rb (URI::Generic#hostname): new method.
(URI::Generic#hostname=): ditto.

* lib/open-uri.rb: use URI#hostname

* lib/net/http.rb: ditto.

  [ruby-core:32056]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-10-06 03:30:49 +00:00
naruse
c4087bcb12 * lib/uri/common.rb (URI.encode_www_form): change treatment of
undefined value in given array as latest internet draft for
  application/www-form-urlencoded.
  http://tools.ietf.org/html/draft-hoehrmann-urlencoded-01

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29376 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-09-30 00:48:01 +00:00
naruse
9e30f60dbf * lib/uri/common.rb (decode_www_form_component): validate.
[ruby-dev:40938]

* lib/uri/common.rb (decode_www_form): allow empty string.

* lib/uri/common.rb: fix nodoc for constant. [ruby-dev:40949]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-10 22:05:02 +00:00
naruse
8a3c3b9c95 * lib/uri/common.rb (decode_www_form): don't ignore leading '?'.
[ruby-dev:40938]

* lib/uri/common.rb (decode_www_form): check whether argument is
  valid application/x-www-form-urlencoded data.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27270 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-09 11:58:20 +00:00
naruse
83c2f60b88 * lib/uri/common.rb (URI.encode_www_form_component):
convert strings of HTML5 ASCII incompatible encoding
  to UTF-8.

* lib/uri/common.rb (URI.encode_www_form_component):
  "\x83\x41" of Shift_JIS should be encoded as "%83A".
  This follows real implementations.

* lib/uri/common.rb (URI.decode_www_form_component):
  use given encoding for force_encoding. [ruby-dev:40721]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-21 12:36:14 +00:00
naruse
f626a17d8c * lib/uri/common.rb (URI#{en,de}code_www_form_component):
renamed from URI#{en,de}code_www_component. [ruby-dev:40672]

* lib/uri/common.rb (URI#encode_www_form_component): %-encoded
  element should have always two hex.

* lib/uri/common.rb (URI#encode_www_form_component):
  better treatment for ASCII incompatible encodings and
  encodings whose lead byte may use 7bit.

* lib/uri/common.rb (URI#decode_www_form_component): add %20.

* lib/uri/common.rb (URI#decode_www_form_component): add
  result's encoding as 2nd argument.

* lib/uri/common.rb (URI#decode_www_form): added.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-17 15:35:38 +00:00
naruse
8212cdf176 * lib/uri/common.rb (URI.encode_www_form): new method to
generate URL-encoded form data. [ruby-dev:39246]

* lib/uri/common.rb (URI.encode_www_component,
  URI.decode_www_component): new method for encode/decode
  a name/value of HTML form.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26888 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-03-12 09:00:48 +00:00
akr
37679ee584 supress warnings.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-25 23:12:50 +00:00
nobu
287a34ae0d * {ext,lib,test}/**/*.rb: removed trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@22784 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-03-06 03:56:38 +00:00
nobu
00b4a3f9c4 * test: assert_raises has been deprecated since a long time ago.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-24 17:44:39 +00:00
akira
3da03397ce * lib/uri/common.rb (URI::Parser): new class.
* lib/uri/mailto.rb, lib/uri/generic.rb: follow the above change.

	* test/uri/test_parser.rb: added tests for URI::Parser.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-10 09:34:49 +00:00