cirrocumulus 0.6.1 → 0.6.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.
data/.idea/workspace.xml CHANGED
@@ -2,8 +2,11 @@
2
2
  <project version="4">
3
3
  <component name="ChangeListManager">
4
4
  <list default="true" id="e3b220a8-b188-4d05-b90e-58a7fdef7470" name="Default" comment="">
5
+ <change type="DELETED" beforePath="$PROJECT_DIR$/lib/test.rb" afterPath="" />
6
+ <change type="DELETED" beforePath="$PROJECT_DIR$/lib/test2.rb" afterPath="" />
5
7
  <change type="MODIFICATION" beforePath="$PROJECT_DIR$/.idea/workspace.xml" afterPath="$PROJECT_DIR$/.idea/workspace.xml" />
6
- <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/cirrocumulus/agent.rb" afterPath="$PROJECT_DIR$/lib/cirrocumulus/agent.rb" />
8
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb" afterPath="$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb" />
9
+ <change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/cirrocumulus/rules/run_queue.rb" afterPath="$PROJECT_DIR$/lib/cirrocumulus/rules/run_queue.rb" />
7
10
  </list>
8
11
  <ignored path="cirrocumulus.iws" />
9
12
  <ignored path=".idea/workspace.xml" />
@@ -25,53 +28,44 @@
25
28
  </component>
26
29
  <component name="FileEditorManager">
27
30
  <leaf>
28
- <file leaf-file-name="saga.rb" pinned="false" current="false" current-in-tab="false">
29
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/saga.rb">
31
+ <file leaf-file-name="engine.rb" pinned="false" current="true" current-in-tab="true">
32
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb">
30
33
  <provider selected="true" editor-type-id="text-editor">
31
- <state line="43" column="45" selection-start="837" selection-end="837" vertical-scroll-proportion="0.0">
32
- <folding />
33
- </state>
34
- </provider>
35
- </entry>
36
- </file>
37
- <file leaf-file-name="agent.rb" pinned="false" current="true" current-in-tab="true">
38
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent.rb">
39
- <provider selected="true" editor-type-id="text-editor">
40
- <state line="277" column="81" selection-start="8294" selection-end="8294" vertical-scroll-proportion="0.55518943">
34
+ <state line="31" column="34" selection-start="695" selection-end="695" vertical-scroll-proportion="0.48969072">
41
35
  <folding>
42
- <element signature="e#4587#4898#0" expanded="false" />
43
- <element signature="e#4954#5129#0" expanded="false" />
44
- <element signature="e#5169#5401#0" expanded="false" />
45
- <element signature="e#5570#5685#0" expanded="false" />
46
- <element signature="e#5744#6329#0" expanded="false" />
47
- <element signature="e#6374#6440#0" expanded="false" />
48
- <element signature="e#6583#6795#0" expanded="false" />
49
- <element signature="e#6824#7162#0" expanded="false" />
50
- <element signature="e#7168#7246#0" expanded="false" />
36
+ <element signature="e#135#414#0" expanded="false" />
37
+ <element signature="e#1123#1253#0" expanded="false" />
38
+ <element signature="e#1259#1381#0" expanded="false" />
39
+ <element signature="e#1387#1610#0" expanded="false" />
40
+ <element signature="e#1616#1856#0" expanded="false" />
41
+ <element signature="e#2026#2265#0" expanded="false" />
42
+ <element signature="e#3920#4010#0" expanded="false" />
43
+ <element signature="e#4904#4941#0" expanded="false" />
44
+ <element signature="e#6358#6981#0" expanded="false" />
45
+ <element signature="e#8221#8546#0" expanded="false" />
46
+ <element signature="e#9218#10074#0" expanded="false" />
47
+ <element signature="e#10376#10492#0" expanded="false" />
48
+ <element signature="e#10498#10618#0" expanded="false" />
49
+ <element signature="e#10624#10750#0" expanded="false" />
51
50
  </folding>
52
51
  </state>
53
52
  </provider>
54
53
  </entry>
55
54
  </file>
56
- <file leaf-file-name="agent_wrapper.rb" pinned="false" current="false" current-in-tab="false">
57
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent_wrapper.rb">
55
+ <file leaf-file-name="run_queue.rb" pinned="false" current="false" current-in-tab="false">
56
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rules/run_queue.rb">
58
57
  <provider selected="true" editor-type-id="text-editor">
59
- <state line="13" column="0" selection-start="302" selection-end="302" vertical-scroll-proportion="0.0">
58
+ <state line="73" column="0" selection-start="1905" selection-end="1905" vertical-scroll-proportion="0.0">
60
59
  <folding />
61
60
  </state>
62
61
  </provider>
63
62
  </entry>
64
63
  </file>
65
- <file leaf-file-name="ontology.rb" pinned="false" current="false" current-in-tab="false">
66
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/ontology.rb">
64
+ <file leaf-file-name="test.rb" pinned="false" current="false" current-in-tab="false">
65
+ <entry file="file://$PROJECT_DIR$/test/test.rb">
67
66
  <provider selected="true" editor-type-id="text-editor">
68
- <state line="25" column="50" selection-start="536" selection-end="536" vertical-scroll-proportion="0.0">
69
- <folding>
70
- <element signature="e#102#215#0" expanded="false" />
71
- <element signature="e#279#364#0" expanded="false" />
72
- <element signature="e#1242#1404#0" expanded="false" />
73
- <element signature="e#1410#1457#0" expanded="false" />
74
- </folding>
67
+ <state line="37" column="48" selection-start="1106" selection-end="1106" vertical-scroll-proportion="0.0">
68
+ <folding />
75
69
  </state>
76
70
  </provider>
