wongi-engine 0.3.2 → 0.3.3

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