wongi-engine 0.4.0.pre.alpha9 → 0.4.0.pre.alpha10

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
  SHA256:
3
- metadata.gz: 8b8990e295e71589c0de4e5ab8ab947e4a88d6de25df75d15ea219532cd923e7
4
- data.tar.gz: ba314dbc0885f56c74b876d00f3b903836931a0b959b23708375c778692801c9
3
+ metadata.gz: 0dc2418ab6ffabbb410e83db899bed0479fc5912ec24bc6bf5c01f40ca306aa1
4
+ data.tar.gz: 4f22e6752c8dfe568eaae071cc7d10b062dee6ddaf8c8ddb2dc201773b7378a1
5
5
  SHA512:
6
- metadata.gz: 34593896193fc9eb110f04794c2f33ae43f53e6061bf557e16320f980646999573002e186f4ef591388b16692419eb478aaab80e03250f500a64c407fc227333
7
- data.tar.gz: 97a14c3519ca53e3cbc665ff9d682ff41cc8b20a3d3e4f6de238c67c4a9ad6ac4d31dc90c605b83c205f5e469f8394a8d501377ea476c484291542fa6bd1c371
6
+ metadata.gz: 6f0d335b747ae2495a2cb259d4d538cb4b66f7f97fabb41ffd8c7dc78750df54c04990e60eea1913155388488d867e7090c71aee1ae647d0fdcf20447c455e00
7
+ data.tar.gz: d1db63d17198447da1f6761897cda0e5db7af1dc880203146e0deae4c30de89fe0486049ece689e1394d773a9bac79c67cc85ecf45a2655eee84ec25eab7855a
@@ -57,9 +57,8 @@ module Wongi::Engine
57
57
  [tokens]
58
58
  end
59
59
 
60
-
61
60
  groups.each do |tokens|
62
- aggregated = self.aggregate.call(tokens.map(&self.map))
61
+ aggregated = aggregate.call(tokens.map(&map))
63
62
  assignment = { var => aggregated }
64
63
  children = child ? [child] : self.children
65
64
  tokens.each do |token|
@@ -3,8 +3,6 @@ require "set"
3
3
  module Wongi::Engine
4
4
  module DSL::Action
5
5
  class StatementGenerator < BaseAction
6
- GeneratorOrigin = Struct.new(:token, :action)
7
-
8
6
  attr_reader :template
9
7
  private :template
10
8
 
@@ -23,9 +21,7 @@ module Wongi::Engine
23
21
  production.tracer.trace(action: self, wme: wme) if production.tracer
24
22
 
25
23
  if should_assert?(wme, token)
26
- origin = GeneratorOrigin.new(token, self)
27
- token.generated_wmes << wme
28
- overlay.assert(wme, generator: origin)
24
+ overlay.assert(wme, generator: token)
29
25
  end
30
26
  end
31
27
 
@@ -47,24 +43,14 @@ module Wongi::Engine
47
43
 
48
44
  next unless token.wme
49
45
 
50
- overlay.generators(token.wme).each do |generator|
51
- tokens_to_consider.push(generator.token) unless considered_tokens.include?(generator.token)
46
+ overlay.generators(token.wme).each do |generating_token|
47
+ tokens_to_consider.push(generating_token) unless considered_tokens.include?(generating_token)
52
48
  end
53
49
  end
54
50
 
55
51
  # we could not prove that the new WME should not be asserted
56
52
  true
57
53
  end
58
-
59
- def deexecute(token)
60
- # p deexecute: {token:}
61
- origin = GeneratorOrigin.new(token, self)
62
-
63
- generated = token.generated_wmes.dup # select { overlay.generators(_1).include?(origin) }
64
- generated.each do |wme|
65
- overlay.retract wme, generator: origin
66
- end
67
- end
68
54
  end
69
55
  end
70
56
  end
@@ -0,0 +1,32 @@
1
+ module Wongi::Engine
2
+ class GeneratorTracker
3
+ def initialize
4
+ @by_wme = Hash.new { |h, k| h[k] = Set.new }
5
+ @by_token = Hash.new { |h, k| h[k] = Set.new }
6
+ end
7
+
8
+ def add(wme, token)
9
+ @by_wme[wme].add(token)
10
+ @by_token[token.object_id].add(wme)
11
+ end
12
+
13
+ def for_wme(wme)
14
+ @by_wme.has_key?(wme) ? @by_wme[wme] : Set.new
15
+ end
16
+
17
+ def for_token(token)
18
+ @by_token.has_key?(token.object_id) ? @by_token[token.object_id] : Set.new
19
+ end
20
+
21
+ def remove_token(token)
22
+ wmes = for_token(token)
23
+ @by_token.delete(token.object_id)
24
+ wmes.each do |wme|
25
+ next unless @by_wme.key?(wme)
26
+
27
+ @by_wme[wme].delete(token)
28
+ @by_wme.delete(wme) if @by_wme[wme].empty?
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,80 @@
1
+ module Wongi::Engine
2
+ class JoinResults
3
+ attr_reader :by_wme, :by_token, :hidden
4
+ private :by_wme, :by_token
5
+ private :hidden
6
+ def initialize
7
+ @by_wme = Hash.new { |h, k| h[k] = {} }
8
+ @by_token = Hash.new { |h, k| h[k] = {} }
9
+ @hidden = {}
10
+ end
11
+
12
+ def for(wme: nil, token: nil)
13
+ if wme
14
+ by_wme.key?(wme) ? by_wme[wme].keys : []
15
+ elsif token
16
+ by_token.key?(token.object_id) ? by_token[token.object_id].keys : []
17
+ else
18
+ []
19
+ end
20
+ end
21
+
22
+ def has?(jr)
23
+ by_wme.key?(jr.wme) && by_wme[jr.wme].key?(jr)
24
+ end
25
+
26
+ def hidden?(jr)
27
+ hidden.key?(jr)
28
+ end
29
+
30
+ def add(jr)
31
+ if hidden.key?(jr)
32
+ hidden.delete(jr)
33
+ else
34
+ by_wme[jr.wme][jr] = true
35
+ by_token[jr.token.object_id][jr] = true
36
+ end
37
+ end
38
+
39
+ def remove(jr)
40
+ unless has?(jr)
41
+ hide(jr)
42
+ return
43
+ end
44
+
45
+ if by_wme.key?(jr.wme)
46
+ by_wme[jr.wme].delete(jr)
47
+ if by_wme[jr.wme].empty?
48
+ by_wme.delete(jr.wme)
49
+ end
50
+ end
51
+
52
+ if by_token.key?(jr.token.object_id)
53
+ by_token[jr.token.object_id].delete(jr)
54
+ if by_token[jr.token.object_id].empty?
55
+ by_token.delete(jr.token.object_id)
56
+ end
57
+ end
58
+ end
59
+
60
+ def hide(jr)
61
+ hidden[jr] = true
62
+ end
63
+
64
+ def remove_token(token)
65
+ return unless by_token.key?(token.object_id)
66
+
67
+ by_token[token.object_id].keys.each do |jr|
68
+ remove(jr)
69
+ end
70
+ end
71
+
72
+ def remove_wme(wme)
73
+ return unless by_wme.key?(wme)
74
+
75
+ by_wme[wme].keys do |jr|
76
+ remove(jr)
77
+ end
78
+ end
79
+ end
80
+ end
@@ -67,7 +67,6 @@ module Wongi::Engine
67
67
  block.call(child)
68
68
  ensure
69
69
  remove_overlay(child)
70
- child.dispose!
71
70
  end
72
71
 
73
72
  def alphas
@@ -1,92 +1,13 @@
1
1
  module Wongi::Engine
2
2
  class Overlay
3
- class JoinResults
4
- attr_reader :by_wme, :by_token, :hidden
5
- private :by_wme, :by_token
6
- private :hidden
7
- def initialize
8
- @by_wme = Hash.new { |h, k| h[k] = {} }
9
- @by_token = Hash.new { |h, k| h[k] = {} }
10
- @hidden = {}
11
- end
12
-
13
- def for(wme: nil, token: nil)
14
- if wme
15
- by_wme.key?(wme) ? by_wme[wme].keys : []
16
- elsif token
17
- by_token.key?(token.object_id) ? by_token[token.object_id].keys : []
18
- else
19
- []
20
- end
21
- end
22
-
23
- def has?(jr)
24
- by_wme.key?(jr.wme) && by_wme[jr.wme].key?(jr)
25
- end
26
-
27
- def hidden?(jr)
28
- hidden.key?(jr)
29
- end
30
-
31
- def add(jr)
32
- if hidden.key?(jr)
33
- hidden.delete(jr)
34
- else
35
- by_wme[jr.wme][jr] = true
36
- by_token[jr.token.object_id][jr] = true
37
- end
38
- end
39
-
40
- def remove(jr)
41
- unless has?(jr)
42
- hide(jr)
43
- return
44
- end
45
-
46
- if by_wme.key?(jr.wme)
47
- by_wme[jr.wme].delete(jr)
48
- if by_wme[jr.wme].empty?
49
- by_wme.delete(jr.wme)
50
- end
51
- end
52
-
53
- if by_token.key?(jr.token.object_id)
54
- by_token[jr.token.object_id].delete(jr)
55
- if by_token[jr.token.object_id].empty?
56
- by_token.delete(jr.token.object_id)
57
- end
58
- end
59
- end
60
-
61
- def hide(jr)
62
- hidden[jr] = true
63
- end
64
3
 
65
- def remove_token(token)
66
- return unless by_token.key?(token.object_id)
67
-
68
- by_token[token.object_id].keys.each do |jr|
69
- remove(jr)
70
- end
71
- end
72
-
73
- def remove_wme(wme)
74
- return unless by_wme.key?(wme)
75
-
76
- by_wme[wme].keys do |jr|
77
- remove(jr)
78
- end
79
- end
80
- end
81
-
82
- attr_reader :rete, :parent, :wmes, :tokens, :indexes, :queue, :hidden_parent_wmes, :hidden_parent_tokens, :wme_generators, :hidden_parent_wme_generators, :wme_manual, :hidden_parent_wme_manual, :neg_join_results, :opt_join_results, :ncc_tokens, :ncc_tokens_owner, :hidden_ncc_tokens
4
+ attr_reader :rete, :parent, :wmes, :tokens, :indexes, :queue, :hidden_parent_wmes, :hidden_parent_tokens, :generator_tracker, :wme_manual, :hidden_parent_wme_manual, :neg_join_results, :opt_join_results, :ncc_tokens, :ncc_tokens_owner, :hidden_ncc_tokens
83
5
  private :wmes, :tokens
84
6
  private :indexes
85
7
  private :queue
86
8
  private :hidden_parent_wmes
87
9
  private :hidden_parent_tokens
88
- private :wme_generators
89
- private :hidden_parent_wme_generators
10
+ private :generator_tracker
90
11
  private :wme_manual
91
12
  private :hidden_parent_wme_manual
92
13
  private :neg_join_results
@@ -111,10 +32,9 @@ module Wongi::Engine
111
32
  @hidden_parent_wmes = {}
112
33
 
113
34
  @tokens = Hash.new { |h, k| h[k] = [] }
114
- @hidden_parent_tokens = {}
35
+ @hidden_parent_tokens = Set.new
115
36
 
116
- @wme_generators = Hash.new { |h, k| h[k] = [] }
117
- @hidden_parent_wme_generators = {}
37
+ @generator_tracker = GeneratorTracker.new
118
38
 
119
39
  @wme_manual = {}
120
40
  @hidden_parent_wme_manual = {}
@@ -140,14 +60,6 @@ module Wongi::Engine
140
60
  parent.ancestor?(other)
141
61
  end
142
62
 
143
- def dispose!
144
- return if default?
145
-
146
- tokens.each do |_node, tokens|
147
- tokens.each(&:dispose!)
148
- end
149
- end
150
-
151
63
  def <<(thing)
152
64
  case thing
153
65
  when Array
@@ -180,19 +92,23 @@ module Wongi::Engine
180
92
  def run_queue
181
93
  until queue.empty?
182
94
  operation, wme, options = queue.shift
95
+
183
96
  case operation
184
97
  when :assert
185
- wme = find_ignoring_hidden(wme) || wme
98
+ existing_wme = find_ignoring_hidden(wme)
99
+ wme = existing_wme || wme
186
100
  visible = !find(wme).nil?
187
101
  add_wme(wme, **options)
188
102
  rete.real_assert(wme) unless visible
103
+
189
104
  when :retract
190
105
  wme = find_ignoring_hidden(wme)
191
- return if wme.nil? # it's perhaps better to return quietly, because complicated cascades may delete a WME while we're going through the queue
106
+ if wme # it's perhaps better to return quietly, because complicated cascades may delete a WME while we're going through the queue
107
+ visible = !find(wme).nil?
108
+ remove_wme(wme, **options)
109
+ rete.real_retract(wme) if visible
110
+ end
192
111
 
193
- visible = !find(wme).nil?
194
- remove_wme(wme, **options)
195
- rete.real_retract(wme) if visible
196
112
  end
197
113
  end
198
114
  end
@@ -248,28 +164,26 @@ module Wongi::Engine
248
164
  generators(wme).any?
249
165
  end
250
166
 
251
- def generated_by?(wme, gen)
252
- own_generated_by?(wme, gen) ||
167
+ def generators(wme)
168
+ own_generators = generator_tracker.for_wme(wme)
169
+ parent_generators =
253
170
  if parent
254
- parent.generated_by?(wme, gen) && !hidden_parent_wme_generators.key?(gen)
171
+ parent.generators(wme).reject { |t| hidden_token?(t) }.to_set
255
172
  else
256
- false
173
+ Set.new
257
174
  end
175
+ own_generators.union(parent_generators)
258
176
  end
259
177
 
260
- private def own_generated_by?(wme, gen)
261
- wme_generators.key?(wme) && wme_generators[wme].include?(gen)
262
- end
263
-
264
- def generators(wme)
265
- own_generators = wme_generators.key?(wme) ? wme_generators[wme] : []
266
- parent_generators =
267
- if parent
268
- parent.generators(wme).reject { |g| hidden_parent_wme_generators.key?(g) }
178
+ def generated_wmes(token)
179
+ own_wmes = generator_tracker.for_token(token)
180
+ parent_wmes =
181
+ if parent && !hidden_token?(token)
182
+ parent.generated_wmes(token).reject { hidden_wme?(_1) }.to_set
269
183
  else
270
- []
184
+ Set.new
271
185
  end
272
- own_generators + parent_generators
186
+ own_wmes.union(parent_wmes)
273
187
  end
274
188
 
275
189
  private def own_manual?(wme)
@@ -277,7 +191,7 @@ module Wongi::Engine
277
191
  end
278
192
 
279
193
  private def own_generated?(wme)
280
- wme_generators.key?(wme) && wme_generators[wme].any?
194
+ generator_tracker.for_wme(wme).any?
281
195
  end
282
196
 
283
197
  private def find_wme(wme)
@@ -285,9 +199,11 @@ module Wongi::Engine
285
199
  end
286
200
 
287
201
  private def find_own_wme(wme)
288
- wmes.include?(wme) ? wme : nil
202
+ has_own_wme?(wme) ? wme : nil
289
203
  end
290
204
 
205
+ private def has_own_wme?(wme) = wmes.include?(wme)
206
+
291
207
  private def find_parents_wme(wme)
292
208
  return unless parent
293
209
 
@@ -332,32 +248,17 @@ module Wongi::Engine
332
248
 
333
249
  # if we previously hid this locally, unhide it
334
250
  hidden_parent_wmes.delete(wme)
335
- if generator
336
- hidden_parent_wme_generators.delete(generator)
337
- else
338
- hidden_parent_wme_manual.delete(wme)
339
- end
340
251
 
341
- if find_own_wme(wme)
342
- if generator
343
- wme_generators[wme] << generator unless own_generated_by?(wme, generator)
344
- else
345
- wme_manual[wme] = true
346
- end
347
- elsif find_parents_wme(wme)
348
- if generator
349
- wme_generators[wme] << generator unless generated_by?(wme, generator)
350
- else
351
- wme_manual[wme] = true unless manual?(wme)
352
- end
353
- else
252
+ unless has_own_wme?(wme)
354
253
  wmes.add(wme)
355
254
  indexes.each { _1.add(wme) }
356
- if generator
357
- wme_generators[wme] << generator
358
- else
359
- wme_manual[wme] = true
360
- end
255
+ end
256
+
257
+ if generator
258
+ generator_tracker.add(wme, generator)
259
+ else
260
+ hidden_parent_wme_manual.delete(wme)
261
+ wme_manual[wme] = true
361
262
  end
362
263
  end
363
264
 
@@ -365,15 +266,9 @@ module Wongi::Engine
365
266
  # p remove_wme: { wme:, generator: !!generator }
366
267
 
367
268
  if find_own_wme(wme)
368
- if generator
369
- if own_generated_by?(wme, generator)
370
- wme_generators[wme].delete(generator)
371
- wme_generators.delete(wme) if wme_generators[wme].empty?
372
- end
373
- elsif own_manual?(wme)
374
- wme_manual.delete(wme)
375
- end
269
+ wme_manual.delete(wme) if generator.nil?
376
270
 
271
+ # no remaining reasons to keep this WME around
377
272
  if !own_generated?(wme) && !own_manual?(wme)
378
273
  wmes.delete(wme)
379
274
  indexes.each { _1.remove(wme) }
@@ -388,23 +283,10 @@ module Wongi::Engine
388
283
 
389
284
  # must be parents' then
390
285
 
391
- if generator
392
- # first, delete local
393
- if own_generated_by?(wme, generator)
394
- wme_generators[wme].delete(generator)
395
- wme_generators.delete(wme) if wme_generators[wme].empty?
396
- end
397
- # if we're still generated, hide parents'
398
- if generated_by?(wme, generator)
399
- hidden_parent_wme_generators[generator] = true
400
- end
401
- else
402
- if own_manual?(wme)
403
- wme_manual.delete(wme)
404
- end
405
- if manual?(wme)
406
- hidden_parent_wme_manual[wme] = true
407
- end
286
+ if generator.nil?
287
+ wme_manual.delete(wme)
288
+ # if still manual, it must be from the parent
289
+ hidden_parent_wme_manual[wme] = true if manual?(wme)
408
290
  end
409
291
 
410
292
  if !manual?(wme) && !generated?(wme)
@@ -416,7 +298,8 @@ module Wongi::Engine
416
298
  # p add_token: {token:}
417
299
  # TODO: is this really likely to happen? we don't normally restore deleted tokens but rather create new ones in the activation
418
300
  if hidden_token?(token)
419
- hidden_parent_tokens.delete(token.object_id)
301
+ puts "odd case"
302
+ unhide_token(token)
420
303
  return
421
304
  end
422
305
 
@@ -425,9 +308,12 @@ module Wongi::Engine
425
308
 
426
309
  def remove_token(token)
427
310
  # p remove_token: {token:}
311
+
312
+ wmes = generated_wmes(token)
313
+
428
314
  if own_node_tokens(token.node).find { _1.equal?(token) }.nil?
429
315
  if parents_node_tokens(token.node).find { _1.equal?(token) }
430
- hidden_parent_tokens[token.object_id] = true
316
+ hide_token(token)
431
317
 
432
318
  # do not hide JRs from the WME side: it will be done in the alpha deactivation and the JRs have to stay visible until then
433
319
  parent_neg_join_results_for(token: token).each { neg_join_results.hide(_1) }
@@ -437,10 +323,12 @@ module Wongi::Engine
437
323
  hidden_ncc_tokens[token][ncc] = true
438
324
  end
439
325
  end
440
- return
326
+ else
327
+ remove_own_token(token)
441
328
  end
442
329
 
443
- remove_own_token(token)
330
+ wmes.each { retract(_1, generator: token) }
331
+
444
332
  end
445
333
 
446
334
  def remove_own_token(token)
@@ -448,6 +336,7 @@ module Wongi::Engine
448
336
  tokens[token.node.object_id].delete(token)
449
337
  neg_join_results.remove_token(token)
450
338
  opt_join_results.remove_token(token)
339
+ generator_tracker.remove_token(token)
451
340
 
452
341
  # if this is an NCC partner token
453
342
  if (owner = ncc_tokens_owner[token])
@@ -465,9 +354,6 @@ module Wongi::Engine
465
354
  end
466
355
  ncc_tokens.delete(token)
467
356
  hidden_ncc_tokens.delete(token)
468
-
469
- # we know we are the owner, and nobody wants it anymore, so this is the safe place to do it
470
- token.dispose!
471
357
  end
472
358
 
473
359
  def node_tokens(beta)
@@ -482,7 +368,7 @@ module Wongi::Engine
482
368
 
483
369
  private def parents_node_tokens(beta)
484
370
  if parent
485
- parent.node_tokens(beta).reject { hidden_parent_tokens.key?(_1.object_id) }
371
+ parent.node_tokens(beta).reject { hidden_token?(_1) }
486
372
  else
487
373
  []
488
374
  end
@@ -581,7 +467,15 @@ module Wongi::Engine
581
467
  end
582
468
 
583
469
  private def hidden_token?(token)
584
- hidden_parent_tokens.key?(token.object_id)
470
+ hidden_parent_tokens.include?(token.object_id)
471
+ end
472
+
473
+ private def hide_token(token)
474
+ hidden_parent_tokens.add(token.object_id)
475
+ end
476
+
477
+ private def unhide_token(token)
478
+ hidden_parent_tokens.delete(token.object_id)
585
479
  end
586
480
  end
587
481
  end
@@ -2,16 +2,13 @@ require 'set'
2
2
 
3
3
  module Wongi::Engine
4
4
  class Token
5
- attr_reader :wme, :node, :generated_wmes, :parents
5
+ attr_reader :wme, :node, :parents
6
6
 
7
7
  def initialize(node, parents, wme, assignments = {})
8
8
  @node = node
9
9
  @parents = Set.new(Array(parents))
10
10
  @wme = wme
11
11
  @assignments = assignments
12
- @deleted = false
13
- @ncc_results = []
14
- @generated_wmes = []
15
12
  end
16
13
 
17
14
  def ancestors
@@ -66,23 +63,6 @@ module Wongi::Engine
66
63
  to_s
67
64
  end
68
65
 
69
- # def destroy
70
- # deleted!
71
- # end
72
-
73
- def dispose!
74
- # parent.children.delete(self) if parent
75
- # @parent = nil
76
- @wme = nil
77
- end
78
-
79
- # for neg feedback loop protection
80
- # def generated?(wme)
81
- # return true if generated_wmes.any? { |w| w == wme }
82
- #
83
- # children.any? { |t| t.generated? wme }
84
- # end
85
-
86
66
  protected
87
67
 
88
68
  def all_assignments
@@ -91,17 +71,4 @@ module Wongi::Engine
91
71
  end.merge(@assignments)
92
72
  end
93
73
  end
94
-
95
- class FakeToken < Token
96
- def initialize(token, wme, assignments) # rubocop:disable Lint/MissingSuper
97
- @parent = token
98
- @wme = wme
99
- @assignments = assignments
100
- # @children = []
101
- @neg_join_results = []
102
- @opt_join_results = []
103
- @ncc_results = []
104
- @generated_wmes = []
105
- end
106
- end
107
74
  end
@@ -1,5 +1,5 @@
1
1
  module Wongi
2
2
  module Engine
3
- VERSION = "0.4.0-alpha9".freeze
3
+ VERSION = "0.4.0-alpha10".freeze
4
4
  end
5
5
  end
data/lib/wongi-engine.rb CHANGED
@@ -28,6 +28,8 @@ require 'wongi-engine/beta'
28
28
  require 'wongi-engine/dsl'
29
29
  require 'wongi-engine/ruleset'
30
30
  require 'wongi-engine/compiler'
31
+ require 'wongi-engine/join_results'
32
+ require 'wongi-engine/generator_tracker'
31
33
  require 'wongi-engine/overlay'
32
34
  require 'wongi-engine/enumerators'
33
35
  require 'wongi-engine/network'
data/spec/overlay_spec.rb CHANGED
@@ -136,11 +136,6 @@ describe Wongi::Engine::Overlay do
136
136
 
137
137
  overlay.retract(wme)
138
138
  expect(overlay.find(wme)).to be_nil
139
- expect(child1.find(wme)).to be_nil
140
- expect(child2.find(wme)).to be_nil
141
-
142
- child1.assert(wme)
143
- expect(overlay.find(wme)).to be_nil
144
139
  expect(child1.find(wme)).to eq(wme)
145
140
  expect(child2.find(wme)).to eq(wme)
146
141
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wongi-engine
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.0.pre.alpha9
4
+ version: 0.4.0.pre.alpha10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valeri Sokolov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-11-03 00:00:00.000000000 Z
11
+ date: 2022-11-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -139,7 +139,9 @@ files:
139
139
  - lib/wongi-engine/filter/inequality_test.rb
140
140
  - lib/wongi-engine/filter/less_than_or_equal_test.rb
141
141
  - lib/wongi-engine/filter/less_than_test.rb
142
+ - lib/wongi-engine/generator_tracker.rb
142
143
  - lib/wongi-engine/graph.rb
144
+ - lib/wongi-engine/join_results.rb
143
145
  - lib/wongi-engine/network.rb
144
146
  - lib/wongi-engine/network/collectable.rb
145
147
  - lib/wongi-engine/network/debug.rb