77
71
  </entry>
@@ -89,10 +83,7 @@
89
83
  <component name="IdeDocumentHistory">
90
84
  <option name="changedFiles">
91
85
  <list>
92
- <option value="$PROJECT_DIR$/lib/cirrocumulus/master_agent.rb" />
93
86
  <option value="$PROJECT_DIR$/lib/cirrocumulus/rule_engine.rb" />
94
- <option value="$PROJECT_DIR$/lib/test.rb" />
95
- <option value="$PROJECT_DIR$/lib/cirrocumulus/rules/run_queue.rb" />
96
87
  <option value="$PROJECT_DIR$/lib/cirrocumulus/engine.rb" />
97
88
  <option value="$PROJECT_DIR$/lib/cirrocumulus/agent_wrapper.rb" />
98
89
  <option value="$PROJECT_DIR$/lib/cirrocumulus/message.rb" />
@@ -101,17 +92,20 @@
101
92
  <option value="$PROJECT_DIR$/Rakefile" />
102
93
  <option value="$PROJECT_DIR$/Gemfile" />
103
94
  <option value="$PROJECT_DIR$/lib/cirrocumulus/jabber_bus.rb" />
104
- <option value="$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb" />
105
95
  <option value="$PROJECT_DIR$/lib/cirrocumulus/ontology.rb" />
106
96
  <option value="$PROJECT_DIR$/lib/cirrocumulus/saga.rb" />
107
97
  <option value="$PROJECT_DIR$/lib/cirrocumulus/agent.rb" />
98
+ <option value="$PROJECT_DIR$/lib/test.rb" />
99
+ <option value="$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb" />
100
+ <option value="$PROJECT_DIR$/lib/cirrocumulus/rules/run_queue.rb" />
101
+ <option value="$PROJECT_DIR$/test/test.rb" />
108
102
  </list>
109
103
  </option>
110
104
  </component>
111
105
  <component name="ProjectFrameBounds">
112
- <option name="x" value="-3" />
106
+ <option name="x" value="-2" />
113
107
  <option name="y" value="-3" />
114
- <option name="width" value="1286" />
108
+ <option name="width" value="1284" />
115
109
  <option name="height" value="769" />
116
110
  </component>
117
111
  <component name="ProjectLevelVcsManager" settingsEditedManually="false">
@@ -140,23 +134,23 @@
140
134
  <sortByType />
141
135
  </navigator>
142
136
  <panes>
143
- <pane id="Scope">
144
- <subPane subId="Project Files">
137
+ <pane id="ProjectPane">
138
+ <subPane>
145
139
  <PATH>
146
- <PATH_ELEMENT USER_OBJECT="Root">
147
- <option name="myItemId" value="" />
148
- <option name="myItemType" value="" />
140
+ <PATH_ELEMENT>
141
+ <option name="myItemId" value="cirrocumulus" />
142
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
149
143
  </PATH_ELEMENT>
150
144
  </PATH>
151
- </subPane>
152
- </pane>
153
- <pane id="ProjectPane">
154
- <subPane>
155
145
  <PATH>
156
146
  <PATH_ELEMENT>
157
147
  <option name="myItemId" value="cirrocumulus" />
158
148
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
159
149
  </PATH_ELEMENT>
150
+ <PATH_ELEMENT>
151
+ <option name="myItemId" value="cirrocumulus" />
152
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
153
+ </PATH_ELEMENT>
160
154
  </PATH>
161
155
  <PATH>
162
156
  <PATH_ELEMENT>
@@ -167,6 +161,10 @@
167
161
  <option name="myItemId" value="cirrocumulus" />
168
162
  <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
169
163
  </PATH_ELEMENT>
164
+ <PATH_ELEMENT>
165
+ <option name="myItemId" value="test" />
166
+ <option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.PsiDirectoryNode" />
167
+ </PATH_ELEMENT>
170
168
  </PATH>
171
169
  <PATH>
172
170
  <PATH_ELEMENT>
@@ -224,6 +222,16 @@
224
222
  </PATH>
225
223
  </subPane>
226
224
  </pane>
225
+ <pane id="Scope">
226
+ <subPane subId="Project Files">
227
+ <PATH>
228
+ <PATH_ELEMENT USER_OBJECT="Root">
229
+ <option name="myItemId" value="" />
230
+ <option name="myItemType" value="" />
231
+ </PATH_ELEMENT>
232
+ </PATH>
233
+ </subPane>
234
+ </pane>
227
235
  <pane id="Favorites" />
228
236
  </panes>
229
237
  </component>
@@ -427,14 +435,14 @@
427
435
  <servers />
428
436
  </component>
429
437
  <component name="ToolWindowManager">
430
- <frame x="-3" y="-3" width="1286" height="769" extended-state="6" />
438
+ <frame x="-2" y="-3" width="1284" height="769" extended-state="6" />
431
439
  <editor active="true" />
432
440
  <layout>
433
441
  <window_info id="Data Sources" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
434
442
  <window_info id="Changes" active="false" anchor="bottom" auto_hide="true" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.3287879" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
435
443
  <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
436
444
  <window_info id="Structure" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.67121214" order="4" side_tool="false" content_ui="tabs" />
437
- <window_info id="Project" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.28525123" sideWeight="0.67121214" order="3" side_tool="false" content_ui="combo" />
445
+ <window_info id="Project" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.33468395" sideWeight="0.0" order="3" side_tool="false" content_ui="combo" />
438
446
  <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
439
447
  <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
440
448
  <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="7" side_tool="true" content_ui="tabs" />
@@ -504,141 +512,119 @@
504
512
  <breakpoint-manager />
505
513
  </component>
506
514
  <component name="editorHistoryManager">
507
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rules/run_queue.rb">
508
- <provider selected="true" editor-type-id="text-editor">
509
- <state line="85" column="0" selection-start="2221" selection-end="2221" vertical-scroll-proportion="0.29725364" />
510
- </provider>
511
- </entry>
512
- <entry file="file://$APPLICATION_HOME_DIR$/rubystubs18/kernel.rb">
515
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/message.rb">
513
516
  <provider selected="true" editor-type-id="text-editor">
514
- <state line="1771" column="6" selection-start="56935" selection-end="56935" vertical-scroll-proportion="0.76265824" />
517
+ <state line="4" column="4" selection-start="125" selection-end="125" vertical-scroll-proportion="0.0" />
515
518
  </provider>
516
519
  </entry>
517
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/logger.rb">
520
+ <entry file="file:///usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/thread.rb">
518
521
  <provider selected="true" editor-type-id="text-editor">
519
- <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
522
+ <state line="182" column="6" selection-start="3565" selection-end="3565" vertical-scroll-proportion="0.33278957" />
520
523
  </provider>
521
524
  </entry>
522
- <entry file="file://$PROJECT_DIR$/Gemfile">
525
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/jabber_bus.rb">
523
526
  <provider selected="true" editor-type-id="text-editor">
524
- <state line="6" column="0" selection-start="124" selection-end="197" vertical-scroll-proportion="0.14754099" />
527
+ <state line="115" column="34" selection-start="3354" selection-end="3354" vertical-scroll-proportion="1.375" />
525
528
  </provider>
526
529
  </entry>
527
- <entry file="file://$PROJECT_DIR$/cirrocumulus.gemspec">
530
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/saga.rb">
528
531
  <provider selected="true" editor-type-id="text-editor">
529
- <state line="21" column="15" selection-start="724" selection-end="724" vertical-scroll-proportion="0.024271844" />
532
+ <state line="43" column="45" selection-start="837" selection-end="837" vertical-scroll-proportion="0.0" />
530
533
  </provider>
531
534
  </entry>
532
- <entry file="file://$PROJECT_DIR$/Rakefile">
535
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rule_engine.rb">
533
536
  <provider selected="true" editor-type-id="text-editor">
534
- <state line="28" column="0" selection-start="936" selection-end="936" vertical-scroll-proportion="0.6359223" />
537
+ <state line="2" column="0" selection-start="73" selection-end="73" vertical-scroll-proportion="0.050675675">
538
+ <folding />
539
+ </state>
535
540
  </provider>
536
541
  </entry>
537
542
  <entry file="file://$PROJECT_DIR$/lib/cirrocumulus.rb">
538
543
  <provider selected="true" editor-type-id="text-editor">
539
- <state line="2" column="0" selection-start="55" selection-end="55" vertical-scroll-proportion="0.04754358" />
544
+ <state line="2" column="0" selection-start="55" selection-end="55" vertical-scroll-proportion="0.050675675">
545
+ <folding />
546
+ </state>
540
547
  </provider>
541
548
  </entry>
542
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rule_engine.rb">
549
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent.rb">
543
550
  <provider selected="true" editor-type-id="text-editor">
544
- <state line="0" column="0" selection-start="0" selection-end="0" vertical-scroll-proportion="0.0" />
551
+ <state line="277" column="81" selection-start="8294" selection-end="8294" vertical-scroll-proportion="0.45634267">
552
+ <folding />
553
+ </state>
545
554
  </provider>
546
555
  </entry>
547
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/message.rb">
556
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent_wrapper.rb">
548
557
  <provider selected="true" editor-type-id="text-editor">
549
- <state line="4" column="4" selection-start="125" selection-end="125" vertical-scroll-proportion="0.0">
558
+ <state line="13" column="0" selection-start="302" selection-end="302" vertical-scroll-proportion="0.024193548">
550
559
  <folding />
551
560
  </state>
552
561
  </provider>
553
562
  </entry>
554
- <entry file="file:///usr/local/rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/thread.rb">
563
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/ontology.rb">
564
+ <provider selected="true" editor-type-id="text-editor">
565
+ <state line="25" column="50" selection-start="536" selection-end="536" vertical-scroll-proportion="0.0" />
566
+ </provider>
567
+ </entry>
568
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/logger.rb">
555
569
  <provider selected="true" editor-type-id="text-editor">
556
- <state line="182" column="6" selection-start="3565" selection-end="3565" vertical-scroll-proportion="0.33278957">
570
+ <state line="4" column="0" selection-start="123" selection-end="123" vertical-scroll-proportion="0.09677419">
557
571
  <folding />
558
572
  </state>
559
573
  </provider>
560
574
  </entry>
561
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb">
575
+ <entry file="file://$APPLICATION_HOME_DIR$/rubystubs19/class.rb">
562
576
  <provider selected="true" editor-type-id="text-editor">
