wongi-engine 0.2.1 → 0.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ae02e0d5aacdbab891830af73becded445cda3c2
4
- data.tar.gz: 7410f6c1af9a8899d2b67f9e07815348e20b0248
3
+ metadata.gz: 21764b2d065e6147a4f93f900cf325ea51e0d402
4
+ data.tar.gz: 644d41b0bb6fc5a02dce1fc270a256dce3bae1a1
5
5
  SHA512:
6
- metadata.gz: d30014e3145febf0ed88ff363dfc019392572917413d398015e66a7290ec37ac2906f1fe1a9ea8b1c441f89afc4cfa8fc49f4db6e7ac365a70dbdf9b71dc23c6
7
- data.tar.gz: 86b5e6adfe13f547001413ff898207f64f3e94eadaae80dc11744141dbd9dd916a34d55f23abd435114378f324f4af8a281650b678cb13a6c0baafa1d1e33bdd
6
+ metadata.gz: c9bfb86fd99d92188f33bf1ccb5e70b58fdbe5a275239676831ece2fb48bfc3d209adf73415e2bc78adfdf198ebb2d3c614585257adc8be0839e7f306d78d454
7
+ data.tar.gz: adcde36cadeb3552fa0446e1e3c389f3bc35395ba5593fa3e95cced44bbe97a1ea4444ed98e4b8309e3c0da3b3495af4da94029b841a08f4a73042beb545ba78
data/.hgtags CHANGED
@@ -2,3 +2,4 @@ b1dfd471a2a9e4a57f0e4932ac184faa5d6fa5b5 v0.1.0.alpha1
2
2
  cf7d0e690fb65541b19074e132813c79a36d12c5 v0.1.0
3
3
  accab6252d5746dafe847935ad55f8500594d0cc v0.1.1
4
4
  0000000000000000000000000000000000000000 v0.1.1
5
+ 80964eb067a8445980b27e871731ff1274bd7be2 v0.2.1
data/README.md CHANGED
@@ -24,6 +24,10 @@ The Rete implementation in this library largely follows the outline presented in
24
24
 
25
25
  ## Changelog
26
26
 
27
+ ### 0.2.2
28
+
29
+ * fixed retention of WMEs added to an overlay
30
+
27
31
  ### 0.2.1
28
32
 
29
33
  * data overlay fixes
@@ -40,7 +40,7 @@ module Wongi::Engine
40
40
  def <<(thing)
41
41
  case thing
42
42
  when Array
43
- assert WME.new(*thing)
43
+ assert WME.new(*thing).tap { |wme| wme.overlay = self }
44
44
  when WME
45
45
  assert(thing)
46
46
  else
@@ -53,7 +53,6 @@ module Wongi::Engine
53
53
  self.beta_top.seed
54
54
  self.queries = {}
55
55
  self.results = {}
56
- @cache = {}
57
56
  @revns = {}
58
57
 
59
58
  @productions = { }
@@ -124,14 +123,12 @@ module Wongi::Engine
124
123
  wme = wme.import_into self
125
124
  end
126
125
 
127
- if existing = @cache[wme]
126
+ source = best_alpha(wme)
127
+ if existing = find(wme.subject, wme.predicate, wme.object)
128
128
  existing.manual! if wme.manual?
129
129
  return
130
130
  end
131
131
 
132
- # puts "ASSERTING #{wme}"
133
- @cache[wme] = wme
134
-
135
132
  alphas_for( wme ).each { |a| a.activate wme }
136
133
 
137
134
  wme
@@ -139,8 +136,7 @@ module Wongi::Engine
139
136
 
140
137
  # @private
141
138
  def real_retract wme, options
142
- real = @cache[wme]
143
-
139
+ real = find(wme.subject, wme.predicate, wme.object)
144
140
  return if real.nil?
145
141
  if real.generated? # still some generator tokens left
146
142
  if real.manual?
@@ -154,8 +150,6 @@ module Wongi::Engine
154
150
  end
155
151
  end
156
152
 
157
- @cache.delete(real)
158
-
159
153
  alphas_for( real ).each { |a| a.deactivate real }
160
154
  end
161
155
 
@@ -206,7 +200,7 @@ module Wongi::Engine
206
200
  else
207
201
  case something
208
202
  when Array
209
- assert WME.new( *something )
203
+ assert WME.new( *something ).tap { |wme| wme.overlay = default_overlay }
210
204
  when WME
211
205
  assert something
212
206
  # when Wongi::RDF::Statement
@@ -302,7 +296,7 @@ module Wongi::Engine
302
296
  end
303
297
 
304
298
  def exists? wme
305
- @cache[ wme ]
299
+ find(wme.subject, wme.predicate, wme.object)
306
300
  end
307
301
 
308
302
  def each *args
@@ -1,5 +1,5 @@
1
1
  module Wongi
2
2
  module Engine
3
- VERSION = "0.2.1"
3
+ VERSION = "0.2.2"
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wongi-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valeri Sokolov