wongi-engine 0.3.2 → 0.3.3

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
- SHA1:
3
- metadata.gz: 31288187561162fa80c551275812a33dac1b1ce0
4
- data.tar.gz: d296f211ba4575ccab21182d03d9588e2910482f
2
+ SHA256:
3
+ metadata.gz: 168c5af78ad5c603419ea1f51db4106eaa5da43fb36c16e5db4921331e9f5907
4
+ data.tar.gz: 418181fcd1bcdeeaf9733bdc4e23d391004283907e02345850893235876244e0
5
5
  SHA512:
6
- metadata.gz: c63c6fa2e5ff49de30f6c6761c20df5c8d1935e51a460e8a9c8f4ae898e710a88810e630c127dd18ec83c73a490d718f4076b48b367961f08343f8bfba61bcc2
7
- data.tar.gz: 404bbafd48cb571a8baaa657d6af5c4cec93492f54321e61e863f009e3aed867b1165b4e1c5afff9422803de7451c7ed25ba8c9d9721ebb1c9c63cccb60b428f
6
+ metadata.gz: 26d62f6f82144391e1e2579567a657c68b51573937302db721e41ddab07baa6c85b43f39826bc2e4bac4ef05bd753152bee2d4f5368a9075f76b399d51394fa5
7
+ data.tar.gz: 16ca315ea31b7ca33bfc0a7c5b7ec7b0192a2d8701a54bdb6c051520b49cdd395d590a2f65b6f4b3707a13996a8065c75688b0508578efb746182a54a9a20c82
@@ -1,6 +1,6 @@
1
1
  module Wongi
2
2
  module Engine
3
-
3
+
4
4
  class ProductionNode < BetaMemory
5
5
 
6
6
  attr_accessor :tracer
@@ -32,7 +32,7 @@ module Wongi::Engine
32
32
  elsif @deaction.respond_to? :call
33
33
  @deaction.call token
34
34
  elsif @deaction.respond_to? :deexecute
35
- @deaction.execute token
35
+ @deaction.deexecute token
36
36
  end
37
37
  end
38
38
 
@@ -43,7 +43,7 @@ module Wongi::Engine
43
43
  elsif @reaction.respond_to? :call
44
44
  @reaction.call token, newtoken
45
45
  elsif @reaction.respond_to? :reexecute
46
- @reaction.execute token, newtoken
46
+ @reaction.reexecute token, newtoken
47
47
  end
48
48
  end
49
49
 
@@ -1,5 +1,5 @@
1
1
  module Wongi
2
2
  module Engine
3
- VERSION = "0.3.2"
3
+ VERSION = "0.3.3"
4
4
  end
5
5
  end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+
4
+ describe 'action classes' do
5
+
6
+ include Wongi::Engine::DSL
7
+
8
+ let :engine do
9
+ Wongi::Engine.create
10
+ end
11
+
12
+ let :action_class do
13
+ Class.new do
14
+ class << self
15
+ attr_accessor :execute_body
16
+ attr_accessor :deexecute_body
17
+ end
18
+
19
+ def execute(token)
20
+ self.class.execute_body.call(token)
21
+ end
22
+
23
+ def deexecute(token)
24
+ self.class.deexecute_body.call(token)
25
+ end
26
+ end
27
+ end
28
+
29
+ it 'should have appropriate callbacks executed' do
30
+
31
+ executed = 0
32
+ deexecuted = 0
33
+
34
+ klass = action_class
35
+
36
+ klass.execute_body = lambda do |token|
37
+ executed += 1
38
+ end
39
+ klass.deexecute_body = lambda do |token|
40
+ deexecuted += 1
41
+ end
42
+
43
+ engine << rule {
44
+ forall {
45
+ has :A, :x, :B
46
+ }
47
+ make {
48
+ action klass
49
+ }
50
+ }
51
+
52
+ engine << [1, :x, 2]
53
+ expect(executed).to be == 1
54
+ expect(deexecuted).to be == 0
55
+
56
+ engine.retract [1, :x, 2]
57
+ expect(executed).to be == 1
58
+ expect(deexecuted).to be == 1
59
+
60
+ end
61
+
62
+ 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.3.2
4
+ version: 0.3.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Valeri Sokolov
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-21 00:00:00.000000000 Z
11
+ date: 2018-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -144,6 +144,7 @@ files:
144
144
  - lib/wongi-engine/version.rb
145
145
  - lib/wongi-engine/wme.rb
146
146
  - lib/wongi-engine/wme_match_data.rb
147
+ - spec/action_class_spec.rb
147
148
  - spec/beta_node_spec.rb
148
149
  - spec/bug_specs/issue_4_spec.rb
149
150
  - spec/dataset_spec.rb
@@ -186,11 +187,12 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
187
  version: '0'
187
188
  requirements: []
188
189
  rubyforge_project:
189
- rubygems_version: 2.6.10
190
+ rubygems_version: 2.7.7
190
191
  signing_key:
191
192
  specification_version: 4
192
193
  summary: A forward-chaining rule engine in pure Ruby.
193
194
  test_files:
195
+ - spec/action_class_spec.rb
194
196
  - spec/beta_node_spec.rb
195
197
  - spec/bug_specs/issue_4_spec.rb
196
198
  - spec/dataset_spec.rb