SILENT KILLERPanel

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 ]

Files and Folders in: //opt//alt//ruby22/lib64/ruby/2.2.0

NameTypeSizeLast ModifiedActions
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.

Reading File: //opt//alt//ruby22/lib64/ruby/2.2.0/forwardable.rb

# frozen_string_literal: false
#
#   forwardable.rb -
#       $Release Version: 1.1$
#       $Revision: 58085 $
#       by Keiju ISHITSUKA(keiju@ishitsuka.com)
#       original definition by delegator.rb
#       Revised by Daniel J. Berger with suggestions from Florian Gross.
#
#       Documentation by James Edward Gray II and Gavin Sinclair



# The Forwardable module provides delegation of specified
# methods to a designated object, using the methods #def_delegator
# and #def_delegators.
#
# For example, say you have a class RecordCollection which
# contains an array <tt>@records</tt>.  You could provide the lookup method
# #record_number(), which simply calls #[] on the <tt>@records</tt>
# array, like this:
#
#   require 'forwardable'
#
#   class RecordCollection
#     attr_accessor :records
#     extend Forwardable
#     def_delegator :@records, :[], :record_number
#   end
#
# We can use the lookup method like so:
#
#   r = RecordCollection.new
#   r.records = [4,5,6]
#   r.record_number(0)  # => 4
#
# Further, if you wish to provide the methods #size, #<<, and #map,
# all of which delegate to @records, this is how you can do it:
#
#   class RecordCollection # re-open RecordCollection class
#     def_delegators :@records, :size, :<<, :map
#   end
#
#   r = RecordCollection.new
#   r.records = [1,2,3]
#   r.record_number(0)   # => 1
#   r.size               # => 3
#   r << 4               # => [1, 2, 3, 4]
#   r.map { |x| x * 2 }  # => [2, 4, 6, 8]
#
# You can even extend regular objects with Forwardable.
#
#   my_hash = Hash.new
#   my_hash.extend Forwardable              # prepare object for delegation
#   my_hash.def_delegator "STDOUT", "puts"  # add delegation for STDOUT.puts()
#   my_hash.puts "Howdy!"
#
# == Another example
#
# We want to rely on what has come before obviously, but with delegation we can
# take just the methods we need and even rename them as appropriate.  In many
# cases this is preferable to inheritance, which gives us the entire old
# interface, even if much of it isn't needed.
#
#   class Queue
#     extend Forwardable
#
#     def initialize
#       @q = [ ]    # prepare delegate object
#     end
#
#     # setup preferred interface, enq() and deq()...
#     def_delegator :@q, :push, :enq
#     def_delegator :@q, :shift, :deq
#
#     # support some general Array methods that fit Queues well
#     def_delegators :@q, :clear, :first, :push, :shift, :size
#   end
#
#   q = Queue.new
#   q.enq 1, 2, 3, 4, 5
#   q.push 6
#
#   q.shift    # => 1
#   while q.size > 0
#     puts q.deq
#   end
#
#   q.enq "Ruby", "Perl", "Python"
#   puts q.first
#   q.clear
#   puts q.first
#
# This should output:
#
#   2
#   3
#   4
#   5
#   6
#   Ruby
#   nil
#
# == Notes
#
# Be advised, RDoc will not detect delegated methods.
#
# +forwardable.rb+ provides single-method delegation via the def_delegator and
# def_delegators methods. For full-class delegation via DelegateClass, see
# +delegate.rb+.
#
module Forwardable
  # Version of +forwardable.rb+
  FORWARDABLE_VERSION = "1.1.0"

  FILE_REGEXP = %r"#{Regexp.quote(__FILE__)}"

  @debug = nil
  class << self
    # If true, <tt>__FILE__</tt> will remain in the backtrace in the event an
    # Exception is raised.
    attr_accessor :debug
  end

  # Takes a hash as its argument.  The key is a symbol or an array of
  # symbols.  These symbols correspond to method names.  The value is
  # the accessor to which the methods will be delegated.
  #
  # :call-seq:
  #    delegate method => accessor
  #    delegate [method, method, ...] => accessor
  #
  def instance_delegate(hash)
    hash.each{ |methods, accessor|
      methods = [methods] unless methods.respond_to?(:each)
      methods.each{ |method|
        def_instance_delegator(accessor, method)
      }
    }
  end

  #
  # Shortcut for defining multiple delegator methods, but with no
  # provision for using a different name.  The following two code
  # samples have the same effect:
  #
  #   def_delegators :@records, :size, :<<, :map
  #
  #   def_delegator :@records, :size
  #   def_delegator :@records, :<<
  #   def_delegator :@records, :map
  #
  def def_instance_delegators(accessor, *methods)
    methods.delete("__send__")
    methods.delete("__id__")
    for method in methods
      def_instance_delegator(accessor, method)
    end
  end

  # Define +method+ as delegator instance method with an optional
  # alias name +ali+. Method calls to +ali+ will be delegated to
  # +accessor.method+.
  #
  #   class MyQueue
  #     extend Forwardable
  #     attr_reader :queue
  #     def initialize
  #       @queue = []
  #     end
  #
  #     def_delegator :@queue, :push, :mypush
  #   end
  #
  #   q = MyQueue.new
  #   q.mypush 42
  #   q.queue    #=> [42]
  #   q.push 23  #=> NoMethodError
  #
  def def_instance_delegator(accessor, method, ali = method)
    gen = Forwardable._delegator_method(self, accessor, method, ali)

    # If it's not a class or module, it's an instance
    (Module === self ? self : singleton_class).module_eval(&gen)
  end

  alias delegate instance_delegate
  alias def_delegators def_instance_delegators
  alias def_delegator def_instance_delegator

  def self._delegator_method(obj, accessor, method, ali)
    accessor = accessor.to_s unless Symbol === accessor

    if Module === obj ?
         obj.method_defined?(accessor) || obj.private_method_defined?(accessor) :
         obj.respond_to?(accessor, true)
      accessor = "#{accessor}()"
    end

    line_no = __LINE__+1; str = "#{<<-"begin;"}\n#{<<-"end;"}"
    begin;
      proc do
        def #{ali}(*args, &block)
          begin
            #{accessor}
          ensure
            $@.delete_if {|s| ::Forwardable::FILE_REGEXP =~ s} if $@ and !::Forwardable::debug
          end.__send__ :#{method}, *args, &block
        end
      end
    end;

    RubyVM::InstructionSequence
      .compile(str, __FILE__, __FILE__, line_no,
               trace_instruction: false,
               tailcall_optimization: true)
      .eval
  end
end

# SingleForwardable can be used to setup delegation at the object level as well.
#
#    printer = String.new
#    printer.extend SingleForwardable        # prepare object for delegation
#    printer.def_delegator "STDOUT", "puts"  # add delegation for STDOUT.puts()
#    printer.puts "Howdy!"
#
# Also, SingleForwardable can be used to set up delegation for a Class or Module.
#
#   class Implementation
#     def self.service
#       puts "serviced!"
#     end
#   end
#
#   module Facade
#     extend SingleForwardable
#     def_delegator :Implementation, :service
#   end
#
#   Facade.service #=> serviced!
#
# If you want to use both Forwardable and SingleForwardable, you can
# use methods def_instance_delegator and def_single_delegator, etc.
module SingleForwardable
  # Takes a hash as its argument.  The key is a symbol or an array of
  # symbols.  These symbols correspond to method names.  The value is
  # the accessor to which the methods will be delegated.
  #
  # :call-seq:
  #    delegate method => accessor
  #    delegate [method, method, ...] => accessor
  #
  def single_delegate(hash)
    hash.each{ |methods, accessor|
      methods = [methods] unless methods.respond_to?(:each)
      methods.each{ |method|
        def_single_delegator(accessor, method)
      }
    }
  end

  #
  # Shortcut for defining multiple delegator methods, but with no
  # provision for using a different name.  The following two code
  # samples have the same effect:
  #
  #   def_delegators :@records, :size, :<<, :map
  #
  #   def_delegator :@records, :size
  #   def_delegator :@records, :<<
  #   def_delegator :@records, :map
  #
  def def_single_delegators(accessor, *methods)
    methods.delete("__send__")
    methods.delete("__id__")
    for method in methods
      def_single_delegator(accessor, method)
    end
  end

  # :call-seq:
  #   def_single_delegator(accessor, method, new_name=method)
  #
  # Defines a method _method_ which delegates to _accessor_ (i.e. it calls
  # the method of the same name in _accessor_).  If _new_name_ is
  # provided, it is used as the name for the delegate method.
  def def_single_delegator(accessor, method, ali = method)
    gen = Forwardable._delegator_method(self, accessor, method, ali)

    instance_eval(&gen)
  end

  alias delegate single_delegate
  alias def_delegators def_single_delegators
  alias def_delegator def_single_delegator
end

SILENT KILLER Tool