Commit graph

5887 commits

Author SHA1 Message Date
shugo
275b38937e * lib/net/ftp.rb (mtime): use usec instead of fractions to parse
decimal fractions of a second correctly when the number of digits
  is not 6.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-28 08:43:44 +00:00
shugo
040ae91040 * lib/net/ftp.rb (mtime): parse decimal fractions of a second as
specified in RFC 3659.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-28 07:10:25 +00:00
nobu
b1cfb98e9e ostruct.rb: fix NameError
* lib/ostruct.rb (delete_field): do not raise NameError for
  existing keys.  [Fix GH-1033]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51947 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-26 23:16:37 +00:00
zzak
7fa2155805 * lib/ostruct.rb: Move method definitions for getter/setter to be lazy
Patch by @sferik in [GH-1033]: https://github.com/ruby/ruby/pull/1033

Instead of defining two methods -- a reader and writer -- for each
OpenStruct attribute when it is initialized, define them lazily, the
first time either one is called. This adheres to the principle of "pay for
use": methods that are never accessed are never defined. This optimization
makes initialization an order of magnitude faster for objects with 100
attributes. In the worst-case scenario, where every attribute is accessed,
performance is no worse than it is today.

Benchmark
---------
require 'benchmark/ips'
require 'ostruct'

N = 100
ATTRS = (:aa..:zz).take(N)
HASH = Hash[ATTRS.map { |x| [x, x] }]

def ostruct
  OpenStruct.new(HASH)
end

Benchmark.ips do |x|
  x.report('ostruct') { ostruct }
end

-------------------------------------------------
   before       2.279k (± 8.8%) i/s -     11.395k
   after       24.702k (±12.8%) i/s -    122.600k
-------------------------------------------------


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51944 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-26 16:05:52 +00:00
hsbt
08b54fbd0d * lib/net/http.rb: removed unused variable. It's removed at r13648.
[fix GH-1022] Patch by @nkondratyev

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51934 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-25 01:07:30 +00:00
shugo
5425099a9f * lib/net/ftp.rb (parse_mlsx_entry): parse pathnames including
space correctly.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51856 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-14 10:27:28 +00:00
nobu
07dafa350f Fix typo in racc english documentation [ci skip]
* lib/racc/rdoc/grammar.en.rdoc: [DOC] fix typo, "convertion" to
  "conversion".  [Fix GH-1016]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51854 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-14 02:12:12 +00:00
shugo
ca48cc4ad5 * lib/net/ftp.rb (size, modify, create, type, unique, perm, lang,
media_type, charset): new methods to return standard facts.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51848 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-13 00:47:01 +00:00
svn
520796770e * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51844 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-12 14:12:19 +00:00
shugo
2478c7bc33 * lib/net/ftp.rb (file?, directory?, appendable?, creatable?,
deletable?, enterable?, renamable?, listable?, directory_makable?,
  purgeable?, readable?, writable?): new methods.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51843 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-12 14:09:45 +00:00
shugo
2ec793ab27 * lib/net/ftp.rb (FACT_PARSERS): support system dependent facts
UNIX.mode, UNIX.owner, UNIX.group, UNIX.ctime, and UNIX.atime.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51842 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-12 12:29:32 +00:00
shugo
777c719450 * lib/net/ftp.rb (parse_mlsx_entry, mlst) raise an FTPProtoError
when parsing failed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51840 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-12 09:16:21 +00:00
shugo
57785b16b9 * lib/net/ftp.rb (TIME_PARSER): use "Z" instead of "00:00" to
get UTC time.  Thanks, Wilson Bilkovich.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51837 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-12 09:03:44 +00:00
svn
8b3d351f83 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51836 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-12 08:57:58 +00:00
shugo
8a97ffe094 * lib/net/ftp.rb (mlst, mlsd): support new commands MLST and MLSD
specified in RFC 3659.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51835 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-12 08:57:17 +00:00
shugo
782e2148af * lib/net/ftp.rb (size, mdtm, system): parse responses according to
RFC 959 and 3659, where reply codes must be followed by SP.

* lib/net/ftp.rb (system): remove LF from the return value.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51824 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-11 02:23:31 +00:00
shugo
5c09cb9c1e * lib/net/ftp.rb (getmultiline): refactor.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51818 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-10 06:16:37 +00:00
usa
5e262e5277 * lib/rubygems/stub_specification.rb (Gem::StubSpecification#data):
should not change the value of $. when `require`ing gems.
  this fixed test failures introduced by r51813.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51814 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-09 09:18:47 +00:00
zzak
0a4129cb7a * lib/delegate.rb: Remove backtrace cleaning for delegated methods
This patch was provided by Rafael França and greatly improves
  performance when an exception is raised. [Bug #11461]

  Before:
    Calculating -------------------------------------
             default    86.209k i/100ms
     default raising     2.209k i/100ms
    -------------------------------------------------
             default      1.953M (±11.0%) i/s -      9.655M
     default raising     21.826k (±13.5%) i/s -    108.241k

  After:
    Calculating -------------------------------------
             default    72.211k i/100ms
     default raising    34.288k i/100ms
    -------------------------------------------------
             default      2.013M (±18.7%) i/s -      9.460M
     default raising    623.950k (± 9.7%) i/s -      3.120M

  Benchmark:
    require 'delegate'
    require 'benchmark/ips'

    class Foo
      def name
        'foo'
      end

      def bla
        raise
      end
    end

    class Bar < DelegateClass(Foo)
    end

    bar = Bar.new(Foo.new)

    Benchmark.ips do |b|
      b.report('default') { bar.name }
      b.report('default raising') { bar.bla rescue nil }
    end


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51806 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-09 02:12:52 +00:00
hsbt
59991b6ac5 * lib/rubygems: Update to RubyGems HEAD(fe61e4c112).
this version contains new feature that warn invalid SPDX license
  identifiers. https://github.com/rubygems/rubygems/pull/1249
  and #1032, #1023, #1332, #1328, #1306, #1321, #1324
* test/rubygems: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-08 22:46:43 +00:00
shugo
d5d6b149df * lib/net/ftp.rb (list): fetch all the lines before yielding a block
to allow other commands in the block.  [Feature #11454]
  Patched by Srikanth Shreenivas.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51791 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-08 06:08:20 +00:00
nobu
b38b57cb54 rss.rb: don't substitute, just search
* lib/rss/rss.rb (Time#w3cdtf): don't substitute, just search
  zeros at EOS.  [ruby-core:70667] [Bug #11509]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51767 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-05 03:58:07 +00:00
nobu
88083fa47e rss.rb: fix usec width
* lib/rss/rss.rb (Time#w3cdtf): fix zero-trimmed width of fraction
  digits.  [ruby-core:70667] [Bug #11509]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51766 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-05 02:39:55 +00:00
nobu
2d1b2f0ecf mkmf.rb: remove unnecessary variables
* lib/mkmf.rb (configuration): remove unnecessary variables,
  top_srcdir is defined above, builddir is not used.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-04 03:54:29 +00:00
nobu
50226fb61c mkmf.rb: move r40537
* lib/mkmf.rb (create_makefile): move r40537 from extmk.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-04 03:54:23 +00:00
nobu
16dbb79e88 session.rb: SHA512
* lib/cgi/session.rb (create_new_id): use SHA512 instead of MD5.
  pointed out by SARWAR JAHAN.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-09-03 12:12:14 +00:00
hsbt
94c5f5a77c * lib/rdoc/*: Update rdoc master(cfffed5)
https://github.com/rdoc/rdoc/pull/337
  https://github.com/rdoc/rdoc/pull/367

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-28 07:05:17 +00:00
hsbt
2ded8d0698 * lib/webrick/server.rb: use IO::NULL instead of '/dev/null'
* test/ruby/test_string.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-27 09:05:48 +00:00
nobu
74842faf64 fileutils.rb: fix rename_cannot_overwrite_file
* lib/fileutils.rb (rename_cannot_overwrite_file): File.rename on
  cygwin and mswin/mingw can overwrite the destination file.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-26 16:05:39 +00:00
nobu
b0f2785d6c timeout.rb: freeze a string message
* lib/timeout.rb (Timeout#timeout): freeze a string message to
  reduce string allocations.  [Fix GH-996]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-13 13:49:44 +00:00
ktsj
9cf11b70ca * lib/net/http/response.rb (Net::HTTPResponse::Inflater#finish):
fix a bug that empty gzipped response body causes Zlib::BufError.
  [ruby-core:68846] [Bug #11058]

* test/net/http/test_httpresponse.rb: tests for the above.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-01 08:23:32 +00:00
ktsj
d7bb66df26 * lib/net/http/response.rb (Net::HTTPResponse#inflater):
fix TypeError. An exception object might be nil.
  [ruby-core:68846] [Bug #11058]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-08-01 08:22:50 +00:00
nobu
83cd51e3fe variable.c: Module#deprecate_constant
* variable.c (rb_const_get_0): warn deprecated constant reference.
* variable.c (rb_mod_deprecate_constant): mark constants to be
  warned as deprecated.  [Feature #11398]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-30 04:20:00 +00:00
hsbt
eb0e81fc8f * lib/matrix/eigenvalue_decomposition.rb: refine code style.
[fix GH-959][ci skip] Patch by @bogdanvlviv

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-22 08:50:41 +00:00
nobu
ec1d232f10 fix typo in OptionParser#complete docs [ci skip]
* lib/optparse.rb (complete): [DOC] fix typo.  [Fix GH-973]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51308 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-21 04:36:57 +00:00
normal
3e5c21f7cb remove unnecessary enumerator requires
* lib/rinda/tuplespace.rb: remove enumerator require
* test/pathname/test_pathname.rb: ditto

Related to https://bugs.ruby-lang.org/issues/10902
but not a complete fix.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-17 00:59:02 +00:00
nobu
cb04140542 timeout.rb: suppress a warning
* lib/timeout.rb (Timeout): get rid of an argument prefix warning.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51236 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-14 02:34:53 +00:00
nobu
7d909eb218 webrick/utils.rb: wakeup immediately
* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#register):
  notify the handler thread of new timeout registration.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51235 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-14 02:22:51 +00:00
nobu
8f6fed850a webrick/utils.rb: adaptive sleep
* lib/webrick/utils.rb (WEBrick::Utils::TimeoutHandler#initialize):
  make sleep intervals adaptive than fixed period intervals.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-14 02:21:53 +00:00
nobu
77cde58d39 webrick/server.rb: stop immediately
* lib/webrick/server.rb (WEBrick::GenericServer#start): flush
  shutdown pipe.
* lib/webrick/server.rb (WEBrick::GenericServer#stop): request the
  server to stop immediately by sending data via shutdown pipe.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51231 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-14 02:20:16 +00:00
nobu
f162f2073b httpproxy.rb: fix typos [ci skip]
* lib/webrick/httpproxy.rb (WEBrick::HTTPProxyServer#do_CONNECT):
  fix typos in debugger statements.  [Fix GH-967]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51230 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-13 14:58:12 +00:00
nobu
fa474e56cd timeout.rb: warn deprecated method
* lib/timeout.rb (timeout): warn as deprecated for a long time.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51226 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-13 10:11:38 +00:00
nobu
42f1ff1272 timeout.rb: internal constants
* lib/timeout.rb (Timeout): make internal constants private.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51224 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-13 04:50:20 +00:00
nobu
a2b889f4ab timeout.rb: fix backtrace
* lib/timeout.rb (Timeout#timeout): remove regexp with wrong line
  nuber and fix caller depth.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51216 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-11 03:45:54 +00:00
nobu
0f663b2449 timeout.rb: removed and use Timeout::Error
* lib/timeout.rb (ExitException): removed internal exception class
  and use Timeout::Error instead, as using throw/catch to isolate
  each timeouts now.  [ruby-dev:49179] [Bug #11344]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51213 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-10 13:05:53 +00:00
hsbt
ea67287ac1 * lib/net/http/responses.rb: Added 308 status to CODE_TO_OBJ list.
[fix GH-961] Patch by @billinghamj

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-09 01:19:01 +00:00
nobu
6c3d366bbc resolver.rb: fix fd leaks
* lib/rubygems/resolver.rb (resolve): close UI output unless
  debugging.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51194 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-08 06:09:09 +00:00
hsbt
601c10e6ec * lib/csv.rb: typo fix [ci skip][fix GH-958] Patch by @henrik
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51191 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-07 22:43:11 +00:00
nobu
9b37b750bd Fix typo in optparse library [ci skip] [Fix GH-956]
* lib/optparse.rb: [DOC] Fix typo.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51152 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-05 14:54:12 +00:00
nobu
5c19a5fa24 test_case.rb: fix multiple load
* lib/rubygems/test_case.rb (teardown): do not delete features
  loaded from the original load paths, the same libraries should
  be loaded again when the same features are required.
  [ruby-dev:49031] [Bug #11222]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51138 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2015-07-04 01:43:01 +00:00