563
- <state line="57" column="0" selection-start="1475" selection-end="1475" vertical-scroll-proportion="0.0">
564
- <folding>
565
- <element signature="e#259#408#0" expanded="false" />
566
- <element signature="e#742#864#0" expanded="false" />
567
- <element signature="e#870#1093#0" expanded="false" />
568
- <element signature="e#1099#1339#0" expanded="false" />
569
- <element signature="e#2795#2885#0" expanded="false" />
570
- <element signature="e#2891#3047#0" expanded="false" />
571
- <element signature="e#3093#3249#0" expanded="false" />
572
- <element signature="e#3362#3399#0" expanded="false" />
573
- <element signature="e#3531#3766#0" expanded="false" />
574
- <element signature="e#3772#4023#0" expanded="false" />
575
- <element signature="e#4029#4462#0" expanded="false" />
576
- <element signature="e#4468#5068#0" expanded="false" />
577
- <element signature="e#5074#5480#0" expanded="false" />
578
- <element signature="e#5486#6058#0" expanded="false" />
579
- <element signature="e#6064#6389#0" expanded="false" />
580
- <element signature="e#6395#6707#0" expanded="false" />
581
- <element signature="e#6713#7055#0" expanded="false" />
582
- <element signature="e#7061#7917#0" expanded="false" />
583
- <element signature="e#7923#7996#0" expanded="false" />
584
- <element signature="e#8002#8220#0" expanded="false" />
585
- <element signature="e#8226#8322#0" expanded="false" />
586
- <element signature="e#8328#8428#0" expanded="false" />
587
- <element signature="e#8434#8553#0" expanded="false" />
588
- </folding>
577
+ <state line="67" column="13" selection-start="1999" selection-end="1999" vertical-scroll-proportion="0.3467742">
578
+ <folding />
589
579
  </state>
590
580
  </provider>
591
581
  </entry>
592
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/jabber_bus.rb">
582
+ <entry file="file://$APPLICATION_HOME_DIR$/rubystubs19/thread.rb">
593
583
  <provider selected="true" editor-type-id="text-editor">
594
- <state line="115" column="34" selection-start="3354" selection-end="3354" vertical-scroll-proportion="1.375">
595
- <folding>
596
- <element signature="e#2941#2999#0" expanded="false" />
597
- <element signature="e#3014#3318#0" expanded="false" />
598
- <element signature="e#3322#4341#0" expanded="false" />
599
- </folding>
584
+ <state line="7" column="6" selection-start="208" selection-end="208" vertical-scroll-proportion="0.0">
585
+ <folding />
600
586
  </state>
601
587
  </provider>
602
588
  </entry>
603
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/saga.rb">
589
+ <entry file="file://$APPLICATION_HOME_DIR$/rubystubs19/array.rb">
604
590
  <provider selected="true" editor-type-id="text-editor">
605
- <state line="43" column="45" selection-start="837" selection-end="837" vertical-scroll-proportion="0.0">
591
+ <state line="734" column="8" selection-start="26966" selection-end="26966" vertical-scroll-proportion="0.2596774">
606
592
  <folding />
607
593
  </state>
608
594
  </provider>
609
595
  </entry>
610
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent_wrapper.rb">
596
+ <entry file="file://$PROJECT_DIR$/test/test.rb">
611
597
  <provider selected="true" editor-type-id="text-editor">
612
- <state line="13" column="0" selection-start="302" selection-end="302" vertical-scroll-proportion="0.0">
598
+ <state line="37" column="48" selection-start="1106" selection-end="1106" vertical-scroll-proportion="0.0">
613
599
  <folding />
614
600
  </state>
615
601
  </provider>
616
602
  </entry>
617
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/ontology.rb">
603
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rules/run_queue.rb">
618
604
  <provider selected="true" editor-type-id="text-editor">
619
- <state line="25" column="50" selection-start="536" selection-end="536" vertical-scroll-proportion="0.0">
620
- <folding>
621
- <element signature="e#102#215#0" expanded="false" />
622
- <element signature="e#279#364#0" expanded="false" />
623
- <element signature="e#1242#1404#0" expanded="false" />
624
- <element signature="e#1410#1457#0" expanded="false" />
625
- </folding>
605
+ <state line="73" column="0" selection-start="1905" selection-end="1905" vertical-scroll-proportion="0.0">
606
+ <folding />
626
607
  </state>
627
608
  </provider>
628
609
  </entry>
629
- <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent.rb">
610
+ <entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb">
630
611
  <provider selected="true" editor-type-id="text-editor">
631
- <state line="277" column="81" selection-start="8294" selection-end="8294" vertical-scroll-proportion="0.55518943">
612
+ <state line="31" column="34" selection-start="695" selection-end="695" vertical-scroll-proportion="0.48969072">
632
613
  <folding>
633
- <element signature="e#4587#4898#0" expanded="false" />
634
- <element signature="e#4954#5129#0" expanded="false" />
635
- <element signature="e#5169#5401#0" expanded="false" />
636
- <element signature="e#5570#5685#0" expanded="false" />
637
- <element signature="e#5744#6329#0" expanded="false" />
638
- <element signature="e#6374#6440#0" expanded="false" />
639
- <element signature="e#6583#6795#0" expanded="false" />
640
- <element signature="e#6824#7162#0" expanded="false" />
641
- <element signature="e#7168#7246#0" expanded="false" />
614
+ <element signature="e#135#414#0" expanded="false" />
615
+ <element signature="e#1123#1253#0" expanded="false" />
616
+ <element signature="e#1259#1381#0" expanded="false" />
617
+ <element signature="e#1387#1610#0" expanded="false" />
618
+ <element signature="e#1616#1856#0" expanded="false" />
619
+ <element signature="e#2026#2265#0" expanded="false" />
620
+ <element signature="e#3920#4010#0" expanded="false" />
621
+ <element signature="e#4904#4941#0" expanded="false" />
622
+ <element signature="e#6358#6981#0" expanded="false" />
623
+ <element signature="e#8221#8546#0" expanded="false" />
624
+ <element signature="e#9218#10074#0" expanded="false" />
625
+ <element signature="e#10376#10492#0" expanded="false" />
626
+ <element signature="e#10498#10618#0" expanded="false" />
627
+ <element signature="e#10624#10750#0" expanded="false" />
642
628
  </folding>
643
629
  </state>
