X7ROOT File Manager
Current Path:
/opt/alt/ruby24/lib64/ruby/2.4.0
opt
/
alt
/
ruby24
/
lib64
/
ruby
/
2.4.0
/
ðŸ“
..
📄
English.rb
(6.45 KB)
📄
abbrev.rb
(3.49 KB)
📄
base64.rb
(3.31 KB)
📄
benchmark.rb
(17.9 KB)
ðŸ“
cgi
📄
cgi.rb
(9.8 KB)
📄
cmath.rb
(9.48 KB)
📄
csv.rb
(83.53 KB)
📄
date.rb
(1004 B)
📄
debug.rb
(29.98 KB)
📄
delegate.rb
(10.31 KB)
ðŸ“
digest
📄
digest.rb
(2.83 KB)
ðŸ“
drb
📄
drb.rb
(50 B)
📄
e2mmap.rb
(3.94 KB)
📄
erb.rb
(27.25 KB)
📄
expect.rb
(2.17 KB)
ðŸ“
fiddle
📄
fiddle.rb
(1.68 KB)
📄
fileutils.rb
(44.06 KB)
📄
find.rb
(2.52 KB)
ðŸ“
forwardable
📄
forwardable.rb
(8.5 KB)
📄
getoptlong.rb
(15.41 KB)
ðŸ“
io
📄
ipaddr.rb
(17.1 KB)
ðŸ“
irb
📄
irb.rb
(20.29 KB)
ðŸ“
json
📄
json.rb
(1.77 KB)
📄
kconv.rb
(5.77 KB)
📄
logger.rb
(23.53 KB)
📄
mathn.rb
(3.42 KB)
ðŸ“
matrix
📄
matrix.rb
(53.37 KB)
📄
mkmf.rb
(84.32 KB)
📄
monitor.rb
(7.02 KB)
📄
mutex_m.rb
(2.04 KB)
ðŸ“
net
📄
observer.rb
(5.83 KB)
📄
open-uri.rb
(24.76 KB)
📄
open3.rb
(20.59 KB)
ðŸ“
openssl
📄
openssl.rb
(445 B)
📄
optionparser.rb
(59 B)
ðŸ“
optparse
📄
optparse.rb
(57.25 KB)
📄
ostruct.rb
(10.2 KB)
📄
pathname.rb
(16.08 KB)
📄
pp.rb
(14.43 KB)
📄
prettyprint.rb
(15.89 KB)
📄
prime.rb
(12.49 KB)
📄
profile.rb
(236 B)
📄
profiler.rb
(4.54 KB)
📄
pstore.rb
(14.71 KB)
ðŸ“
psych
📄
psych.rb
(15.25 KB)
ðŸ“
racc
ðŸ“
rbconfig
ðŸ“
rdoc
📄
rdoc.rb
(5.07 KB)
📄
resolv-replace.rb
(1.76 KB)
📄
resolv.rb
(73.48 KB)
ðŸ“
rexml
ðŸ“
rinda
ðŸ“
ripper
📄
ripper.rb
(2.56 KB)
ðŸ“
rss
📄
rss.rb
(2.87 KB)
ðŸ“
rubygems
📄
rubygems.rb
(35.38 KB)
📄
scanf.rb
(23.56 KB)
📄
securerandom.rb
(7.48 KB)
📄
set.rb
(20.74 KB)
ðŸ“
shell
📄
shell.rb
(11.37 KB)
📄
shellwords.rb
(6.66 KB)
📄
singleton.rb
(4.06 KB)
📄
socket.rb
(42.99 KB)
📄
sync.rb
(7.29 KB)
ðŸ“
syslog
📄
tempfile.rb
(10.8 KB)
📄
thwait.rb
(3.35 KB)
📄
time.rb
(22.36 KB)
📄
timeout.rb
(3.83 KB)
📄
tmpdir.rb
(4.29 KB)
📄
tracer.rb
(6.44 KB)
📄
tsort.rb
(14.3 KB)
📄
ubygems.rb
(298 B)
📄
un.rb
(9.18 KB)
ðŸ“
unicode_normalize
📄
unicode_normalize.rb
(3.2 KB)
ðŸ“
uri
📄
uri.rb
(3.1 KB)
📄
weakref.rb
(2.95 KB)
ðŸ“
webrick
📄
webrick.rb
(6.72 KB)
ðŸ“
x86_64-linux
ðŸ“
yaml
📄
yaml.rb
(1.73 KB)
Editing: weakref.rb
# frozen_string_literal: false require "delegate" # Weak Reference class that allows a referenced object to be # garbage-collected. # # A WeakRef may be used exactly like the object it references. # # Usage: # # foo = Object.new # create a new object instance # p foo.to_s # original's class # foo = WeakRef.new(foo) # reassign foo with WeakRef instance # p foo.to_s # should be same class # GC.start # start the garbage collector # p foo.to_s # should raise exception (recycled) # # == Example # # With help from WeakRef, we can implement our own rudimentary WeakHash class. # # We will call it WeakHash, since it's really just a Hash except all of it's # keys and values can be garbage collected. # # require 'weakref' # # class WeakHash < Hash # def []= key, obj # super WeakRef.new(key), WeakRef.new(obj) # end # end # # This is just a simple implementation, we've opened the Hash class and changed # Hash#store to create a new WeakRef object with +key+ and +obj+ parameters # before passing them as our key-value pair to the hash. # # With this you will have to limit your self to String keys, otherwise you # will get an ArgumentError because WeakRef cannot create a finalizer for a # Symbol. Symbols are immutable and cannot be garbage collected. # # Let's see it in action: # # omg = "lol" # c = WeakHash.new # c['foo'] = "bar" # c['baz'] = Object.new # c['qux'] = omg # puts c.inspect # #=> {"foo"=>"bar", "baz"=>#<Object:0x007f4ddfc6cb48>, "qux"=>"lol"} # # # Now run the garbage collector # GC.start # c['foo'] #=> nil # c['baz'] #=> nil # c['qux'] #=> nil # omg #=> "lol" # # puts c.inspect # #=> WeakRef::RefError: Invalid Reference - probably recycled # # You can see the local variable +omg+ stayed, although its reference in our # hash object was garbage collected, along with the rest of the keys and # values. Also, when we tried to inspect our hash, we got a WeakRef::RefError. # This is because these objects were also garbage collected. class WeakRef < Delegator ## # RefError is raised when a referenced object has been recycled by the # garbage collector class RefError < StandardError end @@__map = ::ObjectSpace::WeakMap.new ## # Creates a weak reference to +orig+ # # Raises an ArgumentError if the given +orig+ is immutable, such as Symbol, # Integer, or Float. def initialize(orig) case orig when true, false, nil @delegate_sd_obj = orig else @@__map[self] = orig end super end def __getobj__ # :nodoc: @@__map[self] or defined?(@delegate_sd_obj) ? @delegate_sd_obj : Kernel::raise(RefError, "Invalid Reference - probably recycled", Kernel::caller(2)) end def __setobj__(obj) # :nodoc: end ## # Returns true if the referenced object is still alive. def weakref_alive? @@__map.key?(self) or defined?(@delegate_sd_obj) end end
Upload File
Create Folder