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 +116 -130
- data/VERSION +1 -1
- data/cirrocumulus.gemspec +6 -4
- data/lib/cirrocumulus/rules/engine.rb +125 -51
- data/lib/cirrocumulus/rules/run_queue.rb +23 -16
- data/test/Gemfile +3 -0
- data/test/Gemfile.lock +27 -0
- data/{lib → test}/test.rb +25 -8
- data/{lib → test}/test2.rb +0 -0
- metadata +28 -26
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/
|
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="
|
29
|
-
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/
|
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="
|
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#
|
43
|
-
<element signature="e#
|
44
|
-
<element signature="e#
|
45
|
-
<element signature="e#
|
46
|
-
<element signature="e#
|
47
|
-
<element signature="e#
|
48
|
-
<element signature="e#
|
49
|
-
<element signature="e#
|
50
|
-
<element signature="e#
|
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="
|
57
|
-
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/
|
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="
|
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="
|
66
|
-
<entry file="file://$PROJECT_DIR$/
|
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="
|
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="-
|
106
|
+
<option name="x" value="-2" />
|
113
107
|
<option name="y" value="-3" />
|
114
|
-
<option name="width" value="
|
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="
|
144
|
-
<subPane
|
137
|
+
<pane id="ProjectPane">
|
138
|
+
<subPane>
|
145
139
|
<PATH>
|
146
|
-
<PATH_ELEMENT
|
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="-
|
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.
|
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/
|
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="
|
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
|
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="
|
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$/
|
525
|
+
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/jabber_bus.rb">
|
523
526
|
<provider selected="true" editor-type-id="text-editor">
|
524
|
-
<state line="
|
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.
|
530
|
+
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/saga.rb">
|
528
531
|
<provider selected="true" editor-type-id="text-editor">
|
529
|
-
<state line="
|
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$/
|
535
|
+
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rule_engine.rb">
|
533
536
|
<provider selected="true" editor-type-id="text-editor">
|
534
|
-
<state line="
|
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.
|
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/
|
549
|
+
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent.rb">
|
543
550
|
<provider selected="true" editor-type-id="text-editor">
|
544
|
-
<state line="
|
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/
|
556
|
+
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/agent_wrapper.rb">
|
548
557
|
<provider selected="true" editor-type-id="text-editor">
|
549
|
-
<state line="
|
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
|
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="
|
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://$
|
575
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs19/class.rb">
|
562
576
|
<provider selected="true" editor-type-id="text-editor">
|
563
|
-
<state line="
|
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://$
|
582
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs19/thread.rb">
|
593
583
|
<provider selected="true" editor-type-id="text-editor">
|
594
|
-
<state line="
|
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://$
|
589
|
+
<entry file="file://$APPLICATION_HOME_DIR$/rubystubs19/array.rb">
|
604
590
|
<provider selected="true" editor-type-id="text-editor">
|
605
|
-
<state line="
|
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$/
|
596
|
+
<entry file="file://$PROJECT_DIR$/test/test.rb">
|
611
597
|
<provider selected="true" editor-type-id="text-editor">
|
612
|
-
<state line="
|
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/
|
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="
|
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/
|
610
|
+
<entry file="file://$PROJECT_DIR$/lib/cirrocumulus/rules/engine.rb">
|
630
611
|
<provider selected="true" editor-type-id="text-editor">
|
631
|
-
<state line="
|
612
|
+
<state line="31" column="34" selection-start="695" selection-end="695" vertical-scroll-proportion="0.48969072">
|
632
613
|
<folding>
|
633
|
-
<element signature="e#
|
634
|
-
<element signature="e#
|
635
|
-
<element signature="e#
|
636
|
-
<element signature="e#
|
637
|
-
<element signature="e#
|
638
|
-
<element signature="e#
|
639
|
-
<element signature="e#
|
640
|
-
<element signature="e#
|
641
|
-
<element signature="e#
|
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
|
+
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.
|
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-
|
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
|
-
"
|
51
|
-
"
|
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
|
-
|
82
|
-
|
116
|
+
|
117
|
+
if data.empty?
|
83
118
|
new_fact = pattern.clone
|
119
|
+
|
84
120
|
pattern.each_with_index do |item,i|
|
85
|
-
if
|
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
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
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
|
-
|
98
|
-
|
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
|
-
|
101
|
-
|
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
|
-
|
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
|
145
|
-
return if @facts.
|
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
|
-
|
151
|
-
|
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
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
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 <<
|
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
|
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
|
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 =
|
281
|
+
bindings = test_condition_parameters_combination(rule, candidates, attempt)
|
211
282
|
if bindings
|
212
283
|
trace "Found: %s" % bindings.inspect
|
213
|
-
|
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
|
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(
|
309
|
-
@queue.enqueue(
|
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.
|
316
|
-
|
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(
|
11
|
-
@
|
12
|
-
@
|
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(
|
28
|
+
def enqueue(match_data)
|
27
29
|
@mutex.synchronize do
|
28
|
-
if !already_queued?(rule,
|
29
|
-
debug "Enqueueing rule #{rule.name}#{
|
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(
|
37
|
+
@queue << QueueEntry.new(match_data, run_at)
|
36
38
|
else
|
37
|
-
@queue << QueueEntry.new(
|
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
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
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
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
|
data/{lib → test}/test.rb
RENAMED
@@ -1,10 +1,6 @@
|
|
1
1
|
require 'bundler/setup'
|
2
|
-
|
3
|
-
|
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 '
|
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]
|
data/{lib → test}/test2.rb
RENAMED
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.
|
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-
|
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: &
|
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: *
|
24
|
+
version_requirements: *73627510
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: log4r
|
27
|
-
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: *
|
35
|
+
version_requirements: *73643310
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: systemu
|
38
|
-
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: *
|
46
|
+
version_requirements: *73642400
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: xmpp4r
|
49
|
-
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: *
|
57
|
+
version_requirements: *73641880
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: xmpp4r-simple
|
60
|
-
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: *
|
68
|
+
version_requirements: *73641210
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: eventmachine
|
71
|
-
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: *
|
79
|
+
version_requirements: *73640730
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: deil_sexpistol
|
82
|
-
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: *
|
90
|
+
version_requirements: *73640160
|
91
91
|
- !ruby/object:Gem::Dependency
|
92
92
|
name: guid
|
93
|
-
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: *
|
101
|
+
version_requirements: *73639900
|
102
102
|
- !ruby/object:Gem::Dependency
|
103
103
|
name: rdoc
|
104
|
-
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: *
|
112
|
+
version_requirements: *73639300
|
113
113
|
- !ruby/object:Gem::Dependency
|
114
114
|
name: bundler
|
115
|
-
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: *
|
123
|
+
version_requirements: *73638710
|
124
124
|
- !ruby/object:Gem::Dependency
|
125
125
|
name: jeweler
|
126
|
-
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: *
|
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
|
-
-
|
175
|
-
-
|
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:
|