trimurti 0.1

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.
Files changed (129) hide show
  1. data/trimurti-0.1/docs/classes/Array.html +176 -0
  2. data/trimurti-0.1/docs/classes/Array.src/M000005.html +19 -0
  3. data/trimurti-0.1/docs/classes/Array.src/M000006.html +19 -0
  4. data/trimurti-0.1/docs/classes/Asserter.html +136 -0
  5. data/trimurti-0.1/docs/classes/Brahma.html +360 -0
  6. data/trimurti-0.1/docs/classes/Brahma.src/M000029.html +21 -0
  7. data/trimurti-0.1/docs/classes/Brahma.src/M000030.html +20 -0
  8. data/trimurti-0.1/docs/classes/Brahma.src/M000031.html +36 -0
  9. data/trimurti-0.1/docs/classes/Brahma.src/M000032.html +18 -0
  10. data/trimurti-0.1/docs/classes/Brahma.src/M000033.html +20 -0
  11. data/trimurti-0.1/docs/classes/Brahma.src/M000034.html +21 -0
  12. data/trimurti-0.1/docs/classes/Brahma.src/M000035.html +25 -0
  13. data/trimurti-0.1/docs/classes/Brahma.src/M000036.html +22 -0
  14. data/trimurti-0.1/docs/classes/Brahma.src/M000037.html +22 -0
  15. data/trimurti-0.1/docs/classes/ComponentSpec.html +275 -0
  16. data/trimurti-0.1/docs/classes/ComponentSpec.src/M000001.html +21 -0
  17. data/trimurti-0.1/docs/classes/ComponentSpec.src/M000002.html +18 -0
  18. data/trimurti-0.1/docs/classes/DRb.html +165 -0
  19. data/trimurti-0.1/docs/classes/DRb.src/M000062.html +18 -0
  20. data/trimurti-0.1/docs/classes/DRb.src/M000063.html +18 -0
  21. data/trimurti-0.1/docs/classes/GUID.html +129 -0
  22. data/trimurti-0.1/docs/classes/Linda.html +444 -0
  23. data/trimurti-0.1/docs/classes/Linda.src/M000007.html +16 -0
  24. data/trimurti-0.1/docs/classes/Linda.src/M000008.html +16 -0
  25. data/trimurti-0.1/docs/classes/Linda.src/M000009.html +20 -0
  26. data/trimurti-0.1/docs/classes/Linda.src/M000010.html +16 -0
  27. data/trimurti-0.1/docs/classes/Linda.src/M000011.html +18 -0
  28. data/trimurti-0.1/docs/classes/Linda.src/M000012.html +21 -0
  29. data/trimurti-0.1/docs/classes/Linda.src/M000013.html +18 -0
  30. data/trimurti-0.1/docs/classes/Linda.src/M000014.html +18 -0
  31. data/trimurti-0.1/docs/classes/Linda.src/M000015.html +18 -0
  32. data/trimurti-0.1/docs/classes/Linda.src/M000016.html +18 -0
  33. data/trimurti-0.1/docs/classes/Linda.src/M000017.html +20 -0
  34. data/trimurti-0.1/docs/classes/Linda.src/M000018.html +20 -0
  35. data/trimurti-0.1/docs/classes/Object.html +153 -0
  36. data/trimurti-0.1/docs/classes/Object.src/M000021.html +18 -0
  37. data/trimurti-0.1/docs/classes/Plugins.html +174 -0
  38. data/trimurti-0.1/docs/classes/Plugins.src/M000024.html +32 -0
  39. data/trimurti-0.1/docs/classes/Plugins.src/M000025.html +32 -0
  40. data/trimurti-0.1/docs/classes/Plugins/Spec.html +267 -0
  41. data/trimurti-0.1/docs/classes/Plugins/Spec.src/M000026.html +22 -0
  42. data/trimurti-0.1/docs/classes/Plugins/Spec.src/M000027.html +18 -0
  43. data/trimurti-0.1/docs/classes/Plugins/Spec.src/M000028.html +20 -0
  44. data/trimurti-0.1/docs/classes/QBE_ID.html +147 -0
  45. data/trimurti-0.1/docs/classes/QBE_ID.src/M000059.html +18 -0
  46. data/trimurti-0.1/docs/classes/QueryByExample.html +270 -0
  47. data/trimurti-0.1/docs/classes/QueryByExample.src/M000054.html +17 -0
  48. data/trimurti-0.1/docs/classes/QueryByExample.src/M000055.html +17 -0
  49. data/trimurti-0.1/docs/classes/QueryByExample.src/M000056.html +17 -0
  50. data/trimurti-0.1/docs/classes/QueryByExample.src/M000057.html +17 -0
  51. data/trimurti-0.1/docs/classes/QueryByExample.src/M000058.html +17 -0
  52. data/trimurti-0.1/docs/classes/Shiva.html +159 -0
  53. data/trimurti-0.1/docs/classes/Shiva.src/M000060.html +18 -0
  54. data/trimurti-0.1/docs/classes/Shiva.src/M000061.html +19 -0
  55. data/trimurti-0.1/docs/classes/String.html +176 -0
  56. data/trimurti-0.1/docs/classes/String.src/M000022.html +16 -0
  57. data/trimurti-0.1/docs/classes/String.src/M000023.html +16 -0
  58. data/trimurti-0.1/docs/classes/Symbol.html +176 -0
  59. data/trimurti-0.1/docs/classes/Symbol.src/M000003.html +16 -0
  60. data/trimurti-0.1/docs/classes/Symbol.src/M000004.html +16 -0
  61. data/trimurti-0.1/docs/classes/Trimurti.html +189 -0
  62. data/trimurti-0.1/docs/classes/Trimurti.src/M000019.html +16 -0
  63. data/trimurti-0.1/docs/classes/Trimurti.src/M000020.html +16 -0
  64. data/trimurti-0.1/docs/classes/Vishnu.html +563 -0
  65. data/trimurti-0.1/docs/classes/Vishnu.src/M000038.html +18 -0
  66. data/trimurti-0.1/docs/classes/Vishnu.src/M000039.html +18 -0
  67. data/trimurti-0.1/docs/classes/Vishnu.src/M000040.html +18 -0
  68. data/trimurti-0.1/docs/classes/Vishnu.src/M000041.html +22 -0
  69. data/trimurti-0.1/docs/classes/Vishnu.src/M000042.html +23 -0
  70. data/trimurti-0.1/docs/classes/Vishnu.src/M000043.html +24 -0
  71. data/trimurti-0.1/docs/classes/Vishnu.src/M000044.html +24 -0
  72. data/trimurti-0.1/docs/classes/Vishnu.src/M000045.html +18 -0
  73. data/trimurti-0.1/docs/classes/Vishnu.src/M000046.html +22 -0
  74. data/trimurti-0.1/docs/classes/Vishnu.src/M000047.html +20 -0
  75. data/trimurti-0.1/docs/classes/Vishnu.src/M000048.html +18 -0
  76. data/trimurti-0.1/docs/classes/Vishnu.src/M000049.html +22 -0
  77. data/trimurti-0.1/docs/classes/Vishnu.src/M000050.html +20 -0
  78. data/trimurti-0.1/docs/classes/Vishnu.src/M000051.html +19 -0
  79. data/trimurti-0.1/docs/classes/Vishnu.src/M000052.html +30 -0
  80. data/trimurti-0.1/docs/classes/Vishnu.src/M000053.html +21 -0
  81. data/trimurti-0.1/docs/created.rid +1 -0
  82. data/trimurti-0.1/docs/dot/f_0.dot +14 -0
  83. data/trimurti-0.1/docs/dot/f_0.png +0 -0
  84. data/trimurti-0.1/docs/dot/f_1.dot +14 -0
  85. data/trimurti-0.1/docs/dot/f_1.png +0 -0
  86. data/trimurti-0.1/docs/dot/f_2.dot +14 -0
  87. data/trimurti-0.1/docs/dot/f_2.png +0 -0
  88. data/trimurti-0.1/docs/dot/f_3.dot +39 -0
  89. data/trimurti-0.1/docs/dot/f_3.png +0 -0
  90. data/trimurti-0.1/docs/dot/f_4.dot +39 -0
  91. data/trimurti-0.1/docs/dot/f_4.png +0 -0
  92. data/trimurti-0.1/docs/dot/f_5.dot +69 -0
  93. data/trimurti-0.1/docs/dot/f_5.png +0 -0
  94. data/trimurti-0.1/docs/dot/f_6.dot +149 -0
  95. data/trimurti-0.1/docs/dot/f_6.png +0 -0
  96. data/trimurti-0.1/docs/dot/m_3_0.dot +30 -0
  97. data/trimurti-0.1/docs/dot/m_3_0.png +0 -0
  98. data/trimurti-0.1/docs/dot/m_4_0.dot +39 -0
  99. data/trimurti-0.1/docs/dot/m_4_0.png +0 -0
  100. data/trimurti-0.1/docs/dot/m_5_0.dot +40 -0
  101. data/trimurti-0.1/docs/dot/m_5_0.png +0 -0
  102. data/trimurti-0.1/docs/dot/m_5_1.dot +30 -0
  103. data/trimurti-0.1/docs/dot/m_5_1.png +0 -0
  104. data/trimurti-0.1/docs/dot/m_6_0.dot +40 -0
  105. data/trimurti-0.1/docs/dot/m_6_0.png +0 -0
  106. data/trimurti-0.1/docs/dot/m_6_1.dot +30 -0
  107. data/trimurti-0.1/docs/dot/m_6_1.png +0 -0
  108. data/trimurti-0.1/docs/dot/m_6_2.dot +30 -0
  109. data/trimurti-0.1/docs/dot/m_6_2.png +0 -0
  110. data/trimurti-0.1/docs/files/License_txt.html +132 -0
  111. data/trimurti-0.1/docs/files/ReadMe_Amber_txt.html +491 -0
  112. data/trimurti-0.1/docs/files/ReadMe_txt.html +694 -0
  113. data/trimurti-0.1/docs/files/nist/trimurti/linda_rb.html +129 -0
  114. data/trimurti-0.1/docs/files/nist/trimurti/plugins_rb.html +129 -0
  115. data/trimurti-0.1/docs/files/nist/trimurti/queryByExample_rb.html +128 -0
  116. data/trimurti-0.1/docs/files/nist/trimurti/trimurti_rb.html +151 -0
  117. data/trimurti-0.1/docs/fr_class_index.html +43 -0
  118. data/trimurti-0.1/docs/fr_file_index.html +33 -0
  119. data/trimurti-0.1/docs/fr_method_index.html +89 -0
  120. data/trimurti-0.1/docs/images/overview.jpg +0 -0
  121. data/trimurti-0.1/docs/index.html +24 -0
  122. data/trimurti-0.1/docs/rdoc-style.css +208 -0
  123. data/trimurti-0.1/lib/nist/trimurti/linda.rb +163 -0
  124. data/trimurti-0.1/lib/nist/trimurti/plugins.rb +107 -0
  125. data/trimurti-0.1/lib/nist/trimurti/queryByExample.rb +81 -0
  126. data/trimurti-0.1/lib/nist/trimurti/trimurti.rb +433 -0
  127. data/trimurti-0.1/tests/test_linda.rb +111 -0
  128. data/trimurti-0.1/tests/test_trimurti.rb +247 -0
  129. metadata +241 -0
@@ -0,0 +1,111 @@
1
+ # Tests linda.rb
2
+ #
3
+ # Author: A. Griesser
4
+
5
+ require 'nist/trimurti/linda'
6
+ require 'test/unit'
7
+ require 'timeout'
8
+
9
+ # Add input_file, expected_file, and acual_file to Test::Unit::TestCase
10
+ require File.join( ENV['DevRoot'], 'Amber', 'bin', 'phb.rb' )
11
+
12
+
13
+ # ============ Test Class ================================
14
+
15
+ class Test_Linda < Test::Unit::TestCase
16
+
17
+ def initialize(test_method_name)
18
+ super
19
+ end
20
+
21
+ def setup
22
+ Linda.default_instance=nil
23
+ Linda.is_local = true
24
+ end
25
+
26
+
27
+ # ============== Tests =================
28
+
29
+ def test_tuple_ops
30
+ h = [:flower, 'Hyacinth', 55, :snob]
31
+ v = [:flower, 'Violet', 40, :distraught]
32
+ r = [:flower, 'Rose', 30, :floozy]
33
+ # Add some Tuples.
34
+ Linda.put(*h)
35
+ Linda.put(*v)
36
+ Linda.put(*r)
37
+ # Verify read without wait. Failure could be due to Linda.put as well as Linda.rdp
38
+ tuple = Linda.rdp(nil, /yac/, nil, nil)
39
+ assert_equal(h, tuple)
40
+ tuple = Linda.rdp(nil, nil, 40, nil)
41
+ assert_equal(v, tuple)
42
+ tuple = Linda.rdp(nil, nil, nil, :floozy)
43
+ assert_equal(r, tuple)
44
+ # Verify read with wait (when Tuple is present)
45
+ tuple = Linda.rd(nil, /yac/, nil, nil)
46
+ assert_equal(h, tuple)
47
+ tuple = Linda.rd(nil, nil, 40, nil)
48
+ assert_equal(v, tuple)
49
+ tuple = Linda.rd(nil, nil, nil, :floozy)
50
+ assert_equal(r, tuple)
51
+ # Verify removal, and that after removal rdp returns nil, rd times out, get times out.
52
+ tuple = Linda.get(nil, /yac/, nil, nil)
53
+ assert_equal(h, tuple)
54
+ assert_nil(Linda.rdp(nil, /yac/, nil, nil))
55
+ assert_timeout(3) { Linda.rd(nil, /yac/, nil, nil) }
56
+ assert_timeout(3) { Linda.get(nil, /yac/, nil, nil) }
57
+ tuple = Linda.get(nil, nil, 40, nil)
58
+ assert_equal(v, tuple)
59
+ assert_nil(Linda.rdp(nil, nil, 40, nil))
60
+ assert_timeout(3) { Linda.rd(nil, nil, 40, nil) }
61
+ assert_timeout(3) { Linda.get(nil, nil, 40, nil) }
62
+ tuple = Linda.get(nil, nil, nil, :floozy)
63
+ assert_equal(r, tuple)
64
+ assert_nil(Linda.rdp(nil, nil, nil, :floozy))
65
+ assert_timeout(3) { Linda.rd(nil, nil, nil, :floozy) }
66
+ assert_timeout(3) { Linda.get(nil, nil, nil, :floozy) }
67
+ end
68
+
69
+ def test_start_server
70
+ Linda.start_server(false)
71
+ end
72
+
73
+ def test_tuple_ops_NONLOCAL
74
+ Linda.is_local = false
75
+ test_tuple_ops
76
+ end
77
+
78
+
79
+
80
+ # ============== Define test order =================
81
+
82
+ def self.suite
83
+ suite = Test::Unit::TestSuite.new('Test_Linda')
84
+ suite << self.new("test_tuple_ops")
85
+ suite << self.new("test_start_server")
86
+ suite << self.new("test_tuple_ops_NONLOCAL")
87
+ suite
88
+ end
89
+
90
+ # ====== helpers ============
91
+
92
+
93
+ def limit(maxSeconds, timeoutReturnValue, &block)
94
+ return Timeout::timeout(maxSeconds, &block)
95
+ rescue Timeout::Error
96
+ return timeoutReturnValue
97
+ end
98
+
99
+ def assert_timeout(maxSeconds, &block)
100
+ answer = limit(maxSeconds, :timeout, &block)
101
+ assert(:timeout, answer)
102
+ end
103
+
104
+ end # Test_Class
105
+
106
+ # ====================================================
107
+
108
+ if __FILE__ == $0 #directlyInvoked?
109
+ require 'test/unit/ui/console/testrunner'
110
+ Test::Unit::UI::Console::TestRunner.run(Test_Linda)
111
+ end
@@ -0,0 +1,247 @@
1
+ # Tests trimurti.rb
2
+ #
3
+ # Author: A. Griesser
4
+
5
+
6
+ require 'nist/trimurti/trimurti'
7
+ require 'test/unit'
8
+
9
+ # Add input_file, expected_file, and acual_file to Test::Unit::TestCase
10
+ require File.join( ENV['DevRoot'], 'Amber', 'bin', 'phb.rb' )
11
+
12
+ # ============ Services used for testing ================================
13
+
14
+ module Freen
15
+ def freen(aString)
16
+ '42 ' + aString
17
+ end
18
+ end
19
+
20
+ class SpacelySprocket
21
+ include Freen
22
+ attr_accessor :name, :blort
23
+ def initialize(name)
24
+ self.name=name
25
+ end
26
+ def use_blort
27
+ blort.blort(5)
28
+ end
29
+ end
30
+
31
+ module Blort
32
+ def blort(aNumber)
33
+ 42 + aNumber
34
+ end
35
+ end
36
+
37
+ class CogswellCog
38
+ include Blort
39
+ attr_accessor :name, :freen
40
+ def initialize(name)
41
+ self.name=name
42
+ end
43
+ def use_freen
44
+ freen.freen('giant mutant hyperintelligent Wombats')
45
+ end
46
+ def attach_freen(aFreen)
47
+ self.freen=aFreen
48
+ end
49
+ end
50
+
51
+ class PorkBarrel
52
+ attr_accessor :bellies
53
+ def more(pork)
54
+ bellies << pork
55
+ end
56
+ def status_quo
57
+ self.bellies=[:highways]
58
+ end
59
+ def deny
60
+ self.bellies.clear
61
+ end
62
+ end
63
+
64
+ class Politician
65
+ attr_accessor :barrel
66
+ def cheese_it
67
+ barrel.deny
68
+ end
69
+ def more_pork(pork)
70
+ barrel.more(pork)
71
+ end
72
+ def self.spawn
73
+ new
74
+ end
75
+ end
76
+
77
+ class Electorate
78
+ attr_accessor :politico
79
+ def impeach
80
+ self.politico=nil
81
+ end
82
+ def oink(pork)
83
+ politico.more_pork(pork)
84
+ end
85
+ end
86
+
87
+
88
+ # ============ Test Class ================================
89
+
90
+ class Test_Trimurti < Test::Unit::TestCase
91
+
92
+ def initialize(test_method_name)
93
+ super
94
+ end
95
+
96
+ def setup
97
+ Trimurti.default_instance=nil
98
+ end
99
+
100
+
101
+ # ============== Tests =================
102
+
103
+
104
+ def test_register_component
105
+ # Register the components: describes services offered by components, and provide services to components.
106
+ cogswell = CogswellCog.new('W. C.')
107
+ spacely = SpacelySprocket.new('Cosmo G.')
108
+ Trimurti.register_component('Cogswell', cogswell, [:Blort], {:attach_freen => :Freen})
109
+ Trimurti.register_component('Spacely', spacely, [:Freen], {:blort= => :Blort})
110
+ # Verify component registration
111
+ assert_same(cogswell, Trimurti.component('Cogswell'))
112
+ assert_same(spacely, Trimurti.component('Spacely'))
113
+ assert_equal(expected_components, Trimurti.show_components('') )
114
+ # Register the services (according to component registration)
115
+ Trimurti.register_services
116
+ # Verify service registration
117
+ assert_same(cogswell, Trimurti.service(nil, nil, :Blort))
118
+ assert_same(spacely, Trimurti.service(nil, nil, :Freen))
119
+ assert_equal(expected_services, Trimurti.show_services('') )
120
+ # Hook up the clients and servers
121
+ Trimurti.connect_services
122
+ # Now verify that the connections were established correctly.
123
+ assert_same(spacely, cogswell.freen)
124
+ assert_same(cogswell, spacely.blort)
125
+ # Operate the coupled components
126
+ assert_equal('42 giant mutant hyperintelligent Wombats', cogswell.use_freen)
127
+ assert_equal(47, spacely.use_blort)
128
+ end
129
+
130
+ def test_plugins
131
+ str = ''
132
+ Trimurti.require_plugins('src_data/test_input/*Bone.rb', str)
133
+ expected ="\n\nRequiring plugin: 'src_data/test_input/ankleBone'"
134
+ expected << "\nRequiring plugin: 'src_data/test_input/hipBone'"
135
+ expected << "\nRequiring plugin: 'src_data/test_input/legBone'"
136
+ assert_equal(expected, str)
137
+ Trimurti.register_services
138
+ Trimurti.connect_services
139
+ hip = Trimurti.service('HipBone')
140
+ expected = "The hip bone's connected to the leg bone, The leg bone's connected to the ankle bone, etc."
141
+ assert_equal(expected, hip.rhyme)
142
+ end
143
+
144
+ def test_yaml
145
+ $EVIDENCE_OF_LOAD=Array.new
146
+ # Construct an Array of ComponentSpecs to marshall
147
+ specs = Array.new
148
+ spec = ComponentSpec.new
149
+ spec.name='Ludwig'
150
+ spec.required_source=['src_data/test_input/alpha', 'src_data/test_input/beta']
151
+ spec.life_cycle={:create => "Puzzle.wombat(42, 'ebenezer')"}
152
+ spec.provides=[:Perplexity]
153
+ spec.needs={:enigma= => 'Wolfgang'}
154
+ specs << spec
155
+ spec = ComponentSpec.new
156
+ spec.name='Wolfgang'
157
+ spec.required_source=['src_data/test_input/alpha', 'src_data/test_input/gamma']
158
+ spec.life_cycle={:create => "Enigma.gizzard"}
159
+ spec.provides=[:Envy]
160
+ spec.needs={}
161
+ specs << spec
162
+ # Marshall the ComponentSpecs
163
+ fileName = 'temp/test_results/mystry.yml'
164
+ File.open(fileName, 'w') {|f| YAML.dump(specs, f)}
165
+ # Regisgter components built according to the ComponentSpecs
166
+ Trimurti.from_yaml(fileName)
167
+ assert_equal(['alpha', 'beta', 'gamma'], $EVIDENCE_OF_LOAD)
168
+ # Build
169
+ Trimurti.register_services
170
+ Trimurti.connect_services
171
+ puzzle = Trimurti.service('Ludwig')
172
+ expected = '42 Belgum ebenezer'
173
+ assert_equal(expected, puzzle.thunder)
174
+ end
175
+
176
+
177
+ def test_lifeCycle
178
+ Trimurti.register_component('PrkBrl', PorkBarrel.new, [:re_election], {}, {:start => 'component.status_quo'})
179
+ Trimurti.register_component('Pol', nil, [:pork], {:barrel= => :re_election}, {:create => 'Politician.spawn', :stop => 'component.cheese_it'})
180
+ Trimurti.register_component('JoeAvg', Electorate.new, [:votes], {:politico= => :pork}, {:destroy => 'component.impeach', :squeal => 'component.oink(:mil_base)'})
181
+ Trimurti.assemble
182
+ # Verify component registration, and instantiation of Politician
183
+ prk = Trimurti.component('PrkBrl')
184
+ pol = Trimurti.service(nil, nil, :pork)
185
+ joe = Trimurti.service('JoeAvg')
186
+ assert_kind_of(PorkBarrel, prk)
187
+ assert_kind_of(Politician, pol)
188
+ assert_kind_of(Electorate, joe)
189
+ # Verify assembly
190
+ assert_same(pol, joe.politico)
191
+ assert_same(prk, pol.barrel)
192
+ # Verify :start
193
+ assert_equal( [:highways], prk.bellies)
194
+ # Distribute custom :squeal event
195
+ Trimurti.life_cycle(:squeal)
196
+ # Verify :squeal
197
+ assert_equal( [:highways, :mil_base], prk.bellies)
198
+ # Verify :stop
199
+ Trimurti.stop_components
200
+ assert_equal( [], prk.bellies)
201
+ # Verify :destroy
202
+ Trimurti.destroy_components
203
+ assert_nil(joe.politico)
204
+ end
205
+
206
+
207
+ # ============== Define test order =================
208
+
209
+ def self.suite
210
+ suite = Test::Unit::TestSuite.new('Test_Trimurti')
211
+ suite << self.new("test_register_component")
212
+ suite << self.new("test_lifeCycle")
213
+ suite << self.new("test_plugins")
214
+ suite << self.new("test_yaml")
215
+ suite
216
+ end
217
+
218
+ # ====== helpers ============
219
+
220
+ def expected_components
221
+ answer = <<END_OF_STRING
222
+
223
+ All registered components (Name, host, provides, needs, life_cycle):
224
+ "Cogswell" "hostName" [:Blort] {:attach_freen=>:Freen} {}
225
+ "Spacely" "hostName" [:Freen] {:blort==>:Blort} {}
226
+ END_OF_STRING
227
+ answer.gsub('hostName', Trimurti.gethostname)
228
+ end
229
+
230
+ def expected_services
231
+ answer = <<END_OF_STRING
232
+
233
+ All registered services (name, host, provides):
234
+ "Cogswell" "hostName" :Blort
235
+ "Spacely" "hostName" :Freen
236
+ END_OF_STRING
237
+ answer.gsub('hostName', Trimurti.gethostname)
238
+ end
239
+
240
+ end # Test_Class
241
+
242
+ # ====================================================
243
+
244
+ if __FILE__ == $0 #directlyInvoked?
245
+ require 'test/unit/ui/console/testrunner'
246
+ Test::Unit::UI::Console::TestRunner.run(Test_Trimurti)
247
+ end
metadata ADDED
@@ -0,0 +1,241 @@
1
+ --- !ruby/object:Gem::Specification
2
+ rubygems_version: 0.8.10
3
+ specification_version: 1
4
+ name: trimurti
5
+ version: !ruby/object:Gem::Version
6
+ version: "0.1"
7
+ date: 2006-01-15
8
+ summary: "Applications that assemble themselves, plugins"
9
+ require_paths:
10
+ - lib
11
+ email: griesser@nist.gov
12
+ homepage:
13
+ rubyforge_project:
14
+ description: "Trimurti make it easy for applications to load pugins, and to assemble
15
+ themselves from local or distributed services."
16
+ autorequire:
17
+ - trimurti-0.1/lib/nist/trimurti/linda.rb
18
+ - trimurti-0.1/lib/nist/trimurti/plugins.rb
19
+ - trimurti-0.1/lib/nist/trimurti/queryByExample.rb
20
+ - trimurti-0.1/lib/nist/trimurti/trimurti.rb
21
+ default_executable:
22
+ bindir: bin
23
+ has_rdoc: false
24
+ required_ruby_version: !ruby/object:Gem::Version::Requirement
25
+ requirements:
26
+ -
27
+ - ">"
28
+ - !ruby/object:Gem::Version
29
+ version: 0.0.0
30
+ version:
31
+ platform: ruby
32
+ authors:
33
+ - Art Griesser
34
+ files:
35
+ - trimurti-0.1
36
+ - trimurti-0.1/bin
37
+ - trimurti-0.1/docs
38
+ - trimurti-0.1/ext
39
+ - trimurti-0.1/lib
40
+ - trimurti-0.1/tests
41
+ - trimurti-0.1/docs/classes
42
+ - trimurti-0.1/docs/created.rid
43
+ - trimurti-0.1/docs/dot
44
+ - trimurti-0.1/docs/files
45
+ - trimurti-0.1/docs/fr_class_index.html
46
+ - trimurti-0.1/docs/fr_file_index.html
47
+ - trimurti-0.1/docs/fr_method_index.html
48
+ - trimurti-0.1/docs/images
49
+ - trimurti-0.1/docs/index.html
50
+ - trimurti-0.1/docs/rdoc-style.css
51
+ - trimurti-0.1/docs/classes/Array.html
52
+ - trimurti-0.1/docs/classes/Array.src
53
+ - trimurti-0.1/docs/classes/Asserter.html
54
+ - trimurti-0.1/docs/classes/Brahma.html
55
+ - trimurti-0.1/docs/classes/Brahma.src
56
+ - trimurti-0.1/docs/classes/ComponentSpec.html
57
+ - trimurti-0.1/docs/classes/ComponentSpec.src
58
+ - trimurti-0.1/docs/classes/DRb.html
59
+ - trimurti-0.1/docs/classes/DRb.src
60
+ - trimurti-0.1/docs/classes/GUID.html
61
+ - trimurti-0.1/docs/classes/Linda.html
62
+ - trimurti-0.1/docs/classes/Linda.src
63
+ - trimurti-0.1/docs/classes/Object.html
64
+ - trimurti-0.1/docs/classes/Object.src
65
+ - trimurti-0.1/docs/classes/Plugins
66
+ - trimurti-0.1/docs/classes/Plugins.html
67
+ - trimurti-0.1/docs/classes/Plugins.src
68
+ - trimurti-0.1/docs/classes/QBE_ID.html
69
+ - trimurti-0.1/docs/classes/QBE_ID.src
70
+ - trimurti-0.1/docs/classes/QueryByExample.html
71
+ - trimurti-0.1/docs/classes/QueryByExample.src
72
+ - trimurti-0.1/docs/classes/Shiva.html
73
+ - trimurti-0.1/docs/classes/Shiva.src
74
+ - trimurti-0.1/docs/classes/String.html
75
+ - trimurti-0.1/docs/classes/String.src
76
+ - trimurti-0.1/docs/classes/Symbol.html
77
+ - trimurti-0.1/docs/classes/Symbol.src
78
+ - trimurti-0.1/docs/classes/Trimurti.html
79
+ - trimurti-0.1/docs/classes/Trimurti.src
80
+ - trimurti-0.1/docs/classes/Vishnu.html
81
+ - trimurti-0.1/docs/classes/Vishnu.src
82
+ - trimurti-0.1/docs/classes/Array.src/M000005.html
83
+ - trimurti-0.1/docs/classes/Array.src/M000006.html
84
+ - trimurti-0.1/docs/classes/Brahma.src/M000029.html
85
+ - trimurti-0.1/docs/classes/Brahma.src/M000030.html
86
+ - trimurti-0.1/docs/classes/Brahma.src/M000031.html
87
+ - trimurti-0.1/docs/classes/Brahma.src/M000032.html
88
+ - trimurti-0.1/docs/classes/Brahma.src/M000033.html
89
+ - trimurti-0.1/docs/classes/Brahma.src/M000034.html
90
+ - trimurti-0.1/docs/classes/Brahma.src/M000035.html
91
+ - trimurti-0.1/docs/classes/Brahma.src/M000036.html
92
+ - trimurti-0.1/docs/classes/Brahma.src/M000037.html
93
+ - trimurti-0.1/docs/classes/ComponentSpec.src/M000001.html
94
+ - trimurti-0.1/docs/classes/ComponentSpec.src/M000002.html
95
+ - trimurti-0.1/docs/classes/DRb.src/M000062.html
96
+ - trimurti-0.1/docs/classes/DRb.src/M000063.html
97
+ - trimurti-0.1/docs/classes/Linda.src/M000007.html
98
+ - trimurti-0.1/docs/classes/Linda.src/M000008.html
99
+ - trimurti-0.1/docs/classes/Linda.src/M000009.html
100
+ - trimurti-0.1/docs/classes/Linda.src/M000010.html
101
+ - trimurti-0.1/docs/classes/Linda.src/M000011.html
102
+ - trimurti-0.1/docs/classes/Linda.src/M000012.html
103
+ - trimurti-0.1/docs/classes/Linda.src/M000013.html
104
+ - trimurti-0.1/docs/classes/Linda.src/M000014.html
105
+ - trimurti-0.1/docs/classes/Linda.src/M000015.html
106
+ - trimurti-0.1/docs/classes/Linda.src/M000016.html
107
+ - trimurti-0.1/docs/classes/Linda.src/M000017.html
108
+ - trimurti-0.1/docs/classes/Linda.src/M000018.html
109
+ - trimurti-0.1/docs/classes/Object.src/M000021.html
110
+ - trimurti-0.1/docs/classes/Plugins/Spec.html
111
+ - trimurti-0.1/docs/classes/Plugins/Spec.src
112
+ - trimurti-0.1/docs/classes/Plugins/Spec.src/M000026.html
113
+ - trimurti-0.1/docs/classes/Plugins/Spec.src/M000027.html
114
+ - trimurti-0.1/docs/classes/Plugins/Spec.src/M000028.html
115
+ - trimurti-0.1/docs/classes/Plugins.src/M000024.html
116
+ - trimurti-0.1/docs/classes/Plugins.src/M000025.html
117
+ - trimurti-0.1/docs/classes/QBE_ID.src/M000059.html
118
+ - trimurti-0.1/docs/classes/QueryByExample.src/M000054.html
119
+ - trimurti-0.1/docs/classes/QueryByExample.src/M000055.html
120
+ - trimurti-0.1/docs/classes/QueryByExample.src/M000056.html
121
+ - trimurti-0.1/docs/classes/QueryByExample.src/M000057.html
122
+ - trimurti-0.1/docs/classes/QueryByExample.src/M000058.html
123
+ - trimurti-0.1/docs/classes/Shiva.src/M000060.html
124
+ - trimurti-0.1/docs/classes/Shiva.src/M000061.html
125
+ - trimurti-0.1/docs/classes/String.src/M000022.html
126
+ - trimurti-0.1/docs/classes/String.src/M000023.html
127
+ - trimurti-0.1/docs/classes/Symbol.src/M000003.html
128
+ - trimurti-0.1/docs/classes/Symbol.src/M000004.html
129
+ - trimurti-0.1/docs/classes/Trimurti.src/M000019.html
130
+ - trimurti-0.1/docs/classes/Trimurti.src/M000020.html
131
+ - trimurti-0.1/docs/classes/Vishnu.src/M000038.html
132
+ - trimurti-0.1/docs/classes/Vishnu.src/M000039.html
133
+ - trimurti-0.1/docs/classes/Vishnu.src/M000040.html
134
+ - trimurti-0.1/docs/classes/Vishnu.src/M000041.html
135
+ - trimurti-0.1/docs/classes/Vishnu.src/M000042.html
136
+ - trimurti-0.1/docs/classes/Vishnu.src/M000043.html
137
+ - trimurti-0.1/docs/classes/Vishnu.src/M000044.html
138
+ - trimurti-0.1/docs/classes/Vishnu.src/M000045.html
139
+ - trimurti-0.1/docs/classes/Vishnu.src/M000046.html
140
+ - trimurti-0.1/docs/classes/Vishnu.src/M000047.html
141
+ - trimurti-0.1/docs/classes/Vishnu.src/M000048.html
142
+ - trimurti-0.1/docs/classes/Vishnu.src/M000049.html
143
+ - trimurti-0.1/docs/classes/Vishnu.src/M000050.html
144
+ - trimurti-0.1/docs/classes/Vishnu.src/M000051.html
145
+ - trimurti-0.1/docs/classes/Vishnu.src/M000052.html
146
+ - trimurti-0.1/docs/classes/Vishnu.src/M000053.html
147
+ - trimurti-0.1/docs/dot/f_0.dot
148
+ - trimurti-0.1/docs/dot/f_0.png
149
+ - trimurti-0.1/docs/dot/f_1.dot
150
+ - trimurti-0.1/docs/dot/f_1.png
151
+ - trimurti-0.1/docs/dot/f_2.dot
152
+ - trimurti-0.1/docs/dot/f_2.png
153
+ - trimurti-0.1/docs/dot/f_3.dot
154
+ - trimurti-0.1/docs/dot/f_3.png
155
+ - trimurti-0.1/docs/dot/f_4.dot
156
+ - trimurti-0.1/docs/dot/f_4.png
157
+ - trimurti-0.1/docs/dot/f_5.dot
158
+ - trimurti-0.1/docs/dot/f_5.png
159
+ - trimurti-0.1/docs/dot/f_6.dot
160
+ - trimurti-0.1/docs/dot/f_6.png
161
+ - trimurti-0.1/docs/dot/m_3_0.dot
162
+ - trimurti-0.1/docs/dot/m_3_0.png
163
+ - trimurti-0.1/docs/dot/m_4_0.dot
164
+ - trimurti-0.1/docs/dot/m_4_0.png
165
+ - trimurti-0.1/docs/dot/m_5_0.dot
166
+ - trimurti-0.1/docs/dot/m_5_0.png
167
+ - trimurti-0.1/docs/dot/m_5_1.dot
168
+ - trimurti-0.1/docs/dot/m_5_1.png
169
+ - trimurti-0.1/docs/dot/m_6_0.dot
170
+ - trimurti-0.1/docs/dot/m_6_0.png
171
+ - trimurti-0.1/docs/dot/m_6_1.dot
172
+ - trimurti-0.1/docs/dot/m_6_1.png
173
+ - trimurti-0.1/docs/dot/m_6_2.dot
174
+ - trimurti-0.1/docs/dot/m_6_2.png
175
+ - trimurti-0.1/docs/files/License_txt.html
176
+ - trimurti-0.1/docs/files/nist
177
+ - trimurti-0.1/docs/files/ReadMe_Amber_txt.html
178
+ - trimurti-0.1/docs/files/ReadMe_txt.html
179
+ - trimurti-0.1/docs/files/nist/trimurti
180
+ - trimurti-0.1/docs/files/nist/trimurti/linda_rb.html
181
+ - trimurti-0.1/docs/files/nist/trimurti/plugins_rb.html
182
+ - trimurti-0.1/docs/files/nist/trimurti/queryByExample_rb.html
183
+ - trimurti-0.1/docs/files/nist/trimurti/trimurti_rb.html
184
+ - trimurti-0.1/docs/images/overview.jpg
185
+ - trimurti-0.1/lib/nist
186
+ - trimurti-0.1/lib/nist/trimurti
187
+ - trimurti-0.1/lib/nist/trimurti/linda.rb
188
+ - trimurti-0.1/lib/nist/trimurti/plugins.rb
189
+ - trimurti-0.1/lib/nist/trimurti/queryByExample.rb
190
+ - trimurti-0.1/lib/nist/trimurti/trimurti.rb
191
+ - trimurti-0.1/tests/test_linda.rb
192
+ - trimurti-0.1/tests/test_trimurti.rb
193
+ test_files:
194
+ - trimurti-0.1/tests/test_linda.rb
195
+ - trimurti-0.1/tests/test_trimurti.rb
196
+ rdoc_options: []
197
+ extra_rdoc_files: []
198
+ executables: []
199
+ extensions: []
200
+ requirements: []
201
+ dependencies:
202
+ - !ruby/object:Gem::Dependency
203
+ name: common
204
+ version_requirement:
205
+ version_requirements: !ruby/object:Gem::Version::Requirement
206
+ requirements:
207
+ -
208
+ - ">"
209
+ - !ruby/object:Gem::Version
210
+ version: 0.0.0
211
+ version:
212
+ - !ruby/object:Gem::Dependency
213
+ name: log4r-1.0.5
214
+ version_requirement:
215
+ version_requirements: !ruby/object:Gem::Version::Requirement
216
+ requirements:
217
+ -
218
+ - ">"
219
+ - !ruby/object:Gem::Version
220
+ version: 0.0.0
221
+ version:
222
+ - !ruby/object:Gem::Dependency
223
+ name: rgl-0.2.3
224
+ version_requirement:
225
+ version_requirements: !ruby/object:Gem::Version::Requirement
226
+ requirements:
227
+ -
228
+ - ">"
229
+ - !ruby/object:Gem::Version
230
+ version: 0.0.0
231
+ version:
232
+ - !ruby/object:Gem::Dependency
233
+ name: stream-0.5
234
+ version_requirement:
235
+ version_requirements: !ruby/object:Gem::Version::Requirement
236
+ requirements:
237
+ -
238
+ - ">"
239
+ - !ruby/object:Gem::Version
240
+ version: 0.0.0
241
+ version: