cirrocumulus 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
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: