knjrbfw 0.0.22 → 0.0.23

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. data/VERSION +1 -1
  2. data/knjrbfw.gemspec +1 -1
  3. data/lib/knj/objects.rb +1 -13
  4. data/lib/knj/wref.rb +28 -14
  5. metadata +14 -14
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.22
1
+ 0.0.23
data/knjrbfw.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{knjrbfw}
8
- s.version = "0.0.22"
8
+ s.version = "0.0.23"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Kasper Johansen"]
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.22
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: &9288920 !ruby/object:Gem::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: *9288920
25
+ version_requirements: *19017160
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: bundler
28
- requirement: &9287320 !ruby/object:Gem::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: *9287320
36
+ version_requirements: *19015640
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: jeweler
39
- requirement: &9286040 !ruby/object:Gem::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: *9286040
47
+ version_requirements: *19014340
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: rcov
50
- requirement: &9283160 !ruby/object:Gem::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: *9283160
58
+ version_requirements: *19011420
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: sqlite3
61
- requirement: &9274360 !ruby/object:Gem::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: *9274360
69
+ version_requirements: *18984160
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rmagick
72
- requirement: &9272380 !ruby/object:Gem::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: *9272380
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: 4024232458880246262
343
+ hash: -4483091133869871339
344
344
  required_rubygems_version: !ruby/object:Gem::Requirement
345
345
  none: false
346
346
  requirements: