Current Path: > > opt > > > alt > ruby22 > lib64 > ruby > 2.2.0
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
cgi | Directory | - | - | |
digest | Directory | - | - | |
drb | Directory | - | - | |
fiddle | Directory | - | - | |
io | Directory | - | - | |
irb | Directory | - | - | |
json | Directory | - | - | |
matrix | Directory | - | - | |
net | Directory | - | - | |
openssl | Directory | - | - | |
optparse | Directory | - | - | |
psych | Directory | - | - | |
racc | Directory | - | - | |
rake | Directory | - | - | |
rbconfig | Directory | - | - | |
rdoc | Directory | - | - | |
rexml | Directory | - | - | |
rinda | Directory | - | - | |
ripper | Directory | - | - | |
rss | Directory | - | - | |
rubygems | Directory | - | - | |
shell | Directory | - | - | |
syslog | Directory | - | - | |
unicode_normalize | Directory | - | - | |
uri | Directory | - | - | |
webrick | Directory | - | - | |
x86_64-linux | Directory | - | - | |
xmlrpc | Directory | - | - | |
yaml | Directory | - | - | |
English.rb | File | 6576 bytes | May 31 2014 19:54:55. | |
abbrev.rb | File | 3543 bytes | July 11 2014 08:16:05. | |
base64.rb | File | 2694 bytes | May 19 2013 03:10:21. | |
benchmark.rb | File | 18151 bytes | September 11 2014 08:09:07. | |
cgi.rb | File | 10009 bytes | August 07 2014 06:14:29. | |
cmath.rb | File | 9564 bytes | July 03 2015 19:31:05. | |
csv.rb | File | 84429 bytes | November 04 2014 03:21:53. | |
date.rb | File | 980 bytes | July 26 2023 14:31:54. | |
debug.rb | File | 29775 bytes | December 14 2013 14:48:36. | |
delegate.rb | File | 10962 bytes | July 26 2014 17:11:56. | |
digest.rb | File | 2855 bytes | July 26 2023 14:31:54. | |
drb.rb | File | 19 bytes | October 02 2009 10:45:39. | |
e2mmap.rb | File | 3865 bytes | August 24 2014 07:16:25. | |
erb.rb | File | 26986 bytes | December 12 2014 10:48:57. | |
expect.rb | File | 2195 bytes | July 26 2023 14:31:54. | |
fiddle.rb | File | 1692 bytes | July 26 2023 14:31:54. | |
fileutils.rb | File | 48604 bytes | March 25 2017 18:24:28. | |
find.rb | File | 2542 bytes | October 13 2014 07:34:23. | |
forwardable.rb | File | 8415 bytes | March 25 2017 14:43:16. | |
getoptlong.rb | File | 15750 bytes | May 19 2013 14:50:47. | |
ipaddr.rb | File | 17466 bytes | November 24 2015 15:49:21. | |
irb.rb | File | 20508 bytes | March 28 2016 15:07:06. | |
json.rb | File | 1779 bytes | July 26 2023 14:31:54. | |
kconv.rb | File | 5875 bytes | July 26 2023 14:31:54. | |
logger.rb | File | 20819 bytes | October 27 2016 07:47:14. | |
mathn.rb | File | 3936 bytes | August 26 2014 12:07:57. | |
matrix.rb | File | 54411 bytes | November 27 2014 01:03:46. | |
mkmf.rb | File | 84575 bytes | July 26 2023 14:29:02. | |
monitor.rb | File | 7101 bytes | November 16 2012 16:55:29. | |
mutex_m.rb | File | 2050 bytes | February 20 2013 02:51:51. | |
observer.rb | File | 5941 bytes | August 27 2014 12:21:41. | |
open-uri.rb | File | 25175 bytes | December 24 2014 09:11:05. | |
open3.rb | File | 21041 bytes | November 04 2014 03:09:28. | |
openssl.rb | File | 528 bytes | July 26 2023 14:31:54. | |
optionparser.rb | File | 28 bytes | May 26 2014 03:25:38. | |
optparse.rb | File | 53295 bytes | March 25 2017 18:28:27. | |
ostruct.rb | File | 8868 bytes | March 25 2017 18:35:09. | |
pathname.rb | File | 15949 bytes | July 26 2023 14:31:54. | |
pp.rb | File | 14501 bytes | December 05 2014 19:35:19. | |
prettyprint.rb | File | 16232 bytes | August 22 2014 02:38:59. | |
prime.rb | File | 13423 bytes | December 10 2014 20:38:13. | |
profile.rb | File | 205 bytes | October 02 2009 10:45:39. | |
profiler.rb | File | 4617 bytes | May 19 2013 23:04:36. | |
pstore.rb | File | 14895 bytes | July 23 2014 19:31:18. | |
psych.rb | File | 15235 bytes | July 26 2023 14:31:54. | |
rake.rb | File | 2282 bytes | December 06 2014 00:22:51. | |
rdoc.rb | File | 5080 bytes | December 07 2014 01:22:37. | |
resolv-replace.rb | File | 1774 bytes | March 11 2013 13:47:04. | |
resolv.rb | File | 73785 bytes | May 19 2015 17:05:35. | |
ripper.rb | File | 2586 bytes | July 26 2023 14:31:54. | |
rss.rb | File | 2909 bytes | May 11 2011 10:22:16. | |
rubygems.rb | File | 32615 bytes | February 16 2018 16:27:56. | |
scanf.rb | File | 24108 bytes | February 15 2014 01:33:03. | |
securerandom.rb | File | 9420 bytes | April 22 2016 09:17:57. | |
set.rb | File | 19605 bytes | August 06 2014 11:28:21. | |
shell.rb | File | 11575 bytes | August 24 2014 07:16:25. | |
shellwords.rb | File | 6098 bytes | September 05 2014 10:00:46. | |
singleton.rb | File | 4114 bytes | May 18 2011 14:09:38. | |
socket.rb | File | 26210 bytes | July 26 2023 14:31:54. | |
sync.rb | File | 7429 bytes | May 19 2013 03:10:21. | |
tempfile.rb | File | 11380 bytes | September 21 2014 01:40:21. | |
thwait.rb | File | 3392 bytes | August 27 2014 12:10:21. | |
time.rb | File | 22786 bytes | August 03 2015 19:11:41. | |
timeout.rb | File | 3725 bytes | August 10 2015 17:08:37. | |
tmpdir.rb | File | 4231 bytes | March 28 2018 14:34:14. | |
tracer.rb | File | 6556 bytes | July 18 2013 13:50:32. | |
tsort.rb | File | 14611 bytes | November 26 2014 10:46:50. | |
ubygems.rb | File | 268 bytes | October 02 2009 10:45:39. | |
un.rb | File | 9086 bytes | July 05 2013 13:43:25. | |
unicode_normalize.rb | File | 3234 bytes | January 16 2015 02:06:34. | |
uri.rb | File | 3143 bytes | November 03 2014 00:33:44. | |
weakref.rb | File | 2985 bytes | July 26 2014 17:12:11. | |
webrick.rb | File | 6850 bytes | October 05 2013 23:39:32. | |
xmlrpc.rb | File | 8692 bytes | December 12 2013 03:09:19. | |
yaml.rb | File | 1741 bytes | June 26 2014 02:52:46. |
# # tempfile - manipulates temporary files # # $Id: tempfile.rb 47656 2014-09-21 01:40:21Z nobu $ # require 'delegate' require 'tmpdir' # A utility class for managing temporary files. When you create a Tempfile # object, it will create a temporary file with a unique filename. A Tempfile # objects behaves just like a File object, and you can perform all the usual # file operations on it: reading data, writing data, changing its permissions, # etc. So although this class does not explicitly document all instance methods # supported by File, you can in fact call any File instance method on a # Tempfile object. # # == Synopsis # # require 'tempfile' # # file = Tempfile.new('foo') # file.path # => A unique filename in the OS's temp directory, # # e.g.: "/tmp/foo.24722.0" # # This filename contains 'foo' in its basename. # file.write("hello world") # file.rewind # file.read # => "hello world" # file.close # file.unlink # deletes the temp file # # == Good practices # # === Explicit close # # When a Tempfile object is garbage collected, or when the Ruby interpreter # exits, its associated temporary file is automatically deleted. This means # that's it's unnecessary to explicitly delete a Tempfile after use, though # it's good practice to do so: not explicitly deleting unused Tempfiles can # potentially leave behind large amounts of tempfiles on the filesystem # until they're garbage collected. The existence of these temp files can make # it harder to determine a new Tempfile filename. # # Therefore, one should always call #unlink or close in an ensure block, like # this: # # file = Tempfile.new('foo') # begin # ...do something with file... # ensure # file.close # file.unlink # deletes the temp file # end # # === Unlink after creation # # On POSIX systems, it's possible to unlink a file right after creating it, # and before closing it. This removes the filesystem entry without closing # the file handle, so it ensures that only the processes that already had # the file handle open can access the file's contents. It's strongly # recommended that you do this if you do not want any other processes to # be able to read from or write to the Tempfile, and you do not need to # know the Tempfile's filename either. # # For example, a practical use case for unlink-after-creation would be this: # you need a large byte buffer that's too large to comfortably fit in RAM, # e.g. when you're writing a web server and you want to buffer the client's # file upload data. # # Please refer to #unlink for more information and a code example. # # == Minor notes # # Tempfile's filename picking method is both thread-safe and inter-process-safe: # it guarantees that no other threads or processes will pick the same filename. # # Tempfile itself however may not be entirely thread-safe. If you access the # same Tempfile object from multiple threads then you should protect it with a # mutex. class Tempfile < DelegateClass(File) # call-seq: # new(basename, [tmpdir = Dir.tmpdir], [options]) # # Creates a temporary file with permissions 0600 (= only readable and # writable by the owner) and opens it with mode "w+". # # The +basename+ parameter is used to determine the name of the # temporary file. You can either pass a String or an Array with # 2 String elements. In the former form, the temporary file's base # name will begin with the given string. In the latter form, # the temporary file's base name will begin with the array's first # element, and end with the second element. For example: # # file = Tempfile.new('hello') # file.path # => something like: "/tmp/hello2843-8392-92849382--0" # # # Use the Array form to enforce an extension in the filename: # file = Tempfile.new(['hello', '.jpg']) # file.path # => something like: "/tmp/hello2843-8392-92849382--0.jpg" # # The temporary file will be placed in the directory as specified # by the +tmpdir+ parameter. By default, this is +Dir.tmpdir+. # When $SAFE > 0 and the given +tmpdir+ is tainted, it uses # '/tmp' as the temporary directory. Please note that ENV values # are tainted by default, and +Dir.tmpdir+'s return value might # come from environment variables (e.g. <tt>$TMPDIR</tt>). # # file = Tempfile.new('hello', '/home/aisaka') # file.path # => something like: "/home/aisaka/hello2843-8392-92849382--0" # # You can also pass an options hash. Under the hood, Tempfile creates # the temporary file using +File.open+. These options will be passed to # +File.open+. This is mostly useful for specifying encoding # options, e.g.: # # Tempfile.new('hello', '/home/aisaka', :encoding => 'ascii-8bit') # # # You can also omit the 'tmpdir' parameter: # Tempfile.new('hello', :encoding => 'ascii-8bit') # # === Exceptions # # If Tempfile.new cannot find a unique filename within a limited # number of tries, then it will raise an exception. def initialize(basename, tmpdir=nil, mode: 0, **options) if block_given? warn "Tempfile.new doesn't call the given block." end @data = [] @clean_proc = Remover.new(@data) ObjectSpace.define_finalizer(self, @clean_proc) ::Dir::Tmpname.create(basename, tmpdir, options) do |tmpname, n, opts| mode |= File::RDWR|File::CREAT|File::EXCL opts[:perm] = 0600 @data[1] = @tmpfile = File.open(tmpname, mode, opts) @data[0] = @tmpname = tmpname @mode = mode & ~(File::CREAT|File::EXCL) opts.freeze @opts = opts end super(@tmpfile) end # Opens or reopens the file with mode "r+". def open @tmpfile.close if @tmpfile @tmpfile = File.open(@tmpname, @mode, @opts) @data[1] = @tmpfile __setobj__(@tmpfile) end def _close # :nodoc: begin @tmpfile.close if @tmpfile ensure @tmpfile = nil @data[1] = nil if @data end end protected :_close # Closes the file. If +unlink_now+ is true, then the file will be unlinked # (deleted) after closing. Of course, you can choose to later call #unlink # if you do not unlink it now. # # If you don't explicitly unlink the temporary file, the removal # will be delayed until the object is finalized. def close(unlink_now=false) if unlink_now close! else _close end end # Closes and unlinks (deletes) the file. Has the same effect as called # <tt>close(true)</tt>. def close! _close unlink end # Unlinks (deletes) the file from the filesystem. One should always unlink # the file after using it, as is explained in the "Explicit close" good # practice section in the Tempfile overview: # # file = Tempfile.new('foo') # begin # ...do something with file... # ensure # file.close # file.unlink # deletes the temp file # end # # === Unlink-before-close # # On POSIX systems it's possible to unlink a file before closing it. This # practice is explained in detail in the Tempfile overview (section # "Unlink after creation"); please refer there for more information. # # However, unlink-before-close may not be supported on non-POSIX operating # systems. Microsoft Windows is the most notable case: unlinking a non-closed # file will result in an error, which this method will silently ignore. If # you want to practice unlink-before-close whenever possible, then you should # write code like this: # # file = Tempfile.new('foo') # file.unlink # On Windows this silently fails. # begin # ... do something with file ... # ensure # file.close! # Closes the file handle. If the file wasn't unlinked # # because #unlink failed, then this method will attempt # # to do so again. # end def unlink return unless @tmpname begin File.unlink(@tmpname) rescue Errno::ENOENT rescue Errno::EACCES # may not be able to unlink on Windows; just ignore return end # remove tmpname from remover @data[0] = @data[1] = nil @tmpname = nil ObjectSpace.undefine_finalizer(self) end alias delete unlink # Returns the full path name of the temporary file. # This will be nil if #unlink has been called. def path @tmpname end # Returns the size of the temporary file. As a side effect, the IO # buffer is flushed before determining the size. def size if @tmpfile @tmpfile.flush @tmpfile.stat.size elsif @tmpname File.size(@tmpname) else 0 end end alias length size # :stopdoc: def inspect if closed? "#<#{self.class}:#{path} (closed)>" else "#<#{self.class}:#{path}>" end end class Remover def initialize(data) @pid = $$ @data = data end def call(*args) return if @pid != $$ path, tmpfile = @data STDERR.print "removing ", path, "..." if $DEBUG tmpfile.close if tmpfile if path begin File.unlink(path) rescue Errno::ENOENT end end STDERR.print "done\n" if $DEBUG end end class << self # :startdoc: # Creates a new Tempfile. # # If no block is given, this is a synonym for Tempfile.new. # # If a block is given, then a Tempfile object will be constructed, # and the block is run with said object as argument. The Tempfile # object will be automatically closed after the block terminates. # The call returns the value of the block. # # In any case, all arguments (+*args+) will be passed to Tempfile.new. # # Tempfile.open('foo', '/home/temp') do |f| # ... do something with f ... # end # # # Equivalent: # f = Tempfile.open('foo', '/home/temp') # begin # ... do something with f ... # ensure # f.close # end def open(*args) tempfile = new(*args) if block_given? begin yield(tempfile) ensure tempfile.close end else tempfile end end end end # Creates a temporally file as usual File object (not Tempfile). # It don't use finalizer and delegation. # # If no block is given, this is similar to Tempfile.new except # creating File instead of Tempfile. # The created file is not removed automatically. # You should use File.unlink to remove it. # # If a block is given, then a File object will be constructed, # and the block is invoked with the object as the argument. # The File object will be automatically closed and # the temporally file is removed after the block terminates. # The call returns the value of the block. # # In any case, all arguments (+*args+) will be treated as Tempfile.new. # # Tempfile.create('foo', '/home/temp') do |f| # ... do something with f ... # end # def Tempfile.create(basename, tmpdir=nil, mode: 0, **options) tmpfile = nil Dir::Tmpname.create(basename, tmpdir, options) do |tmpname, n, opts| mode |= File::RDWR|File::CREAT|File::EXCL opts[:perm] = 0600 tmpfile = File.open(tmpname, mode, opts) end if block_given? begin yield tmpfile ensure tmpfile.close if !tmpfile.closed? File.unlink tmpfile end else tmpfile end end
SILENT KILLER Tool