Commit graph

61 commits

Author SHA1 Message Date
normal
aa93c62e3c lib/uri: performance improvements [misc #10628]
* lib/uri/generic.rb (split_userinfo): fstring for 1-byte split
  (set_port): reduce bytecode size
  (check_path): reduce garbage via opt_str_freeze
  (query=): ditto
  (fragment=): ditto
  [misc #10628]
* lib/uri/rfc3986_parser.rb (regexp): cache as attr
  (initialize): setup and freeze regexp attr once
  (split): reduce bytecode size, use opt_str_freeze
  (parse): minor bytecode and garbage reduction
  (default_regexp): rename for initialize

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48980 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-12-24 23:50:37 +00:00
naruse
30fef86b38 * lib/uri/generic.rb (URI::Generic#query=): don't escape [\]^
on both rfc2396 and rfc3986. [Bug #10619]

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
naruse
21ab98a997 * lib/uri/rfc3986_parser.rb (URI::RFC3986_Parser::RFC3986_URI):
allow '[' and ']' for URI input (and escape). [Bug #10402]

* 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
naruse
6041af45a3 * lib/uri/generic.rb (URI#inspect): remove Object id.
URI is considered that it doesn't require id.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-07 22:48:06 +00:00
naruse
b6ecbc7055 remove path_query
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-05 19:09:08 +00:00
naruse
d7b5ef028b * lib/uri/generic.rb (URI::Generic#normalize!): use String#empty?
* lib/uri/generic.rb (URI::Generic#path_query): optimized.

* lib/uri/generic.rb (URI::Generic#to_s): optimized.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47073 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-08-05 19:09:05 +00:00
hsbt
4b8f0e7637 * lib/shell/command-processor.rb: remove unused variable.
* lib/shell/system-command.rb: ditto.
* lib/tmpdir.rb: ditto.
* lib/uri/generic.rb: ditto.

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

* 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
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
c7a7e60409 remove registry
'registry' is not used and RFC3986 doesn't use it.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-06-22 00:24:11 +00:00
a_matsuda
54fdf15ad4 * lib/uri/generic.rb: [DOC] Fix typo
s/andn/and/
[ci skip]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-12-21 07:41:13 +00:00
a_matsuda
214aacff74 * lib/uri/generic.rb: [DOC] Fix typo
s/arguement/argument/

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43918 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-29 14:43:01 +00:00
zzak
217d37a64a * lib/uri/common.rb: [DOC] typo fixes by @vipulnsward [Fixes GH-456]
https://github.com/ruby/ruby/pull/456
* lib/uri/generic.rb: [DOC] ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-11-25 10:49:29 +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 #8898]

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
naruse
6398f79853 * lib/uri/generic.rb (find_proxy): raise BadURIError if the URI is
a relative URI. [Bug #8645]

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
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 #6546]
* 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 #6420]

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 #4551]
* 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
marcandre
c2dfaa7d40 * lib/uri/common.rb (module): Remove optional parser argument to Kernel#URI
[ruby-core:38061]

* lib/uri/generic.rb (module): ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-15 21:28:10 +00:00
nobu
d371e3583e * lib: revert r31635-r31638 and untabify with expand(1).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31641 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-19 00:07:25 +00:00
drbrain
7bbf2f3085 * lib: Convert tabs to spaces for ruby files per
http://redmine.ruby-lang.org/projects/ruby/wiki/DeveloperHowto#coding-style
	  Patch by Steve Klabnik [Ruby 1.9 - Bug #4730]
	  Patch by Jason Dew [Ruby 1.9 - Feature #4718]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31635 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-18 21:19:18 +00:00
nobu
3a47cf3395 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31573 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-15 11:55:52 +00:00
drbrain
10219ff621 * lib/uri.rb: Add toplevel documentation. Patch by Vincent Batts.
[Ruby 1.9 - Bug #4690]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-13 20:03:21 +00:00
drbrain
e2b3183fc2 * re.c (Init_Regexp): Document option constants. Patch by Vincent
Batts.  [Ruby 1.9 - Bug #4677]
	* lib/uri/common.rb (module URI):  Documentation for URI.  Patch by
	  Vincent Batts.  [Ruby 1.9- Bug #4677]
	* lib/uri/ftp.rb (module URI):  ditto
	* lib/uri/generic.rb (module URI):  ditto
	* lib/uri/http.rb (module URI):  ditto
	* lib/uri/https.rb (module URI):  ditto
	* lib/uri/ldap.rb (module URI):  ditto
	* lib/uri/ldaps.rb (module URI):  ditto
	* lib/uri/mailto.rb (module URI):  ditto
	* process.c (Init_process):  Document Process constants.  Patch by
	  Vincent Batts.  [Ruby 1.9- Bug #4677]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@31536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-05-12 20:39:11 +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 #4476]



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
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
marcandre
5647b2cd88 * lib/uri/common.rb: Have URI#route_to, URI#route_from accept
string-like arguments [ruby-core:30961]

* lib/uri/generic.rb: ditto for URI.join, URI#merge

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@28699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-07-21 04:38:40 +00:00
mame
8588e7631e * lib/uri/ftp.rb (URI::FTP#set_path): added to correct handling of
special case where path of ftp is relative.  This converts relative
  path to absolute one, because external representation of ftp path is
  relative and internal representation is absolute.  [ruby-core:24077]

* lib/uri/ftp.rb (URI::FTP#initialize): converts absolute to relative.

* lib/uri/generic.rb (URI::Generic#check_path): allow relative path
  when scheme is ftp.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@27350 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-04-15 13:41:19 +00:00
naruse
17ff65205c * lib/uri/generic.rb (URI#normalize!): normalize case of
scheme. [ruby-core:27309]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26227 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-01-01 16:00:37 +00:00
marcandre
dbb14e218a * lib/uri/generic.rb (eql?): Check the class of the compared object.
Based on a patch by Peter McLain [ruby-core:27019]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@26168 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-12-24 07:33:24 +00:00
akr
0fd221bd78 * lib/uri: don't set @parser if it is DEFAULT_PARSER for marshaling
URI objects between Ruby 1.8 and Ruby 1.9.
  [ruby-dev:38377]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@23598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-05-27 17:48:54 +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
matz
8bc28d82b4 * lib/uri/generic.rb (URI::Generic#check_path): REL_PATH should a
symbol.  [ruby-core:19805]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@20222 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-11 17:39:52 +00:00
drbrain
563b654437 Fix ruby -w warnings for mismatched indentation discovered by rdoc
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 18:16:08 +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
naruse
a8739621cf * lib/uri/generic.rb: revert r15442. 2nd argument of String#sub parse
escapes. [ruby-dev:33726]

* bootstraptest/test_method.rb enc/depend instruby.rb lib/mkmf.rb
  mkconfig.rb: revert r15443. ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-13 07:26:52 +00:00
naruse
40d8d38909 * ext/json/lib/json/pure/generator.rb,
ext/json/lib/json/pure/parser.rb, ext/openssl/lib/openssl/x509.rb,
ext/win32ole/sample/olegen.rb, lib/date/format.rb, lib/irb/context.rb,
lib/irb/workspace.rb, lib/net/http.rb, lib/net/imap.rb,
lib/rdoc/generator.rb, lib/rdoc/markup/to_html.rb,
lib/rdoc/markup/to_latex.rb, lib/rdoc/parsers/parse_c.rb,
lib/rdoc/ri/formatter.rb, lib/rexml/parsers/baseparser.rb,
lib/rexml/quickpath.rb, lib/rexml/text.rb, lib/rss/parser.rb,
lib/uri/common.rb, lib/uri/generic.rb, lib/webrick/httpresponse.rb,
lib/webrick/httpservlet/filehandler.rb, lib/yaml/baseemitter.rb,
lib/yaml/encoding.rb: performance tuning arround String#gsub.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-12 06:18:06 +00:00
nobu
8e7dd55a6e * lib/uri/generic.rb (URI::Generic::inspect): use Kernel#to_s instead
object_id with printf.  [ruby-dev:33347]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-24 10:36:24 +00:00
nobu
12b1e59f2e * generic.rb (URI::Generic::merge_path): behave as RFC 3986.
[ruby-talk:252052]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12860 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-01 03:40:08 +00:00
knu
ea51ff20ac * lib/uri/generic.rb (URI::Generic::userinfo): Considering how
`scheme://user:@...', `scheme://:password@...' and
  `scheme://:@...' are parsed, an empty user name or password
  should be allowed and represented as it is.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-15 07:43:37 +00:00
matz
bcbdd1f660 * lib/uri/generic.rb (URI::Generic::userinfo): should support
empty password.  [ruby-core:10290]

* lib/uri/generic.rb (URI::Generic::set_password): password can be
  cleared by nil.  [ruby-core:10290]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-13 18:21:06 +00:00
ryan
030e887fed Lovely RDOC patches from mathew (metaATpoboxDOTcom) on URI/* and getoptlong.rb
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9028 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-24 05:08:00 +00:00
akira
b1020bf03e * lib/uri/common.rb, lib/uri/generic.rb: fixed typo in documents and
replaced some existent domain name with "example.com".


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-24 04:18:16 +00:00
akira
c36a0f0ec0 * lib/uri/generic.rb (split_userinfo): should split ":pass" into ""
and "pass".  [ruby-dev:25667]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8020 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-23 06:08:29 +00:00
akira
f461a6b8e5 * lib/uri/generic.rb (URI::Generic#merge_path):
"URI('http://www.example.com/foo/..') + './'" should return
  "URI('http://www.example.com/')".  [ruby-list:39838]
  "URI('http://www.example.com/') + './foo/bar/..'" should return
  "URI('http://www.example.com/foo/')".  [ruby-list:39844]

* test/uri/test_generic.rb (TestGeneric#test_merge): added tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6620 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-07-13 10:50:26 +00:00
akira
f2b75020ba * lib/uri/generic.rb (URI::Generic::merge,
URI::Generic::route_from): accepts non-hierarchical URI.
  [ruby-dev:23631]

* test/uri/test_generic.rb (TestGeneric::test_route,
  TestGeneric::test_merge): added tests for above changes.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-06-09 07:15:56 +00:00
gsinclair
42ad5216ec * lib/uri.rb: Documented (thanks Dmitry V. Sabanin).
* lib/uri/common.rb: Ditto.
 * lib/uri/ftp.rb: Ditto.
 * lib/uri/generic.rb: Ditto.
 * lib/uri/http.rb: Ditto.
 * lib/uri/https.rb: Ditto.
 * lib/uri/ldap.rb: Ditto.
 * lib/uri/mailto.rb: Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@6015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-03-24 11:53:31 +00:00
akira
4bb0fd231e * lib/uri/generic.rb (URI::Generic::check_userinfo,
URI::Generic::check_user, URI::Generic::check_password): tests
  conflicts/depends with other components closely.

* test/uri/test_generic.rb (TestGeneric::test_set_component):
  added tets.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5256 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-23 05:17:00 +00:00
akira
6bcf78e40d * lib/uri/generic.rb (URI::Generic::check_opaque): fixed typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5253 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2003-12-22 14:01:07 +00:00