PHP 8.2.31
Preview: weakref.rb Size: 1.36 KB
/proc/thread-self/root/opt/alt/ruby32/share/ruby/weakref.rb

# frozen_string_literal: true
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)
#

class WeakRef < Delegator
  VERSION = "0.1.2"

  ##
  # 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+

  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

Directory Contents

Dirs: 33 × Files: 62

Name Size Perms Modified Actions
benchmark DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
- drwxr-xr-x 2026-04-30 07:09:25
Edit Download
cgi DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
csv DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
digest DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
drb DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
erb DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
fiddle DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
io DIR
- drwxr-xr-x 2026-04-07 14:12:41
Edit Download
json DIR
- drwxr-xr-x 2026-04-30 07:09:27
Edit Download
logger DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
net DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
objspace DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
open3 DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
openssl DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
optparse DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
psych DIR
- drwxr-xr-x 2026-04-30 07:09:25
Edit Download
racc DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
random DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
reline DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
rinda DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
ripper DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
ruby_vm DIR
- drwxr-xr-x 2024-03-03 22:35:21
Edit Download
set DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
syslog DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
uri DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
- drwxr-xr-x 2026-04-07 14:12:41
Edit Download
yaml DIR
- drwxr-xr-x 2026-04-30 07:09:24
Edit Download
3.45 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
3.35 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
18.40 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
24 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download
9.83 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
368 B lrw-r--r-- 2026-04-07 14:12:51
Edit Download
92.47 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
1.17 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
11.68 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
5.31 KB lrw-r--r-- 2026-04-07 14:12:50
Edit Download
3.30 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
50 B lrw-r--r-- 2026-04-07 14:12:51
Edit Download
6.11 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
14.57 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
84 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download
2.19 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
2.88 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
79.02 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
2.50 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
9.03 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
20.26 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
20.60 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
19.29 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
5.72 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
21.95 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
88.40 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
6.76 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
2.33 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
4.67 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
6.38 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
25.52 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
22.11 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
1.03 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
59 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download
61.06 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
13.88 KB lrw-r--r-- 2026-04-07 14:12:50
Edit Download
16.83 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
17.22 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
15.90 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
20.52 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
24.62 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
137 B lrw-r--r-- 2026-04-07 14:12:51
Edit Download
189 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download
17.75 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
1.76 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
74.35 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
2.44 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
2.11 KB lrw-r--r-- 2026-04-07 14:12:49
Edit Download
25.31 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
7.09 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
4.08 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
43.72 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
74 B lrw-r--r-- 2026-04-07 14:12:52
Edit Download
13.84 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
23.72 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
5.83 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
4.70 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
14.26 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
11.17 KB lrw-r--r-- 2026-04-07 14:12:52
Edit Download
3.06 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
1.36 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download
2.11 KB lrw-r--r-- 2026-04-07 14:12:51
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).