GRAYBYTE WORDPRESS FILE MANAGER9993

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/alt/ruby20/lib64/ruby/2.0.0/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/alt/ruby20/lib64/ruby/2.0.0//tempfile.rb
#
# tempfile - manipulates temporary files
#
# $Id: tempfile.rb 43229 2013-10-09 16:11:16Z nagachika $
#

require 'delegate'
require 'tmpdir'
require 'thread'

# 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)
  include Dir::Tmpname

  # 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, *rest)
    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)

    create(basename, *rest) do |tmpname, n, opts|
      mode = File::RDWR|File::CREAT|File::EXCL
      perm = 0600
      if opts
        mode |= opts.delete(:mode) || 0
        opts[:perm] = perm
        perm = nil
      else
        opts = perm
      end
      @data[1] = @tmpfile = File.open(tmpname, mode, opts)
      @data[0] = @tmpname = tmpname
      @mode = mode & ~(File::CREAT|File::EXCL)
      perm or 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

  def inspect
    "#<#{self.class}:#{path}>"
  end

  # :stopdoc:
  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
  # :startdoc:

  class << self
    # 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

if __FILE__ == $0
#  $DEBUG = true
  f = Tempfile.new("foo")
  f.print("foo\n")
  f.close
  f.open
  p f.gets # => "foo\n"
  f.close!
end

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
March 03 2024 22:43:32
root / root
0755
cgi
--
March 03 2024 22:43:33
root / linksafe
0755
date
--
March 03 2024 22:43:33
root / linksafe
0755
digest
--
March 03 2024 22:43:33
root / linksafe
0755
dl
--
March 03 2024 22:43:33
root / linksafe
0755
drb
--
March 03 2024 22:43:33
root / linksafe
0755
fiddle
--
March 03 2024 22:43:33
root / linksafe
0755
irb
--
March 03 2024 22:43:33
root / linksafe
0755
json
--
March 03 2024 22:43:37
root / linksafe
0755
matrix
--
March 03 2024 22:43:33
root / linksafe
0755
net
--
March 03 2024 22:43:33
root / linksafe
0755
openssl
--
March 03 2024 22:43:33
root / linksafe
0755
optparse
--
March 03 2024 22:43:33
root / linksafe
0755
psych
--
March 03 2024 22:43:38
root / linksafe
0755
racc
--
March 03 2024 22:43:33
root / linksafe
0755
rake
--
March 03 2024 22:53:08
root / linksafe
0755
rbconfig
--
March 03 2024 22:43:42
root / linksafe
0755
rdoc
--
March 03 2024 22:43:41
root / linksafe
0755
rexml
--
March 03 2024 22:43:33
root / linksafe
0755
rinda
--
March 03 2024 22:43:33
root / linksafe
0755
ripper
--
March 03 2024 22:43:33
root / linksafe
0755
rss
--
March 03 2024 22:43:33
root / linksafe
0755
rubygems
--
March 03 2024 22:43:42
root / linksafe
0755
shell
--
March 03 2024 22:43:33
root / linksafe
0755
syslog
--
March 03 2024 22:43:33
root / root
0755
test
--
March 03 2024 22:43:33
root / linksafe
0755
uri
--
March 03 2024 22:43:33
root / linksafe
0755
webrick
--
March 03 2024 22:43:33
root / linksafe
0755
x86_64-linux
--
March 03 2024 22:43:38
root / root
0755
xmlrpc
--
March 03 2024 22:43:33
root / linksafe
0755
yaml
--
March 03 2024 22:43:33
root / linksafe
0755
English.rb
6.443 KB
February 04 2013 02:50:20
root / linksafe
0644
abbrev.rb
3.313 KB
February 24 2013 05:06:42
root / linksafe
0644
base64.rb
2.631 KB
October 02 2009 10:45:39
root / linksafe
0644
benchmark.rb
17.939 KB
July 18 2012 03:56:58
root / linksafe
0644
cgi.rb
9.391 KB
November 30 2012 05:06:45
root / linksafe
0644
cmath.rb
7.223 KB
July 23 2011 12:14:43
root / linksafe
0644
complex.rb
0.371 KB
August 16 2009 15:34:35
root / linksafe
0644
csv.rb
81.322 KB
September 17 2014 05:56:35
root / linksafe
0644
date.rb
0.924 KB
July 26 2023 14:09:00
root / linksafe
0644
debug.rb
28.898 KB
February 02 2013 05:04:54
root / linksafe
0644
delegate.rb
9.783 KB
April 30 2014 07:45:49
root / linksafe
0644
digest.rb
2.244 KB
July 26 2023 14:09:00
root / linksafe
0644
dl.rb
0.273 KB
July 26 2023 14:09:00
root / linksafe
0644
drb.rb
0.019 KB
October 02 2009 10:45:39
root / linksafe
0644
e2mmap.rb
3.805 KB
May 19 2011 00:07:25
root / linksafe
0644
erb.rb
26.084 KB
September 03 2014 04:42:39
root / linksafe
0644
expect.rb
2.144 KB
July 26 2023 14:09:00
root / linksafe
0644
fiddle.rb
1.252 KB
July 26 2023 14:09:00
root / linksafe
0644
fileutils.rb
46.353 KB
October 16 2014 07:23:46
root / linksafe
0644
find.rb
2.082 KB
September 20 2012 07:14:54
root / linksafe
0644
forwardable.rb
7.562 KB
January 04 2013 02:52:54
root / linksafe
0644
getoptlong.rb
15.381 KB
December 24 2013 15:46:01
root / linksafe
0644
gserver.rb
8.856 KB
July 07 2014 03:55:25
root / linksafe
0644
ipaddr.rb
26.17 KB
February 23 2013 04:03:59
root / linksafe
0644
irb.rb
20.029 KB
February 05 2013 15:57:19
root / linksafe
0644
json.rb
1.737 KB
July 26 2023 14:09:00
root / linksafe
0644
kconv.rb
5.737 KB
July 26 2023 14:09:00
root / linksafe
0644
logger.rb
20.96 KB
July 13 2013 15:16:09
root / linksafe
0644
mathn.rb
6.524 KB
August 26 2011 22:22:37
root / linksafe
0644
matrix.rb
45.019 KB
February 05 2013 05:43:36
root / linksafe
0644
mkmf.rb
78.186 KB
July 26 2023 14:06:15
root / linksafe
0644
monitor.rb
6.935 KB
November 16 2012 16:55:29
root / linksafe
0644
mutex_m.rb
2.002 KB
February 24 2013 04:49:04
root / linksafe
0644
observer.rb
5.705 KB
August 21 2012 13:03:30
root / linksafe
0644
open-uri.rb
23.656 KB
February 16 2014 17:02:51
root / linksafe
0644
open3.rb
21.172 KB
January 13 2013 04:40:15
root / linksafe
0644
openssl.rb
0.516 KB
July 26 2023 14:09:00
root / linksafe
0644
optparse.rb
51.267 KB
February 19 2014 16:38:03
root / linksafe
0644
ostruct.rb
7.636 KB
October 28 2012 21:20:10
root / linksafe
0644
pathname.rb
15.297 KB
July 26 2023 14:09:00
root / linksafe
0644
pp.rb
13.136 KB
August 15 2012 11:50:01
root / linksafe
0644
prettyprint.rb
9.628 KB
August 02 2011 15:25:59
root / linksafe
0644
prime.rb
13.978 KB
January 13 2013 05:07:08
root / linksafe
0644
profile.rb
0.2 KB
October 02 2009 10:45:39
root / linksafe
0644
profiler.rb
4.287 KB
February 03 2013 00:38:46
root / linksafe
0644
pstore.rb
14.849 KB
November 11 2012 04:23:04
root / linksafe
0644
psych.rb
9.896 KB
July 26 2023 14:09:00
root / linksafe
0644
rake.rb
2.069 KB
November 29 2012 19:16:46
root / linksafe
0644
rational.rb
0.301 KB
September 24 2009 00:42:23
root / linksafe
0644
rdoc.rb
4.877 KB
February 19 2013 05:06:36
root / linksafe
0644
resolv-replace.rb
1.732 KB
April 03 2013 17:27:19
root / linksafe
0644
resolv.rb
61.449 KB
June 01 2015 15:13:01
root / linksafe
0644
ripper.rb
2.525 KB
July 26 2023 14:09:00
root / linksafe
0644
rss.rb
2.841 KB
May 11 2011 10:22:16
root / linksafe
0644
rubygems.rb
27.534 KB
July 26 2023 14:06:15
root / linksafe
0644
scanf.rb
23.517 KB
November 05 2011 07:37:47
root / linksafe
0644
securerandom.rb
8.563 KB
September 13 2012 13:01:23
root / linksafe
0644
set.rb
17.316 KB
November 24 2012 18:51:45
root / linksafe
0644
shell.rb
10.3 KB
December 05 2012 02:55:07
root / linksafe
0644
shellwords.rb
5.94 KB
November 09 2012 06:28:00
root / linksafe
0644
singleton.rb
4.018 KB
May 18 2011 14:09:38
root / linksafe
0644
socket.rb
25.758 KB
July 26 2023 14:09:00
root / linksafe
0644
sync.rb
7.256 KB
December 23 2012 10:18:58
root / linksafe
0644
tempfile.rb
10.153 KB
October 09 2013 16:11:16
root / linksafe
0644
thread.rb
6.944 KB
February 09 2014 16:07:41
root / linksafe
0644
thwait.rb
3.376 KB
June 29 2011 03:09:34
root / linksafe
0644
time.rb
21.091 KB
October 09 2013 15:07:45
root / linksafe
0644
timeout.rb
3.163 KB
April 14 2013 15:20:33
root / linksafe
0644
tmpdir.rb
4.148 KB
December 12 2012 12:40:51
root / linksafe
0644
tracer.rb
6.537 KB
February 04 2013 17:59:52
root / linksafe
0644
tsort.rb
6.795 KB
March 06 2009 04:23:05
root / linksafe
0644
ubygems.rb
0.262 KB
October 02 2009 10:45:39
root / linksafe
0644
un.rb
8.337 KB
August 03 2012 08:23:18
root / linksafe
0644
uri.rb
3.07 KB
May 13 2011 20:03:21
root / linksafe
0644
weakref.rb
3.229 KB
December 02 2012 07:57:45
root / linksafe
0644
webrick.rb
6.695 KB
November 07 2012 06:49:57
root / linksafe
0644
xmlrpc.rb
8.493 KB
September 13 2012 02:24:08
root / linksafe
0644
yaml.rb
2.303 KB
May 19 2013 19:01:43
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF