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

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