wongi-engine 0.2.1 → 0.2.2

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.
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