644
630
  </provider>
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.6.1
1
+ 0.6.2
data/cirrocumulus.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "cirrocumulus"
8
- s.version = "0.6.1"
8
+ s.version = "0.6.2"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Anton Kosyakin"]
12
- s.date = "2012-04-11"
12
+ s.date = "2012-05-22"
13
13
  s.description = "Engine for building your own agents, providing you base functionality for loading ontologies, communicating with other agents and parsing FIPA-ACL messages"
14
14
  s.email = "deil@mneko.net"
15
15
  s.extra_rdoc_files = [
@@ -47,9 +47,11 @@ Gem::Specification.new do |s|
47
47
  "lib/cirrocumulus/rules/engine.rb",
48
48
  "lib/cirrocumulus/rules/run_queue.rb",
49
49
  "lib/cirrocumulus/saga.rb",
50
- "lib/test.rb",
51
- "lib/test2.rb",
50
+ "test/Gemfile",
51
+ "test/Gemfile.lock",
52
52
  "test/helper.rb",
53
+ "test/test.rb",
54
+ "test/test2.rb",
53
55
  "test/test_cirrocumulus.rb"
54
56
  ]
55
57
  s.homepage = "http://github.com/deil/cirrocumulus"
@@ -17,6 +17,34 @@ module RuleEngine
17
17
  end
18
18
  end
19
19
 
20
+ class Fact
21
+ def initialize(data, time, options)
22
+ @data = data
23
+ @time = time
24
+ @options = options
25
+ end
26
+
27
+ attr_reader :data
28
+ attr_accessor :is_deleted
29
+
30
+ def timed_out?
31
+ return false if @options[:expires] == nil
32
+ @time + @options[:expires] < Time.now
33
+ end
34
+ end
35
+
36
+ class MatchResult
37
+ def initialize(rule)
38
+ @rule = rule
39
+ @matched_facts = []
40
+ @parameters = nil
41
+ end
42
+
43
+ attr_reader :rule
44
+ attr_reader :matched_facts
45
+ attr_accessor :parameters
46
+ end
47
+
20
48
  # Core class for Cirrocumulus Rule Engine.
21
49
  # All the magic about asserting/retracting facts and pattern-matching is performed here.
22
50
  class Base
@@ -51,13 +79,20 @@ module RuleEngine
51
79
  log "Empty ruleset" if self.class.current_ruleset.empty?
52
80
  end
53
81
 
82
+ def transaction
83
+
84
+ end
85
+
54
86
  # Asserts new fact. If 'silent' is set to true, does not perform any associated rules
55
87
  #
56
88
  # * *Returns* :
57
89
  # - nothing
58
- def assert(fact, silent = false)
90
+ def assert(fact, options = {}, silent = false)
91
+ silent = options unless options.is_a?(Hash)
92
+ options = {} unless options.is_a?(Hash)
93
+
59
94
  @mutex.synchronize do
60
- assert_nonblocking(fact, silent)
95
+ assert_nonblocking(fact, options, silent)
61
96
  end
62
97
  end
63
98
 
@@ -71,34 +106,47 @@ module RuleEngine
71
106
  end
72
107
  end
73
108
 
74
- # Replaces fact value
109
+ # Replaces fact value. If fact was not found - asserts it
75
110
  #
76
111
  # * *Returns* :
77
112
  # - nothing
78
- def replace(pattern, values)
113
+ def replace(pattern, values, options = {})
79
114
  @mutex.synchronize do
80
115
  data = match(pattern)
81
- data.each do |match_data|
82
- old_fact = pattern.clone
116
+
117
+ if data.empty?
83
118
  new_fact = pattern.clone
119
+
84
120
  pattern.each_with_index do |item,i|
85
- if match_data.include? item
86
- old_fact[i] = match_data[item]
121
+ if item.is_a?(Symbol) && item.to_s.upcase == item.to_s
87
122
  new_fact[i] = values.is_a?(Hash) ? values[item] : values
88
123
  end
89
124
  end
90
125
 
91
- facts_are_same = true
92
- old_fact.each_with_index do |item, idx|
93
- new_item = new_fact[idx]
94
- facts_are_same = false if new_item != item
95
- end
126
+ assert_nonblocking(new_fact, options, false)
127
+ else
128
+ data.each do |match_data|
129
+ old_fact = pattern.clone
130
+ new_fact = pattern.clone
131
+ pattern.each_with_index do |item,i|
132
+ if match_data.include? item
133
+ old_fact[i] = match_data[item]
134
+ new_fact[i] = values.is_a?(Hash) ? values[item] : values
135
+ end
136
+ end
96
137
 
97
- unless facts_are_same
98
- log "replace #{pattern.inspect} for #{values.inspect}"
138
+ facts_are_same = true
139
+ old_fact.each_with_index do |item, idx|
140
+ new_item = new_fact[idx]
141
+ facts_are_same = false if new_item != item
142
+ end
143
+
144
+ unless facts_are_same
145
+ debug "replace #{pattern.inspect} for #{values.inspect}"
99
146
 
100
- retract_nonblocking(old_fact, true)
101
- assert_nonblocking(new_fact)
147
+ retract_nonblocking(old_fact, true)
148
+ assert_nonblocking(new_fact, {}, false)
149
+ end
102
150
  end
103
151
  end
104
152
  end
@@ -111,8 +159,8 @@ module RuleEngine
111
159
 
112
160
  def match(pattern)
113
161
  res = []
114
- match_pattern(pattern).each do |fact|
115
- res << bind_parameters(pattern, fact, {})
162
+ find_matches_for_condition(pattern).each do |fact|
163
+ res << bind_parameters(pattern, fact.data, {})
116
164
  end
117
165
 
118
166
  res
@@ -121,11 +169,25 @@ module RuleEngine
121
169
  # Starts this rule engine instance.
122
170
  def start()
123
171
  @worker_thread = Thread.new do
172
+ engine = nil
124
173
  while true do
174
+ engine = Thread.current[:engine] if engine.nil?
175
+ engine.tick() if engine
125
176
  @queue.run_queued_rules()
126
177
  sleep 0.1
127
178
  end
128
179
  end
180
+
181
+ @worker_thread[:engine] = self
182
+ end
183
+
184
+ def tick()
185
+ to_retract = []
186
+ @facts.each {|fact| to_retract << fact if fact.timed_out? }
187
+ to_retract.each {|fact| retract(fact.data, true) }
188
+ process() unless to_retract.empty?
189
+ rescue Exception => ex
190
+ p ex
129
191
  end
130
192
 
131
193
  # Executes all associated with current KB rules. Normally, this shouldn't be called by the programmer.
@@ -141,26 +203,36 @@ module RuleEngine
141
203
  return @@loaded_rules[self.name] ||= []
142
204
  end
143
205
 
144
- def assert_nonblocking(fact, silent = false)
145
- return if @facts.include? fact
146
-
147
- time = DateTime.now
148
- log "assert: %s" % fact.inspect
206
+ def assert_nonblocking(fact, options, silent)
207
+ return if @facts.any? {|f| f.data == fact}
149
208
 
150
- @facts << fact
151
- @fact_times[fact] = time
209
+ if !options.empty?
210
+ debug "assert: %s (%s)" % [fact.inspect, options.inspect]
211
+ else
212
+ debug "assert: %s" % fact.inspect
213
+ end
214
+ @facts << Fact.new(fact, DateTime.now, options)
152
215
 
153
216
  process() if !silent
154
217
  end
155
218
 
156
219
  def retract_nonblocking(fact, silent = false)
157
- if @facts.delete(fact)
158
- @fact_times.delete(fact)
159
- log "retract: #{fact.inspect}"
160
- process() if !silent
161
- else
162
- #puts "fact #{fact.inspect} not found"
220
+ @facts.each_with_index do |item, idx|
221
+ next if item.data != fact
222
+ @facts.delete_at(idx)
223
+
224
+ if item.timed_out?
225
+ debug "retract: #{item.data.inspect} (timeout)"
226
+ else
227
+ debug "retract: #{item.data.inspect}"
228
+ end
229
+
230
+ item.is_deleted = true # TODO: should force GC for this object or smth like that
231
+
232
+ break
163
233
  end
234
+
235
+ process() if !silent
164
236
  end
165
237
 
166
238
  def matches?(rule)
@@ -168,29 +240,28 @@ module RuleEngine
168
240
 
169
241
  pattern_candidates = []
170
242
  rule.conditions.each do |pattern|
171
- pattern_candidates << match_pattern(pattern)
243
+ pattern_candidates << find_matches_for_condition(pattern)
172
244
  end
173
245
 
174
246
  return nil if !pattern_candidates.all? {|c| c.size > 0}
175
247
 
176
248
  trace "Result: rule '#{rule.name}' has candidates for each pattern"
177
-
178
- match_parameters(rule, pattern_candidates)
249
+ intersect_matches_for_each_condition(rule, pattern_candidates)
179
250
  end
180
251
 
181
- def match_pattern(pattern)
252
+ def find_matches_for_condition(pattern)
182
253
  trace "=> attempting to match pattern #{pattern.inspect}"
183
254
  fact_matches = true
184
255
  candidates = []
185
256
 
186
257
  @facts.each do |fact|
187
- next if fact.size != pattern.size
258
+ next if fact.data.size != pattern.size
188
259
  fact_matches = true
189
260
 
190
261
  pattern.each_with_index do |el,i|
191
262
  if el.is_a?(Symbol) && el.to_s.upcase == el.to_s # parameter
192
263
  else
193
- fact_matches = false if el != fact[i]
264
+ fact_matches = false if el != fact.data[i]
194
265
  end
195
266
  end
196
267
 
@@ -201,25 +272,28 @@ module RuleEngine
201
272
  candidates
202
273
  end
203
274
 
204
- def match_parameters(rule, candidates)
275
+ def intersect_matches_for_each_condition(rule, candidates)
205
276
  trace "Attempting to match parameters:"
206
277
 
207
278
  result = []
208
279
  attempt = []
209
280
  while (attempt = generate_combination(rule, candidates, attempt)) != [] do
210
- bindings = test_combination(rule, candidates, attempt)
281
+ bindings = test_condition_parameters_combination(rule, candidates, attempt)
211
282
  if bindings
212
283
  trace "Found: %s" % bindings.inspect
213
- result << bindings
284
+ match_data = MatchResult.new(rule)
285
+ attempt.each_with_index {|a,i| match_data.matched_facts << candidates[i][a]}
286
+ match_data.parameters = bindings
287
+ result << match_data
214
288
  end
215
289
  end
216
290
 
217
291
  result
218
292
  end
219
293
 
220
- def test_combination(rule, candidates, attempt)
294
+ def test_condition_parameters_combination(rule, candidates, attempt)
221
295
  facts = []
222
- attempt.each_with_index {|a,i| facts << candidates[i][a]}
296
+ attempt.each_with_index {|a,i| facts << candidates[i][a].data}
223
297
  trace "=> testing combination #{attempt.inspect}: %s" % facts.inspect
224
298
 
225
299
  binded_params = {}
@@ -305,35 +379,35 @@ module RuleEngine
305
379
  binded_params
306
380
  end
307
381
 
308
- def execute_rule(rule, params)
309
- @queue.enqueue(rule, params)
382
+ def execute_rule(match_data)
383
+ @queue.enqueue(match_data)
310
384
  end
311
385
 
312
386
  def process()
313
387
  self.class.current_ruleset.each do |rule|
314
388
  binded_params = matches?(rule)
315
- next if binded_params.nil?
316
- binded_params.each {|params| execute_rule(rule, params)}
389
+ next if binded_params.blank?
390
+
391
+ binded_params.each {|params| execute_rule(params)}
317
392
  end
318
393
  end
319
394
 
320
395
  def log(msg)
321
396
  Log4r::Logger['kb'].info(msg)
322
397
  rescue
323
- puts "[INFO] %s" % msg
398
+ puts "%s [INFO] %s" % [Time.now.to_s, msg]
324
399
  end
325
400
 
326
401
  def debug(msg)
327
402
  Log4r::Logger['kb'].debug(msg)
328
403
  rescue
329
- puts "[DEBUG] %s" % msg
404
+ puts "%s [DEBUG] %s" % [Time.now.to_s, msg]
330
405
  end
331
406
 
332
407
  def trace(msg)
333
- return
334
408
  Log4r::Logger['kb_trace'].debug(msg)
335
409
  rescue
336
- puts "[TRACE] %s" % msg
410
+ puts "%s [TRACE] %s" % [Time.now.to_s, msg]
337
411
  end
338
412
  end
339
413
 
@@ -2,14 +2,16 @@ require 'thread'
2
2
 
3
3
  module RuleEngine
4
4
  class QueueEntry
5
+ attr_reader :run_data
5
6
  attr_reader :rule
6
7
  attr_reader :params
7
8
  attr_reader :run_at
8
9
  attr_accessor :state
9
10
 
10
- def initialize(rule, params, run_at = nil)
11
- @rule = rule
12
- @params = params
11
+ def initialize(run_data, run_at = nil)
12
+ @run_data = run_data
13
+ @rule = run_data.rule
14
+ @params = run_data.parameters
13
15
  @run_at = run_at
14
16
  @state = :queued
15
17
  end
@@ -23,18 +25,18 @@ module RuleEngine
23
25
  @mutex = Mutex.new
24
26
  end
25
27
 
26
- def enqueue(rule, params)
28
+ def enqueue(match_data)
27
29
  @mutex.synchronize do
28
- if !already_queued?(rule, params)
29
- debug "Enqueueing rule #{rule.name}#{params.inspect}"
30
+ if !already_queued?(match_data.rule, match_data.parameters)
31
+ debug "Enqueueing rule #{match_data.rule.name}#{match_data.parameters.inspect}"
30
32
 
31
- if !rule.options.blank? && rule.options.include?(:for)
32
- delay = rule.options[:for]
33
+ if !match_data.rule.options.blank? && match_data.rule.options.include?(:for)
34
+ delay = match_data.rule.options[:for]
33
35
  run_at = Time.now + delay
34
36
  debug "Will run this rule after #{delay.to_s} sec (at #{run_at.strftime("%H:%M:%S %d.%m.%Y")})"
35
- @queue << QueueEntry.new(rule, params, run_at)
37
+ @queue << QueueEntry.new(match_data, run_at)
36
38
  else
37
- @queue << QueueEntry.new(rule, params)
39
+ @queue << QueueEntry.new(match_data)
38
40
  end
39
41
  end
40
42
  end
@@ -69,12 +71,17 @@ module RuleEngine
69
71
 
70
72
  while !rules_for_running.empty? do
71
73
  entry = rules_for_running.pop
72
- begin
73
- debug "Executing #{entry.rule.name}#{entry.params.inspect}"
74
- entry.rule.code.call(@engine, entry.params)
75
- entry.state = :finished # TODO: cleanup @queue from this entries
76
- rescue Exception => e
77
- Log4r::Logger['kb'].warn "Exception while executing rule: %s\n%s" % [e.to_s, e.backtrace.to_s]
74
+ if entry.run_data.matched_facts.all? {|fact| !fact.is_deleted} # TODO: there should be smth like WeakReference
75
+ begin
76
+ debug "Executing #{entry.rule.name}#{entry.params.inspect}"
77
+ entry.rule.code.call(@engine, entry.params)
78
+ entry.state = :finished # TODO: cleanup @queue from this entries
79
+
80
+ rescue Exception => e
81
+ Log4r::Logger['kb'].warn "Exception while executing rule: %s\n%s" % [e.to_s, e.backtrace.to_s]
82
+ end
83
+ else
84
+ entry.state = :finished
78
85
  end
79
86
  end
80
87
  end
data/test/Gemfile ADDED
@@ -0,0 +1,3 @@
1
+ source "http://rubygems.org"
2
+
3
+ gem 'cirrocumulus'
data/test/Gemfile.lock ADDED
@@ -0,0 +1,27 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (2.3.14)
5
+ cirrocumulus (0.6.1)
6
+ activesupport (~> 2.3.11)
7
+ deil_sexpistol
8
+ eventmachine
9
+ guid
10
+ log4r (~> 1.1.9)
11
+ systemu
12
+ xmpp4r (~> 0.5)
13
+ xmpp4r-simple
14
+ deil_sexpistol (0.0.8)
15
+ eventmachine (0.12.10)
16
+ guid (0.1.1)
17
+ log4r (1.1.10)
18
+ systemu (2.4.2)
19
+ xmpp4r (0.5)
20
+ xmpp4r-simple (0.8.8)
21
+ xmpp4r (>= 0.3.2)
22
+
23
+ PLATFORMS
24
+ ruby
25
+
26
+ DEPENDENCIES
27
+ cirrocumulus
@@ -1,10 +1,6 @@
1
1
  require 'bundler/setup'
2
- require_relative 'cirrocumulus'
3
- require_relative 'cirrocumulus/engine'
4
-
5
- puts Cirrocumulus::PLATFORM
6
- exit 0
7
- #require_relative 'cirrocumulus/rule_engine.rb'
2
+ require 'active_support'
3
+ require 'cirrocumulus/rule_engine'
8
4
 
9
5
  class Test < RuleEngine::Base
10
6
  rule 'convert', [[:temperature, :X, 'F']] do |engine, params|
@@ -14,8 +10,13 @@ class Test < RuleEngine::Base
14
10
  y = 5*(x - 32)/9
15
11
  engine.assert([:temperature, y, 'C'])
16
12
  end
17
-
18
- rule 'guest_powered_off', [[:guest, :X, :powered_off]], :for => 10.seconds do |engine, params|
13
+
14
+ rule 'test', [ [:a, :B, :c], [:c, :B, :a]], :for => 5.seconds do |engine, params|
15
+ p "test"
16
+ p params
17
+ end
18
+ =begin
19
+ rule 'guest_powered_off', [[:guest, :X, :powered_off]], :for => 5.seconds do |engine, params|
19
20
  puts "guest_powered_off"
20
21
  end
21
22
 
@@ -24,11 +25,27 @@ class Test < RuleEngine::Base
24
25
  p params
25
26
  puts "virtual disk #{params[:X]} should be up, but corresponding md devices is failed!"
26
27
  end
28
+ =end
27
29
  end
28
30
 
29
31
  #RuleEngine::Server.run()
30
32
 
31
33
  e = Test.new
34
+
35
+ #e.assert [:i, :will, :expire, :soon], :expires => 10.seconds
36
+ #e.replace [:guest, :X, :powered_off], "q1w2", :expires => 2.seconds
37
+ e.assert [:a, 'b', :c]
38
+ e.assert [:a, 'haha', :c], :expires => 3.seconds
39
+ e.assert [:c, 'b', :a], :expires => 6.seconds
40
+
41
+ e.start()
42
+
43
+ while true
44
+ sleep 1
45
+ end
46
+
47
+ exit 0
48
+
32
49
  e.assert [:guest, "233bed174ab0802fd908f981d64d185b", :powered_off]
33
50
  e.assert [:guest, "233bed174ab0802fd908f981d64d185b", :running]
34
51
  e.assert [:guest, "233bed174ab0802fd908f981d64d185b", :state, :powered_on]
File without changes
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cirrocumulus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.1
4
+ version: 0.6.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-11 00:00:00.000000000 Z
12
+ date: 2012-05-22 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &86983160 !ruby/object:Gem::Requirement
16
+ requirement: &73627510 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 2.3.11
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *86983160
24
+ version_requirements: *73627510
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: log4r
27
- requirement: &86982810 !ruby/object:Gem::Requirement
27
+ requirement: &73643310 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.1.9
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *86982810
35
+ version_requirements: *73643310
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: systemu
38
- requirement: &86981960 !ruby/object:Gem::Requirement
38
+ requirement: &73642400 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *86981960
46
+ version_requirements: *73642400
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: xmpp4r
49
- requirement: &86981310 !ruby/object:Gem::Requirement
49
+ requirement: &73641880 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0.5'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *86981310
57
+ version_requirements: *73641880
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: xmpp4r-simple
60
- requirement: &86980320 !ruby/object:Gem::Requirement
60
+ requirement: &73641210 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: '0'
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *86980320
68
+ version_requirements: *73641210
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: eventmachine
71
- requirement: &86980010 !ruby/object:Gem::Requirement
71
+ requirement: &73640730 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *86980010
79
+ version_requirements: *73640730
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: deil_sexpistol
82
- requirement: &86979240 !ruby/object:Gem::Requirement
82
+ requirement: &73640160 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '0'
88
88
  type: :runtime
89
89
  prerelease: false
90
- version_requirements: *86979240
90
+ version_requirements: *73640160
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: guid
93
- requirement: &86978130 !ruby/object:Gem::Requirement
93
+ requirement: &73639900 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: '0'
99
99
  type: :runtime
100
100
  prerelease: false
101
- version_requirements: *86978130
101
+ version_requirements: *73639900
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: rdoc
104
- requirement: &86977720 !ruby/object:Gem::Requirement
104
+ requirement: &73639300 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '3.12'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *86977720
112
+ version_requirements: *73639300
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: bundler
115
- requirement: &86977180 !ruby/object:Gem::Requirement
115
+ requirement: &73638710 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 1.0.0
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *86977180
123
+ version_requirements: *73638710
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: jeweler
126
- requirement: &86976500 !ruby/object:Gem::Requirement
126
+ requirement: &73638370 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,7 +131,7 @@ dependencies:
131
131
  version: 1.8.3
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *86976500
134
+ version_requirements: *73638370
135
135
  description: Engine for building your own agents, providing you base functionality
136
136
  for loading ontologies, communicating with other agents and parsing FIPA-ACL messages
137
137
  email: deil@mneko.net
@@ -171,9 +171,11 @@ files:
171
171
  - lib/cirrocumulus/rules/engine.rb
172
172
  - lib/cirrocumulus/rules/run_queue.rb
173
173
  - lib/cirrocumulus/saga.rb
174
- - lib/test.rb
175
- - lib/test2.rb
174
+ - test/Gemfile
175
+ - test/Gemfile.lock
176
176
  - test/helper.rb
177
+ - test/test.rb
178
+ - test/test2.rb
177
179
  - test/test_cirrocumulus.rb
178
180
  homepage: http://github.com/deil/cirrocumulus
179
181
  licenses: