scout-gear 10.7.2 → 10.7.4
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.
- checksums.yaml +4 -4
- data/.vimproject +47 -32
- data/VERSION +1 -1
- data/bin/scout +15 -2
- data/lib/scout/association/index.rb +4 -0
- data/lib/scout/association/item.rb +1 -1
- data/lib/scout/association.rb +32 -10
- data/lib/scout/entity/identifiers.rb +2 -2
- data/lib/scout/entity/property.rb +2 -2
- data/lib/scout/knowledge_base/enrichment.rb +9 -0
- data/lib/scout/knowledge_base/entity.rb +152 -0
- data/lib/scout/knowledge_base/list.rb +95 -0
- data/lib/scout/knowledge_base/query.rb +96 -0
- data/lib/scout/knowledge_base/registry.rb +175 -0
- data/lib/scout/knowledge_base/traverse.rb +329 -0
- data/lib/scout/knowledge_base.rb +91 -0
- data/lib/scout/persist/engine/tokyocabinet.rb +85 -77
- data/lib/scout/persist/tsv/adapter/base.rb +8 -22
- data/lib/scout/tsv/annotation.rb +4 -4
- data/lib/scout/tsv/index.rb +0 -2
- data/lib/scout/tsv/parser.rb +11 -1
- data/lib/scout/tsv/stream.rb +3 -3
- data/lib/scout/tsv/transformer.rb +12 -0
- data/lib/scout/tsv/util/process.rb +2 -2
- data/lib/scout/tsv.rb +2 -0
- data/lib/scout/workflow/definition.rb +6 -2
- data/lib/scout/workflow/deployment/trace.rb +1 -1
- data/lib/scout/workflow/step/dependencies.rb +3 -6
- data/lib/scout/workflow/step/info.rb +17 -3
- data/lib/scout/workflow/task/info.rb +99 -0
- data/lib/scout/workflow/task.rb +1 -0
- data/scout-gear.gemspec +27 -7
- data/scout_commands/doc +3 -3
- data/scout_commands/kb/config +33 -0
- data/scout_commands/kb/entities +35 -0
- data/scout_commands/kb/list +39 -0
- data/scout_commands/{db → kb}/query +6 -11
- data/scout_commands/{db → kb}/register +9 -8
- data/scout_commands/{db → kb}/show +6 -16
- data/scout_commands/kb/traverse +66 -0
- data/scout_commands/workflow/task +7 -2
- data/test/data/person/brothers +1 -1
- data/test/scout/entity/test_identifiers.rb +3 -3
- data/test/scout/knowledge_base/test_enrichment.rb +0 -0
- data/test/scout/knowledge_base/test_entity.rb +38 -0
- data/test/scout/knowledge_base/test_list.rb +40 -0
- data/test/scout/knowledge_base/test_query.rb +39 -0
- data/test/scout/knowledge_base/test_registry.rb +35 -0
- data/test/scout/knowledge_base/test_traverse.rb +245 -0
- data/test/scout/persist/test_tsv.rb +1 -0
- data/test/scout/test_association.rb +32 -3
- data/test/scout/test_entity.rb +0 -15
- data/test/scout/test_knowledge_base.rb +27 -0
- data/test/scout/test_tsv.rb +15 -0
- data/test/scout/tsv/test_parser.rb +4 -0
- data/test/scout/tsv/test_transformer.rb +13 -0
- data/test/scout/workflow/step/test_info.rb +11 -0
- data/test/scout/workflow/task/test_info.rb +22 -0
- data/test/test_helper.rb +17 -0
- metadata +26 -9
@@ -0,0 +1,245 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
require 'scout/knowledge_base'
|
5
|
+
class TestKnowledgeBaseTraverse < Test::Unit::TestCase
|
6
|
+
def test_traverse_single
|
7
|
+
TmpFile.with_dir do |dir|
|
8
|
+
kb = KnowledgeBase.new dir
|
9
|
+
kb.entity_options = {"TestKnowledgeBaseQuery::Person" => {test: "Default"}}
|
10
|
+
|
11
|
+
kb.register :brothers, datafile_test(:person).brothers, undirected: true
|
12
|
+
kb.register :parents, datafile_test(:person).parents, entity_options: {"TestKnowledgeBaseQuery::Person" => {test: "Parents"}}
|
13
|
+
|
14
|
+
rules = []
|
15
|
+
rules << "Miki brothers ?1"
|
16
|
+
res = kb.traverse rules
|
17
|
+
assert_include res.first["?1"], "Isa"
|
18
|
+
|
19
|
+
rules = []
|
20
|
+
rules << "Miki parents ?1"
|
21
|
+
entities, paths = kb.traverse rules
|
22
|
+
assert_include paths.first.first.info, "Type of parent"
|
23
|
+
|
24
|
+
rules = []
|
25
|
+
rules << "?1 parents Domingo"
|
26
|
+
entities, paths = kb.traverse rules
|
27
|
+
assert_include entities["?1"], "Clei"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_traverse_multiple
|
32
|
+
TmpFile.with_dir do |dir|
|
33
|
+
kb = KnowledgeBase.new dir
|
34
|
+
|
35
|
+
kb.register :brothers, datafile_test(:person).brothers, undirected: true
|
36
|
+
kb.register :parents, datafile_test(:person).parents
|
37
|
+
kb.register :marriages, datafile_test(:person).marriages, source: "=>Alias", target: "=>Alias"
|
38
|
+
|
39
|
+
rules = []
|
40
|
+
rules << "Miki marriages ?1"
|
41
|
+
rules << "?1 brothers ?2"
|
42
|
+
res = kb.traverse rules
|
43
|
+
assert_include res.first["?2"], "Guille"
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def test_traverse_condition
|
48
|
+
TmpFile.with_dir do |dir|
|
49
|
+
kb = KnowledgeBase.new dir
|
50
|
+
|
51
|
+
kb.register :brothers, datafile_test(:person).brothers, undirected: true
|
52
|
+
kb.register :parents, datafile_test(:person).parents
|
53
|
+
kb.register :marriages, datafile_test(:person).marriages, source: "=>Alias", target: "=>Alias"
|
54
|
+
|
55
|
+
rules = []
|
56
|
+
rules << "Miki parents ?1 - 'Type of parent=father'"
|
57
|
+
entities, paths = kb.traverse rules
|
58
|
+
assert_equal entities["?1"], ["Juan"]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
|
62
|
+
def test_traverse_identify
|
63
|
+
TmpFile.with_dir do |dir|
|
64
|
+
kb = KnowledgeBase.new dir
|
65
|
+
kb.entity_options = {"TestKnowledgeBaseQuery::Person" => {test: "Default"}}
|
66
|
+
|
67
|
+
kb.register :brothers, datafile_test(:person).brothers, undirected: true
|
68
|
+
kb.register :parents, datafile_test(:person).parents, entity_options: {"TestKnowledgeBaseQuery::Person" => {test: "Parents"}}
|
69
|
+
|
70
|
+
rules = []
|
71
|
+
rules << "001 brothers ?1"
|
72
|
+
res = kb.traverse rules
|
73
|
+
assert_include res.first["?1"], "Isa"
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
def test_traverse_target
|
78
|
+
TmpFile.with_dir do |dir|
|
79
|
+
kb = KnowledgeBase.new dir
|
80
|
+
|
81
|
+
kb.register :brothers, datafile_test(:person).brothers, undirected: true
|
82
|
+
kb.register :parents, datafile_test(:person).parents
|
83
|
+
|
84
|
+
rules = []
|
85
|
+
rules << "?target =brothers 001"
|
86
|
+
rules << "?1 brothers ?target"
|
87
|
+
res = kb.traverse rules
|
88
|
+
assert_include res.first["?1"], "Isa"
|
89
|
+
assert_include res.first["?target"], "Miki"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
def test_traverse_translate_multiple
|
94
|
+
TmpFile.with_dir do |dir|
|
95
|
+
kb = KnowledgeBase.new dir
|
96
|
+
|
97
|
+
kb.register :brothers, datafile_test(:person).brothers, undirected: true
|
98
|
+
kb.register :parents, datafile_test(:person).parents
|
99
|
+
kb.register :marriages, datafile_test(:person).marriages, undirected: true
|
100
|
+
|
101
|
+
rules = []
|
102
|
+
rules << "Guille brothers ?1"
|
103
|
+
rules << "?2 =marriages ?1"
|
104
|
+
rules << "?2 marriages ?3"
|
105
|
+
entities, paths = kb.traverse rules
|
106
|
+
assert_include entities["?3"], "001"
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
#require File.join(File.expand_path(File.dirname(__FILE__)), '../..', 'test_helper.rb')
|
114
|
+
#require 'rbbt/knowledge_base/traverse'
|
115
|
+
#require 'rbbt/workflow'
|
116
|
+
#
|
117
|
+
#class TestKnowledgeBaseTraverse < Test::Unit::TestCase
|
118
|
+
# def with_kb(&block)
|
119
|
+
# keyword_test :organism do
|
120
|
+
# require 'rbbt/sources/organism'
|
121
|
+
# organism = Organism.default_code("Hsa")
|
122
|
+
# TmpFile.with_file do |tmpdir|
|
123
|
+
# kb = KnowledgeBase.new tmpdir
|
124
|
+
# kb.namespace = organism
|
125
|
+
# kb.format = {"Gene" => "Associated Gene Name"}
|
126
|
+
#
|
127
|
+
# kb.register :gene_ages, datadir_test.gene_ages, :source => "=>Associated Gene Name"
|
128
|
+
#
|
129
|
+
# kb.register :CollecTRI, datadir_test.CollecTRI,
|
130
|
+
# :source => "Transcription Factor=~Associated Gene Name",
|
131
|
+
# :target => "Target Gene=~Associated Gene Name",
|
132
|
+
# :fields => ["[ExTRI] Confidence", "[ExTRI] PMID"]
|
133
|
+
#
|
134
|
+
# yield kb
|
135
|
+
# end
|
136
|
+
# end
|
137
|
+
# end
|
138
|
+
#
|
139
|
+
# def test_traverse_simple
|
140
|
+
# with_kb do |kb|
|
141
|
+
# rules = []
|
142
|
+
# rules << "SMAD4 gene_ages ?1"
|
143
|
+
# res = kb.traverse rules
|
144
|
+
# assert_include res.first["?1"], "Bilateria"
|
145
|
+
# end
|
146
|
+
# end
|
147
|
+
#
|
148
|
+
# def test_traverse_CollecTRI
|
149
|
+
# with_kb do |kb|
|
150
|
+
# rules = []
|
151
|
+
# rules << "SMAD4 CollecTRI ?1 - '[ExTRI] Confidence=High'"
|
152
|
+
# res = kb.traverse rules
|
153
|
+
# assert res.last.any?
|
154
|
+
# end
|
155
|
+
# end
|
156
|
+
#
|
157
|
+
#
|
158
|
+
# def test_traverse
|
159
|
+
# with_kb do |kb|
|
160
|
+
# rules = []
|
161
|
+
# rules << "?1 CollecTRI SMAD7"
|
162
|
+
# rules << "?1 gene_ages ?2"
|
163
|
+
# rules << "SMAD4 gene_ages ?2"
|
164
|
+
# res = kb.traverse rules
|
165
|
+
# assert res.first["?1"].include? "MYC"
|
166
|
+
# end
|
167
|
+
# end
|
168
|
+
#
|
169
|
+
# def test_target
|
170
|
+
# with_kb do |kb|
|
171
|
+
# rules = []
|
172
|
+
# rules << "?target =CollecTRI SMAD7"
|
173
|
+
# rules << "?1 CollecTRI ?target"
|
174
|
+
# rules << "?1 gene_ages ?2"
|
175
|
+
# rules << "SMAD4 gene_ages ?2"
|
176
|
+
# res = kb.traverse rules
|
177
|
+
# assert res.first["?1"].include? "MYC"
|
178
|
+
# end
|
179
|
+
# end
|
180
|
+
#
|
181
|
+
# def test_target_translate
|
182
|
+
# with_kb do |kb|
|
183
|
+
# rules = []
|
184
|
+
# rules << "?target =CollecTRI ENSG00000101665"
|
185
|
+
# rules << "?1 CollecTRI ?target"
|
186
|
+
# res = kb.traverse rules
|
187
|
+
# assert res.first["?1"].include? "MYC"
|
188
|
+
# end
|
189
|
+
# end
|
190
|
+
#
|
191
|
+
# def test_target_attribute
|
192
|
+
# with_kb do |kb|
|
193
|
+
# rules = []
|
194
|
+
# rules << "?1 CollecTRI SMAD7"
|
195
|
+
# all = kb.traverse rules
|
196
|
+
#
|
197
|
+
# rules = []
|
198
|
+
# rules << "?1 CollecTRI SMAD7 - '[ExTRI] Confidence'=High"
|
199
|
+
# low = kb.traverse rules
|
200
|
+
#
|
201
|
+
# assert low.last.length < all.last.length
|
202
|
+
# end
|
203
|
+
# end
|
204
|
+
#
|
205
|
+
# def test_traverse_same_age
|
206
|
+
# with_kb do |kb|
|
207
|
+
# rules_str=<<-EOF
|
208
|
+
#?target1 =gene_ages SMAD7
|
209
|
+
#?target2 =gene_ages SMAD4
|
210
|
+
#?target1 gene_ages ?age
|
211
|
+
#?target2 gene_ages ?age
|
212
|
+
#?1 gene_ages ?age
|
213
|
+
# EOF
|
214
|
+
# rules = rules_str.split "\n"
|
215
|
+
# res = kb.traverse rules
|
216
|
+
# assert_include res.first["?1"], "MET"
|
217
|
+
# end
|
218
|
+
# end
|
219
|
+
#
|
220
|
+
# def test_traverse_same_age_acc
|
221
|
+
# with_kb do |kb|
|
222
|
+
# rules_str=<<-EOF
|
223
|
+
#?target1 =gene_ages SMAD7
|
224
|
+
#?target2 =gene_ages SMAD4
|
225
|
+
#?age{
|
226
|
+
# ?target1 gene_ages ?age
|
227
|
+
# ?target2 gene_ages ?age
|
228
|
+
#}
|
229
|
+
#?1 gene_ages ?age
|
230
|
+
# EOF
|
231
|
+
# rules = rules_str.split "\n"
|
232
|
+
# res = kb.traverse rules
|
233
|
+
# assert_include res.first["?1"], "MET"
|
234
|
+
# end
|
235
|
+
# end
|
236
|
+
#
|
237
|
+
# def test_wildcard_db
|
238
|
+
# with_kb do |kb|
|
239
|
+
# rules = []
|
240
|
+
# rules << "SMAD4 ?db ?1"
|
241
|
+
# res = kb.traverse rules
|
242
|
+
# end
|
243
|
+
# end
|
244
|
+
#end
|
245
|
+
#
|
@@ -4,12 +4,21 @@ require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1
|
|
4
4
|
require 'scout/tsv'
|
5
5
|
class TestAssociation < Test::Unit::TestCase
|
6
6
|
|
7
|
-
def
|
8
|
-
database = Association.database(datadir_test.person.marriages, :source => "Wife", :target => "Husband")
|
7
|
+
def test_marriages_simple_no_persist
|
8
|
+
database = Association.database(datadir_test.person.marriages, :source => "Wife", :target => "Husband", persist: false)
|
9
9
|
assert_equal "001", database["002"]["Husband"]
|
10
10
|
assert_equal "2021", database["002"]["Date"]
|
11
|
+
refute database.respond_to?(:persistence_path)
|
11
12
|
end
|
12
13
|
|
14
|
+
def test_marriages_simple_persist
|
15
|
+
database = Association.database(datadir_test.person.marriages, :source => "Wife", :target => "Husband", persist: true)
|
16
|
+
assert_equal "001", database["002"]["Husband"]
|
17
|
+
assert_equal "2021", database["002"]["Date"]
|
18
|
+
assert database.respond_to?(:persistence_path)
|
19
|
+
end
|
20
|
+
|
21
|
+
|
13
22
|
def test_marriages_open
|
14
23
|
database = Association.database(datadir_test.person.marriages, :source => "Wife (ID)=>Alias", :target => "Husband (ID)=>Name")
|
15
24
|
assert_equal "Miguel", database["Clei"]["Husband"]
|
@@ -38,7 +47,7 @@ class TestAssociation < Test::Unit::TestCase
|
|
38
47
|
end
|
39
48
|
|
40
49
|
def test_brothers_rename
|
41
|
-
database = Association.database(datadir_test.person.brothers, :
|
50
|
+
database = Association.database(datadir_test.person.brothers, source: "Older=~Older (Alias)=>Name")
|
42
51
|
assert_equal "Older (Name)", database.key_field
|
43
52
|
end
|
44
53
|
|
@@ -47,5 +56,25 @@ class TestAssociation < Test::Unit::TestCase
|
|
47
56
|
database = Association.database(tsv)
|
48
57
|
assert_equal database["Miki"], %w(Juan Mariluz)
|
49
58
|
end
|
59
|
+
|
60
|
+
def test_persist
|
61
|
+
database = Association.database(datadir_test.person.brothers, source: "Older=~Older (Alias)=>Name", persist: true)
|
62
|
+
assert database.respond_to?(:persistence_path)
|
63
|
+
end
|
64
|
+
|
65
|
+
def test_extra_options
|
66
|
+
file=<<-EOF
|
67
|
+
#: :extra_option=:test
|
68
|
+
#Key,Value
|
69
|
+
k,v
|
70
|
+
EOF
|
71
|
+
|
72
|
+
TmpFile.with_path(file.gsub(',', "\t")) do |f|
|
73
|
+
assert_nothing_raised do
|
74
|
+
Association.open(f, target: "Value", source: "Key")
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
50
79
|
end
|
51
80
|
|
data/test/scout/test_entity.rb
CHANGED
@@ -7,21 +7,6 @@ class TestEntity < Test::Unit::TestCase
|
|
7
7
|
Entity.entity_property_cache = tmpdir.property_cache
|
8
8
|
end
|
9
9
|
|
10
|
-
module Person
|
11
|
-
extend Entity
|
12
|
-
|
13
|
-
annotation :language
|
14
|
-
|
15
|
-
property :salutation do
|
16
|
-
case language
|
17
|
-
when 'es'
|
18
|
-
"Hola #{self}"
|
19
|
-
else
|
20
|
-
"Hi #{self}"
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
10
|
module EmptyEntity
|
26
11
|
extend Entity
|
27
12
|
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
class TestKnowlegeBase < Test::Unit::TestCase
|
5
|
+
def test_no_namespace
|
6
|
+
TmpFile.with_dir do |dir|
|
7
|
+
kb = KnowledgeBase.new dir
|
8
|
+
assert_nil kb.namespace
|
9
|
+
kb.save
|
10
|
+
|
11
|
+
kb = KnowledgeBase.load dir
|
12
|
+
assert_nil kb.namespace
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_namespace
|
17
|
+
TmpFile.with_dir do |dir|
|
18
|
+
kb = KnowledgeBase.new dir, "Hsa"
|
19
|
+
assert_equal "Hsa", kb.namespace
|
20
|
+
kb.save
|
21
|
+
|
22
|
+
kb = KnowledgeBase.load dir
|
23
|
+
assert_equal "Hsa", kb.namespace
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
data/test/scout/test_tsv.rb
CHANGED
@@ -427,4 +427,19 @@ row2 A B Id3
|
|
427
427
|
assert_equal %w(a aa aaa), tsv["row1"]
|
428
428
|
end
|
429
429
|
end
|
430
|
+
|
431
|
+
def test_number_key
|
432
|
+
content =<<-EOF
|
433
|
+
#Id ValueA ValueB OtherID
|
434
|
+
1 a|aa|aaa b Id1|Id2
|
435
|
+
2 A B Id3
|
436
|
+
EOF
|
437
|
+
|
438
|
+
TmpFile.with_file(content) do |filename|
|
439
|
+
tsv = TSV.open(filename, :sep => /\s+/, field: "ValueB")
|
440
|
+
assert_equal "b", tsv["1"]
|
441
|
+
end
|
442
|
+
|
443
|
+
|
444
|
+
end
|
430
445
|
end
|
@@ -153,4 +153,17 @@ row2 A2 B2
|
|
153
153
|
tsv = TSV.open(content)
|
154
154
|
assert_equal %w(A1), tsv.to_double["row1"]["ValueA"]
|
155
155
|
end
|
156
|
+
|
157
|
+
def test_head
|
158
|
+
content =<<-EOF
|
159
|
+
#: :sep=" "
|
160
|
+
#ID ValueA ValueB
|
161
|
+
row1 A1 B1
|
162
|
+
row2 A2 B2
|
163
|
+
row3 A3 B3
|
164
|
+
EOF
|
165
|
+
|
166
|
+
tsv = TSV.open(content)
|
167
|
+
assert_equal ["row1", "row2"], tsv.head(2).keys
|
168
|
+
end
|
156
169
|
end
|
@@ -3,6 +3,17 @@ require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1
|
|
3
3
|
require 'scout/workflow'
|
4
4
|
|
5
5
|
class TestStepInfo < Test::Unit::TestCase
|
6
|
+
def test_benchmark
|
7
|
+
i = {a:1, b: [1,2], c: "String"}
|
8
|
+
times = 100000
|
9
|
+
Misc.benchmark(times) do
|
10
|
+
Marshal.dump(i)
|
11
|
+
end
|
12
|
+
Misc.benchmark(times) do
|
13
|
+
i.to_json
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
6
17
|
def test_dependency
|
7
18
|
TmpFile.with_file do |tmpdir|
|
8
19
|
Path.setup(tmpdir)
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require File.expand_path(__FILE__).sub(%r(/test/.*), '/test/test_helper.rb')
|
2
|
+
require File.expand_path(__FILE__).sub(%r(.*/test/), '').sub(/test_(.*)\.rb/,'\1')
|
3
|
+
|
4
|
+
require 'scout/workflow'
|
5
|
+
class TestWorkflowInfo < Test::Unit::TestCase
|
6
|
+
def test_task_info
|
7
|
+
m = Module.new do
|
8
|
+
extend Workflow
|
9
|
+
self.name = "TestWF"
|
10
|
+
|
11
|
+
input :option1
|
12
|
+
task :step1 do end
|
13
|
+
|
14
|
+
dep :step1
|
15
|
+
input :option2
|
16
|
+
task :step2 do end
|
17
|
+
end
|
18
|
+
info = m.task_info :step2
|
19
|
+
assert_equal "TestWF/step2", info[:id]
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
data/test/test_helper.rb
CHANGED
@@ -72,3 +72,20 @@ class Test::Unit::TestCase
|
|
72
72
|
Test::Unit::TestCase.datafile_test(file)
|
73
73
|
end
|
74
74
|
end
|
75
|
+
|
76
|
+
module Object::Person
|
77
|
+
extend Entity
|
78
|
+
|
79
|
+
annotation :language
|
80
|
+
|
81
|
+
property :salutation do
|
82
|
+
case language
|
83
|
+
when 'es'
|
84
|
+
"Hola #{self}"
|
85
|
+
else
|
86
|
+
"Hi #{self}"
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
90
|
+
|
91
|
+
Object::Person.add_identifiers Test::Unit::TestCase.datafile_test(:person).identifiers
|
metadata
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: scout-gear
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 10.7.
|
4
|
+
version: 10.7.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
|
-
autorequire:
|
9
8
|
bindir: bin
|
10
9
|
cert_chain: []
|
11
|
-
date:
|
10
|
+
date: 2025-03-10 00:00:00.000000000 Z
|
12
11
|
dependencies:
|
13
12
|
- !ruby/object:Gem::Dependency
|
14
13
|
name: scout-essentials
|
@@ -156,6 +155,13 @@ files:
|
|
156
155
|
- lib/scout/entity/named_array.rb
|
157
156
|
- lib/scout/entity/object.rb
|
158
157
|
- lib/scout/entity/property.rb
|
158
|
+
- lib/scout/knowledge_base.rb
|
159
|
+
- lib/scout/knowledge_base/enrichment.rb
|
160
|
+
- lib/scout/knowledge_base/entity.rb
|
161
|
+
- lib/scout/knowledge_base/list.rb
|
162
|
+
- lib/scout/knowledge_base/query.rb
|
163
|
+
- lib/scout/knowledge_base/registry.rb
|
164
|
+
- lib/scout/knowledge_base/traverse.rb
|
159
165
|
- lib/scout/offsite.rb
|
160
166
|
- lib/scout/offsite/exceptions.rb
|
161
167
|
- lib/scout/offsite/ssh.rb
|
@@ -226,6 +232,7 @@ files:
|
|
226
232
|
- lib/scout/workflow/step/status.rb
|
227
233
|
- lib/scout/workflow/task.rb
|
228
234
|
- lib/scout/workflow/task/dependencies.rb
|
235
|
+
- lib/scout/workflow/task/info.rb
|
229
236
|
- lib/scout/workflow/task/inputs.rb
|
230
237
|
- lib/scout/workflow/usage.rb
|
231
238
|
- lib/scout/workflow/util.rb
|
@@ -234,12 +241,16 @@ files:
|
|
234
241
|
- scout_commands/alias
|
235
242
|
- scout_commands/batch/clean
|
236
243
|
- scout_commands/batch/list
|
237
|
-
- scout_commands/db/query
|
238
|
-
- scout_commands/db/register
|
239
|
-
- scout_commands/db/show
|
240
244
|
- scout_commands/doc
|
241
245
|
- scout_commands/find
|
242
246
|
- scout_commands/glob
|
247
|
+
- scout_commands/kb/config
|
248
|
+
- scout_commands/kb/entities
|
249
|
+
- scout_commands/kb/list
|
250
|
+
- scout_commands/kb/query
|
251
|
+
- scout_commands/kb/register
|
252
|
+
- scout_commands/kb/show
|
253
|
+
- scout_commands/kb/traverse
|
243
254
|
- scout_commands/log
|
244
255
|
- scout_commands/offsite
|
245
256
|
- scout_commands/rbbt
|
@@ -270,6 +281,12 @@ files:
|
|
270
281
|
- test/scout/entity/test_named_array.rb
|
271
282
|
- test/scout/entity/test_object.rb
|
272
283
|
- test/scout/entity/test_property.rb
|
284
|
+
- test/scout/knowledge_base/test_enrichment.rb
|
285
|
+
- test/scout/knowledge_base/test_entity.rb
|
286
|
+
- test/scout/knowledge_base/test_list.rb
|
287
|
+
- test/scout/knowledge_base/test_query.rb
|
288
|
+
- test/scout/knowledge_base/test_registry.rb
|
289
|
+
- test/scout/knowledge_base/test_traverse.rb
|
273
290
|
- test/scout/offsite/test_ssh.rb
|
274
291
|
- test/scout/offsite/test_step.rb
|
275
292
|
- test/scout/offsite/test_sync.rb
|
@@ -290,6 +307,7 @@ files:
|
|
290
307
|
- test/scout/persist/tsv/test_serialize.rb
|
291
308
|
- test/scout/test_association.rb
|
292
309
|
- test/scout/test_entity.rb
|
310
|
+
- test/scout/test_knowledge_base.rb
|
293
311
|
- test/scout/test_offsite.rb
|
294
312
|
- test/scout/test_semaphore.rb
|
295
313
|
- test/scout/test_tsv.rb
|
@@ -329,6 +347,7 @@ files:
|
|
329
347
|
- test/scout/workflow/step/test_provenance.rb
|
330
348
|
- test/scout/workflow/step/test_status.rb
|
331
349
|
- test/scout/workflow/task/test_dependencies.rb
|
350
|
+
- test/scout/workflow/task/test_info.rb
|
332
351
|
- test/scout/workflow/task/test_inputs.rb
|
333
352
|
- test/scout/workflow/test_definition.rb
|
334
353
|
- test/scout/workflow/test_documentation.rb
|
@@ -344,7 +363,6 @@ homepage: http://github.com/mikisvaz/scout-gear
|
|
344
363
|
licenses:
|
345
364
|
- MIT
|
346
365
|
metadata: {}
|
347
|
-
post_install_message:
|
348
366
|
rdoc_options: []
|
349
367
|
require_paths:
|
350
368
|
- lib
|
@@ -359,8 +377,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
359
377
|
- !ruby/object:Gem::Version
|
360
378
|
version: '0'
|
361
379
|
requirements: []
|
362
|
-
rubygems_version: 3.5
|
363
|
-
signing_key:
|
380
|
+
rubygems_version: 3.6.5
|
364
381
|
specification_version: 4
|
365
382
|
summary: basic gear for scouts
|
366
383
|
test_files: []
|