ref 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. data/README.rdoc +35 -0
  2. data/VERSION +1 -0
  3. data/ext/java/org/jruby/ext/ref/ReferencesService.java +28 -0
  4. data/ext/java/org/jruby/ext/ref/RubySoftReference.java +43 -0
  5. data/ext/java/org/jruby/ext/ref/RubyWeakReference.java +43 -0
  6. data/lib/org/jruby/ext/ref/references.jar +0 -0
  7. data/lib/ref.rb +39 -0
  8. data/lib/ref/abstract_reference_key_map.rb +117 -0
  9. data/lib/ref/abstract_reference_value_map.rb +127 -0
  10. data/lib/ref/mock.rb +145 -0
  11. data/lib/ref/reference.rb +24 -0
  12. data/lib/ref/reference_queue.rb +89 -0
  13. data/lib/ref/safe_monitor.rb +50 -0
  14. data/lib/ref/soft_key_map.rb +26 -0
  15. data/lib/ref/soft_reference.rb +67 -0
  16. data/lib/ref/soft_value_map.rb +28 -0
  17. data/lib/ref/strong_reference.rb +17 -0
  18. data/lib/ref/weak_key_map.rb +26 -0
  19. data/lib/ref/weak_reference.rb +26 -0
  20. data/lib/ref/weak_reference/iron_ruby.rb +14 -0
  21. data/lib/ref/weak_reference/pure_ruby.rb +91 -0
  22. data/lib/ref/weak_reference/weak_ref.rb +23 -0
  23. data/lib/ref/weak_value_map.rb +27 -0
  24. data/test/reference_key_map_behavior.rb +157 -0
  25. data/test/reference_key_map_behavior.rbc +4296 -0
  26. data/test/reference_queue_test.rb +60 -0
  27. data/test/reference_queue_test.rbc +1954 -0
  28. data/test/reference_value_map_behavior.rb +137 -0
  29. data/test/reference_value_map_behavior.rbc +3615 -0
  30. data/test/soft_key_map_test.rb +13 -0
  31. data/test/soft_key_map_test.rbc +374 -0
  32. data/test/soft_reference_test.rb +49 -0
  33. data/test/soft_reference_test.rbc +1481 -0
  34. data/test/soft_value_map_test.rb +13 -0
  35. data/test/soft_value_map_test.rbc +374 -0
  36. data/test/strong_reference_test.rb +15 -0
  37. data/test/strong_reference_test.rbc +562 -0
  38. data/test/test_helper.rb +4 -0
  39. data/test/weak_key_map_test.rb +13 -0
  40. data/test/weak_key_map_test.rbc +374 -0
  41. data/test/weak_reference_test.rb +46 -0
  42. data/test/weak_reference_test.rbc +1254 -0
  43. data/test/weak_value_map_test.rb +13 -0
  44. data/test/weak_value_map_test.rbc +374 -0
  45. metadata +113 -0
@@ -0,0 +1,13 @@
1
+ require File.expand_path("../test_helper", __FILE__)
2
+
3
+ class TestSoftValueMap < Test::Unit::TestCase
4
+ include ReferenceValueMapBehavior
5
+
6
+ def map_class
7
+ Ref::SoftValueMap
8
+ end
9
+
10
+ def reference_class
11
+ Ref::SoftReference
12
+ end
13
+ end
@@ -0,0 +1,374 @@
1
+ !RBIX
2
+ 0
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 82
13
+ 5
14
+ 7
15
+ 0
16
+ 64
17
+ 47
18
+ 49
19
+ 1
20
+ 1
21
+ 15
22
+ 5
23
+ 45
24
+ 2
25
+ 3
26
+ 7
27
+ 4
28
+ 64
29
+ 65
30
+ 49
31
+ 5
32
+ 0
33
+ 49
34
+ 6
35
+ 2
36
+ 47
37
+ 49
38
+ 1
39
+ 1
40
+ 15
41
+ 5
42
+ 45
43
+ 2
44
+ 7
45
+ 7
46
+ 8
47
+ 64
48
+ 65
49
+ 49
50
+ 5
51
+ 0
52
+ 49
53
+ 6
54
+ 2
55
+ 47
56
+ 49
57
+ 1
58
+ 1
59
+ 15
60
+ 99
61
+ 7
62
+ 9
63
+ 45
64
+ 10
65
+ 11
66
+ 43
67
+ 12
68
+ 43
69
+ 13
70
+ 65
71
+ 49
72
+ 14
73
+ 3
74
+ 13
75
+ 99
76
+ 12
77
+ 7
78
+ 15
79
+ 12
80
+ 7
81
+ 16
82
+ 12
83
+ 65
84
+ 12
85
+ 49
86
+ 17
87
+ 4
88
+ 15
89
+ 49
90
+ 15
91
+ 0
92
+ 15
93
+ 2
94
+ 11
95
+ I
96
+ 6
97
+ I
98
+ 0
99
+ I
100
+ 0
101
+ I
102
+ 0
103
+ n
104
+ p
105
+ 18
106
+ s
107
+ 9
108
+ test/unit
109
+ x
110
+ 7
111
+ require
112
+ x
113
+ 4
114
+ File
115
+ n
116
+ s
117
+ 13
118
+ ../../lib/ref
119
+ x
120
+ 11
121
+ active_path
122
+ x
123
+ 11
124
+ expand_path
125
+ n
126
+ s
127
+ 31
128
+ ../reference_value_map_behavior
129
+ x
130
+ 16
131
+ TestSoftValueMap
132
+ x
133
+ 4
134
+ Test
135
+ n
136
+ x
137
+ 4
138
+ Unit
139
+ x
140
+ 8
141
+ TestCase
142
+ x
143
+ 10
144
+ open_class
145
+ x
146
+ 14
147
+ __class_init__
148
+ M
149
+ 1
150
+ n
151
+ n
152
+ x
153
+ 16
154
+ TestSoftValueMap
155
+ i
156
+ 39
157
+ 5
158
+ 66
159
+ 5
160
+ 45
161
+ 0
162
+ 1
163
+ 47
164
+ 49
165
+ 2
166
+ 1
167
+ 15
168
+ 99
169
+ 7
170
+ 3
171
+ 7
172
+ 4
173
+ 65
174
+ 67
175
+ 49
176
+ 5
177
+ 0
178
+ 49
179
+ 6
180
+ 4
181
+ 15
182
+ 99
183
+ 7
184
+ 7
185
+ 7
186
+ 8
187
+ 65
188
+ 67
189
+ 49
190
+ 5
191
+ 0
192
+ 49
193
+ 6
194
+ 4
195
+ 11
196
+ I
197
+ 5
198
+ I
199
+ 0
200
+ I
201
+ 0
202
+ I
203
+ 0
204
+ n
205
+ p
206
+ 9
207
+ x
208
+ 25
209
+ ReferenceValueMapBehavior
210
+ n
211
+ x
212
+ 7
213
+ include
214
+ x
215
+ 9
216
+ map_class
217
+ M
218
+ 1
219
+ n
220
+ n
221
+ x
222
+ 9
223
+ map_class
224
+ i
225
+ 6
226
+ 45
227
+ 0
228
+ 1
229
+ 43
230
+ 2
231
+ 11
232
+ I
233
+ 1
234
+ I
235
+ 0
236
+ I
237
+ 0
238
+ I
239
+ 0
240
+ n
241
+ p
242
+ 3
243
+ x
244
+ 3
245
+ Ref
246
+ n
247
+ x
248
+ 12
249
+ SoftValueMap
250
+ p
251
+ 5
252
+ I
253
+ -1
254
+ I
255
+ 8
256
+ I
257
+ 0
258
+ I
259
+ 9
260
+ I
261
+ 6
262
+ x
263
+ 59
264
+ /Users/bdurand/dev/projects/ref/test/soft_value_map_test.rb
265
+ p
266
+ 0
267
+ x
268
+ 17
269
+ method_visibility
270
+ x
271
+ 15
272
+ add_defn_method
273
+ x
274
+ 15
275
+ reference_class
276
+ M
277
+ 1
278
+ n
279
+ n
280
+ x
281
+ 15
282
+ reference_class
283
+ i
284
+ 6
285
+ 45
286
+ 0
287
+ 1
288
+ 43
289
+ 2
290
+ 11
291
+ I
292
+ 1
293
+ I
294
+ 0
295
+ I
296
+ 0
297
+ I
298
+ 0
299
+ n
300
+ p
301
+ 3
302
+ x
303
+ 3
304
+ Ref
305
+ n
306
+ x
307
+ 13
308
+ SoftReference
309
+ p
310
+ 5
311
+ I
312
+ -1
313
+ I
314
+ c
315
+ I
316
+ 0
317
+ I
318
+ d
319
+ I
320
+ 6
321
+ x
322
+ 59
323
+ /Users/bdurand/dev/projects/ref/test/soft_value_map_test.rb
324
+ p
325
+ 0
326
+ p
327
+ 7
328
+ I
329
+ 2
330
+ I
331
+ 6
332
+ I
333
+ b
334
+ I
335
+ 8
336
+ I
337
+ 19
338
+ I
339
+ c
340
+ I
341
+ 27
342
+ x
343
+ 59
344
+ /Users/bdurand/dev/projects/ref/test/soft_value_map_test.rb
345
+ p
346
+ 0
347
+ x
348
+ 13
349
+ attach_method
350
+ p
351
+ 9
352
+ I
353
+ 0
354
+ I
355
+ 1
356
+ I
357
+ 9
358
+ I
359
+ 2
360
+ I
361
+ 1c
362
+ I
363
+ 3
364
+ I
365
+ 2f
366
+ I
367
+ 5
368
+ I
369
+ 52
370
+ x
371
+ 59
372
+ /Users/bdurand/dev/projects/ref/test/soft_value_map_test.rb
373
+ p
374
+ 0
@@ -0,0 +1,15 @@
1
+ require File.expand_path("../test_helper", __FILE__)
2
+
3
+ class TestStrongReference < Test::Unit::TestCase
4
+ def test_can_get_objects
5
+ obj = Object.new
6
+ ref = Ref::StrongReference.new(obj)
7
+ assert_equal obj, ref.object
8
+ assert_equal obj.object_id, ref.referenced_object_id
9
+ end
10
+
11
+ def test_inspect
12
+ ref = Ref::WeakReference.new(Object.new)
13
+ assert ref.inspect
14
+ end
15
+ end
@@ -0,0 +1,562 @@
1
+ !RBIX
2
+ 0
3
+ x
4
+ M
5
+ 1
6
+ n
7
+ n
8
+ x
9
+ 10
10
+ __script__
11
+ i
12
+ 63
13
+ 5
14
+ 7
15
+ 0
16
+ 64
17
+ 47
18
+ 49
19
+ 1
20
+ 1
21
+ 15
22
+ 5
23
+ 45
24
+ 2
25
+ 3
26
+ 7
27
+ 4
28
+ 64
29
+ 65
30
+ 49
31
+ 5
32
+ 0
33
+ 49
34
+ 6
35
+ 2
36
+ 47
37
+ 49
38
+ 1
39
+ 1
40
+ 15
41
+ 99
42
+ 7
43
+ 7
44
+ 45
45
+ 8
46
+ 9
47
+ 43
48
+ 10
49
+ 43
50
+ 11
51
+ 65
52
+ 49
53
+ 12
54
+ 3
55
+ 13
56
+ 99
57
+ 12
58
+ 7
59
+ 13
60
+ 12
61
+ 7
62
+ 14
63
+ 12
64
+ 65
65
+ 12
66
+ 49
67
+ 15
68
+ 4
69
+ 15
70
+ 49
71
+ 13
72
+ 0
73
+ 15
74
+ 2
75
+ 11
76
+ I
77
+ 6
78
+ I
79
+ 0
80
+ I
81
+ 0
82
+ I
83
+ 0
84
+ n
85
+ p
86
+ 16
87
+ s
88
+ 9
89
+ test/unit
90
+ x
91
+ 7
92
+ require
93
+ x
94
+ 4
95
+ File
96
+ n
97
+ s
98
+ 13
99
+ ../../lib/ref
100
+ x
101
+ 11
102
+ active_path
103
+ x
104
+ 11
105
+ expand_path
106
+ x
107
+ 19
108
+ TestStrongReference
109
+ x
110
+ 4
111
+ Test
112
+ n
113
+ x
114
+ 4
115
+ Unit
116
+ x
117
+ 8
118
+ TestCase
119
+ x
120
+ 10
121
+ open_class
122
+ x
123
+ 14
124
+ __class_init__
125
+ M
126
+ 1
127
+ n
128
+ n
129
+ x
130
+ 19
131
+ TestStrongReference
132
+ i
133
+ 30
134
+ 5
135
+ 66
136
+ 99
137
+ 7
138
+ 0
139
+ 7
140
+ 1
141
+ 65
142
+ 67
143
+ 49
144
+ 2
145
+ 0
146
+ 49
147
+ 3
148
+ 4
149
+ 15
150
+ 99
151
+ 7
152
+ 4
153
+ 7
154
+ 5
155
+ 65
156
+ 67
157
+ 49
158
+ 2
159
+ 0
160
+ 49
161
+ 3
162
+ 4
163
+ 11
164
+ I
165
+ 5
166
+ I
167
+ 0
168
+ I
169
+ 0
170
+ I
171
+ 0
172
+ n
173
+ p
174
+ 6
175
+ x
176
+ 20
177
+ test_can_get_objects
178
+ M
179
+ 1
180
+ n
181
+ n
182
+ x
183
+ 20
184
+ test_can_get_objects
185
+ i
186
+ 89
187
+ 45
188
+ 0
189
+ 1
190
+ 13
191
+ 71
192
+ 2
193
+ 47
194
+ 9
195
+ 21
196
+ 47
197
+ 49
198
+ 3
199
+ 0
200
+ 13
201
+ 47
202
+ 49
203
+ 4
204
+ 0
205
+ 15
206
+ 8
207
+ 24
208
+ 49
209
+ 2
210
+ 0
211
+ 19
212
+ 0
213
+ 15
214
+ 45
215
+ 5
216
+ 6
217
+ 43
218
+ 7
219
+ 13
220
+ 71
221
+ 2
222
+ 47
223
+ 9
224
+ 52
225
+ 47
226
+ 49
227
+ 3
228
+ 0
229
+ 13
230
+ 20
231
+ 0
232
+ 47
233
+ 49
234
+ 4
235
+ 1
236
+ 15
237
+ 8
238
+ 57
239
+ 20
240
+ 0
241
+ 49
242
+ 2
243
+ 1
244
+ 19
245
+ 1
246
+ 15
247
+ 5
248
+ 20
249
+ 0
250
+ 20
251
+ 1
252
+ 49
253
+ 8
254
+ 0
255
+ 47
256
+ 49
257
+ 9
258
+ 2
259
+ 15
260
+ 5
261
+ 20
262
+ 0
263
+ 49
264
+ 10
265
+ 0
266
+ 20
267
+ 1
268
+ 49
269
+ 11
270
+ 0
271
+ 47
272
+ 49
273
+ 9
274
+ 2
275
+ 11
276
+ I
277
+ 5
278
+ I
279
+ 2
280
+ I
281
+ 0
282
+ I
283
+ 0
284
+ n
285
+ p
286
+ 12
287
+ x
288
+ 6
289
+ Object
290
+ n
291
+ x
292
+ 3
293
+ new
294
+ x
295
+ 8
296
+ allocate
297
+ x
298
+ 10
299
+ initialize
300
+ x
301
+ 3
302
+ Ref
303
+ n
304
+ x
305
+ 15
306
+ StrongReference
307
+ x
308
+ 6
309
+ object
310
+ x
311
+ 12
312
+ assert_equal
313
+ x
314
+ 9
315
+ object_id
316
+ x
317
+ 20
318
+ referenced_object_id
319
+ p
320
+ 11
321
+ I
322
+ -1
323
+ I
324
+ 5
325
+ I
326
+ 0
327
+ I
328
+ 6
329
+ I
330
+ 1b
331
+ I
332
+ 7
333
+ I
334
+ 3c
335
+ I
336
+ 8
337
+ I
338
+ 49
339
+ I
340
+ 9
341
+ I
342
+ 59
343
+ x
344
+ 61
345
+ /Users/bdurand/dev/projects/ref/test/strong_reference_test.rb
346
+ p
347
+ 2
348
+ x
349
+ 3
350
+ obj
351
+ x
352
+ 3
353
+ ref
354
+ x
355
+ 17
356
+ method_visibility
357
+ x
358
+ 15
359
+ add_defn_method
360
+ x
361
+ 12
362
+ test_inspect
363
+ M
364
+ 1
365
+ n
366
+ n
367
+ x
368
+ 12
369
+ test_inspect
370
+ i
371
+ 88
372
+ 45
373
+ 0
374
+ 1
375
+ 43
376
+ 2
377
+ 13
378
+ 71
379
+ 3
380
+ 47
381
+ 9
382
+ 47
383
+ 47
384
+ 49
385
+ 4
386
+ 0
387
+ 13
388
+ 45
389
+ 5
390
+ 6
391
+ 13
392
+ 71
393
+ 3
394
+ 47
395
+ 9
396
+ 37
397
+ 47
398
+ 49
399
+ 4
400
+ 0
401
+ 13
402
+ 47
403
+ 49
404
+ 7
405
+ 0
406
+ 15
407
+ 8
408
+ 40
409
+ 49
410
+ 3
411
+ 0
412
+ 47
413
+ 49
414
+ 7
415
+ 1
416
+ 15
417
+ 8
418
+ 74
419
+ 45
420
+ 5
421
+ 8
422
+ 13
423
+ 71
424
+ 3
425
+ 47
426
+ 9
427
+ 68
428
+ 47
429
+ 49
430
+ 4
431
+ 0
432
+ 13
433
+ 47
434
+ 49
435
+ 7
436
+ 0
437
+ 15
438
+ 8
439
+ 71
440
+ 49
441
+ 3
442
+ 0
443
+ 49
444
+ 3
445
+ 1
446
+ 19
447
+ 0
448
+ 15
449
+ 5
450
+ 20
451
+ 0
452
+ 49
453
+ 9
454
+ 0
455
+ 47
456
+ 49
457
+ 10
458
+ 1
459
+ 11
460
+ I
461
+ 5
462
+ I
463
+ 1
464
+ I
465
+ 0
466
+ I
467
+ 0
468
+ n
469
+ p
470
+ 11
471
+ x
472
+ 3
473
+ Ref
474
+ n
475
+ x
476
+ 13
477
+ WeakReference
478
+ x
479
+ 3
480
+ new
481
+ x
482
+ 8
483
+ allocate
484
+ x
485
+ 6
486
+ Object
487
+ n
488
+ x
489
+ 10
490
+ initialize
491
+ n
492
+ x
493
+ 7
494
+ inspect
495
+ x
496
+ 6
497
+ assert
498
+ p
499
+ 7
500
+ I
501
+ -1
502
+ I
503
+ c
504
+ I
505
+ 0
506
+ I
507
+ d
508
+ I
509
+ 4d
510
+ I
511
+ e
512
+ I
513
+ 58
514
+ x
515
+ 61
516
+ /Users/bdurand/dev/projects/ref/test/strong_reference_test.rb
517
+ p
518
+ 1
519
+ x
520
+ 3
521
+ ref
522
+ p
523
+ 5
524
+ I
525
+ 2
526
+ I
527
+ 5
528
+ I
529
+ 10
530
+ I
531
+ c
532
+ I
533
+ 1e
534
+ x
535
+ 61
536
+ /Users/bdurand/dev/projects/ref/test/strong_reference_test.rb
537
+ p
538
+ 0
539
+ x
540
+ 13
541
+ attach_method
542
+ p
543
+ 7
544
+ I
545
+ 0
546
+ I
547
+ 1
548
+ I
549
+ 9
550
+ I
551
+ 2
552
+ I
553
+ 1c
554
+ I
555
+ 4
556
+ I
557
+ 3f
558
+ x
559
+ 61
560
+ /Users/bdurand/dev/projects/ref/test/strong_reference_test.rb
561
+ p
562
+ 0