knjrbfw 0.0.22 → 0.0.23
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.
- data/VERSION +1 -1
- data/knjrbfw.gemspec +1 -1
- data/lib/knj/objects.rb +1 -13
- data/lib/knj/wref.rb +28 -14
- metadata +14 -14
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.23
|
data/knjrbfw.gemspec
CHANGED
data/lib/knj/objects.rb
CHANGED
@@ -574,19 +574,7 @@ class Knj::Objects
|
|
574
574
|
end
|
575
575
|
|
576
576
|
classname = classname.to_sym
|
577
|
-
|
578
|
-
#if !@objects.key?(classname)
|
579
|
-
#raise "Could not find object class in cache: #{classname}."
|
580
|
-
#elsif !@objects[classname].key?(object.id.to_i)
|
581
|
-
#errstr = ""
|
582
|
-
#errstr << "Could not unset object from cache.\n"
|
583
|
-
#errstr << "Class: #{object.class.name}.\n"
|
584
|
-
#errstr << "ID: #{object.id}.\n"
|
585
|
-
#errstr << "Could not find object ID in cache."
|
586
|
-
#raise errstr
|
587
|
-
#else
|
588
|
-
@objects[classname].delete(object.id.to_i)
|
589
|
-
#end
|
577
|
+
@objects[classname].delete(object.id.to_i)
|
590
578
|
end
|
591
579
|
|
592
580
|
def unset_class(classname)
|
data/lib/knj/wref.rb
CHANGED
@@ -28,6 +28,7 @@ class Knj::Wref
|
|
28
28
|
def get
|
29
29
|
obj = @weakref.__getobj__ if @weakref
|
30
30
|
|
31
|
+
#The class-check is because ID's can be reused in Ruby 1.9 which breaks the normal WeakRef-implementation.
|
31
32
|
if !@weakref or @class_name != obj.class.name.to_sym or @id != obj.__id__
|
32
33
|
self.destroy
|
33
34
|
raise WeakRef::RefError
|
@@ -59,7 +60,7 @@ class Knj::Wref
|
|
59
60
|
end
|
60
61
|
|
61
62
|
class Knj::Wref_map
|
62
|
-
def initialize(args =
|
63
|
+
def initialize(args = nil)
|
63
64
|
@map = {}
|
64
65
|
end
|
65
66
|
|
@@ -93,19 +94,6 @@ class Knj::Wref_map
|
|
93
94
|
end
|
94
95
|
end
|
95
96
|
|
96
|
-
#Make it hash-compatible.
|
97
|
-
def key?(key)
|
98
|
-
return @map.key?(key)
|
99
|
-
end
|
100
|
-
|
101
|
-
def length
|
102
|
-
return @map.length
|
103
|
-
end
|
104
|
-
|
105
|
-
alias has_key? key?
|
106
|
-
alias [] get
|
107
|
-
alias []= set
|
108
|
-
|
109
97
|
#The same as 'get' but returns nil instead of WeakRef-error. This can be used to avoid writing lots of code.
|
110
98
|
def get!(id)
|
111
99
|
begin
|
@@ -139,4 +127,30 @@ class Knj::Wref_map
|
|
139
127
|
return false
|
140
128
|
end
|
141
129
|
end
|
130
|
+
|
131
|
+
#Returns true if the given key exists in the hash.
|
132
|
+
def key?(key)
|
133
|
+
return @map.key?(key)
|
134
|
+
end
|
135
|
+
|
136
|
+
#Returns the length of the hash. This may not be true since invalid objects is also counted.
|
137
|
+
def length
|
138
|
+
return @map.length
|
139
|
+
end
|
140
|
+
|
141
|
+
#Cleans the hash and returns the length. This is slower but more accurate than the ordinary length that just returns the hash-length.
|
142
|
+
def length_valid
|
143
|
+
self.clean
|
144
|
+
return @map.length
|
145
|
+
end
|
146
|
+
|
147
|
+
#Deletes a key in the hash.
|
148
|
+
def delete(key)
|
149
|
+
@map.delete(key)
|
150
|
+
end
|
151
|
+
|
152
|
+
#Make it hash-compatible.
|
153
|
+
alias has_key? key?
|
154
|
+
alias [] get
|
155
|
+
alias []= set
|
142
156
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: knjrbfw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.23
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -14,7 +14,7 @@ default_executable:
|
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rspec
|
17
|
-
requirement: &
|
17
|
+
requirement: &19017160 !ruby/object:Gem::Requirement
|
18
18
|
none: false
|
19
19
|
requirements:
|
20
20
|
- - ~>
|
@@ -22,10 +22,10 @@ dependencies:
|
|
22
22
|
version: 2.3.0
|
23
23
|
type: :development
|
24
24
|
prerelease: false
|
25
|
-
version_requirements: *
|
25
|
+
version_requirements: *19017160
|
26
26
|
- !ruby/object:Gem::Dependency
|
27
27
|
name: bundler
|
28
|
-
requirement: &
|
28
|
+
requirement: &19015640 !ruby/object:Gem::Requirement
|
29
29
|
none: false
|
30
30
|
requirements:
|
31
31
|
- - ~>
|
@@ -33,10 +33,10 @@ dependencies:
|
|
33
33
|
version: 1.0.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
|
-
version_requirements: *
|
36
|
+
version_requirements: *19015640
|
37
37
|
- !ruby/object:Gem::Dependency
|
38
38
|
name: jeweler
|
39
|
-
requirement: &
|
39
|
+
requirement: &19014340 !ruby/object:Gem::Requirement
|
40
40
|
none: false
|
41
41
|
requirements:
|
42
42
|
- - ~>
|
@@ -44,10 +44,10 @@ dependencies:
|
|
44
44
|
version: 1.6.3
|
45
45
|
type: :development
|
46
46
|
prerelease: false
|
47
|
-
version_requirements: *
|
47
|
+
version_requirements: *19014340
|
48
48
|
- !ruby/object:Gem::Dependency
|
49
49
|
name: rcov
|
50
|
-
requirement: &
|
50
|
+
requirement: &19011420 !ruby/object:Gem::Requirement
|
51
51
|
none: false
|
52
52
|
requirements:
|
53
53
|
- - ! '>='
|
@@ -55,10 +55,10 @@ dependencies:
|
|
55
55
|
version: '0'
|
56
56
|
type: :development
|
57
57
|
prerelease: false
|
58
|
-
version_requirements: *
|
58
|
+
version_requirements: *19011420
|
59
59
|
- !ruby/object:Gem::Dependency
|
60
60
|
name: sqlite3
|
61
|
-
requirement: &
|
61
|
+
requirement: &18984160 !ruby/object:Gem::Requirement
|
62
62
|
none: false
|
63
63
|
requirements:
|
64
64
|
- - ! '>='
|
@@ -66,10 +66,10 @@ dependencies:
|
|
66
66
|
version: '0'
|
67
67
|
type: :development
|
68
68
|
prerelease: false
|
69
|
-
version_requirements: *
|
69
|
+
version_requirements: *18984160
|
70
70
|
- !ruby/object:Gem::Dependency
|
71
71
|
name: rmagick
|
72
|
-
requirement: &
|
72
|
+
requirement: &18981880 !ruby/object:Gem::Requirement
|
73
73
|
none: false
|
74
74
|
requirements:
|
75
75
|
- - ! '>='
|
@@ -77,7 +77,7 @@ dependencies:
|
|
77
77
|
version: '0'
|
78
78
|
type: :development
|
79
79
|
prerelease: false
|
80
|
-
version_requirements: *
|
80
|
+
version_requirements: *18981880
|
81
81
|
description: Including stuff for HTTP, SSH and much more.
|
82
82
|
email: k@spernj.org
|
83
83
|
executables: []
|
@@ -340,7 +340,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
340
340
|
version: '0'
|
341
341
|
segments:
|
342
342
|
- 0
|
343
|
-
hash:
|
343
|
+
hash: -4483091133869871339
|
344
344
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
345
345
|
none: false
|
346
346
|
requirements:
|