rbbt-util 5.25.41 → 5.25.42
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rbbt/workflow/accessor.rb +23 -3
- data/lib/rbbt/workflow/examples.rb +5 -1
- data/lib/rbbt/workflow/step.rb +1 -1
- data/lib/rbbt/workflow/step/run.rb +2 -2
- data/test/rbbt/test_workflow.rb +28 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8c7c2171a24807d0a7e1f7d33bc6b95c4905ed4d
|
4
|
+
data.tar.gz: 99a0ae12b516bdf954e3128f48c1fb585efc2567
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9cc824ce02d93292895424f60db1c14da44519a9e373e6064e05317b1c34e6f05efa43703dd8f38326a24d62b9c0edbc4f778866fe88bd772d6c2cd9c2cdb464
|
7
|
+
data.tar.gz: 4fec89ee21e2471dcf091891cada8115ec1d97cb54b689ee0fedfd7f86488379a3d5172c32b7be4305d333bcda2b859fb053ef2df4a2adefe0c2cfd924d235e1
|
@@ -92,13 +92,19 @@ class Step
|
|
92
92
|
next unless task_inputs.include? name.to_sym
|
93
93
|
next if value.nil?
|
94
94
|
path = File.join(dir, name.to_s)
|
95
|
-
type = input_types[name]
|
95
|
+
type = input_types[name].to_s
|
96
96
|
Log.debug "Saving job input #{name} (#{type}) into #{path}"
|
97
97
|
case
|
98
98
|
when Array === value
|
99
99
|
Open.write(path, value * "\n")
|
100
100
|
when IO === value
|
101
101
|
Open.write(path, value)
|
102
|
+
when type == "file"
|
103
|
+
if String === value && File.exists?(value)
|
104
|
+
Open.ln(value, path)
|
105
|
+
else
|
106
|
+
Open.write(path + '.read', value.to_s)
|
107
|
+
end
|
102
108
|
else
|
103
109
|
Open.write(path, value.to_s)
|
104
110
|
end
|
@@ -974,6 +980,7 @@ module Workflow
|
|
974
980
|
if override_dependencies[workflow.to_s] && value = override_dependencies[workflow.to_s][dep_task]
|
975
981
|
d_ = Step === value ? value : Workflow.load_step(value)
|
976
982
|
d_.info[:name] = d_.name
|
983
|
+
d_.task = workflow.tasks[dep_task] if workflow.tasks.include?(dep_task)
|
977
984
|
d_.task_name = dep_task
|
978
985
|
d_.overriden = true
|
979
986
|
d_
|
@@ -995,6 +1002,7 @@ module Workflow
|
|
995
1002
|
when Symbol
|
996
1003
|
if override_dependencies[self.to_s] && value = override_dependencies[self.to_s][dependency]
|
997
1004
|
d_ = Step === value ? value : Workflow.load_step(value)
|
1005
|
+
d_.task = self.tasks[dependency] if self.tasks.include?(dependency)
|
998
1006
|
d_.info[:name] = d_.name
|
999
1007
|
d_.task_name = dependency
|
1000
1008
|
d_.overriden = true
|
@@ -1024,6 +1032,12 @@ module Workflow
|
|
1024
1032
|
if override_dependencies[d[:workflow].to_s] && value = override_dependencies[d[:workflow].to_s][d[:task]]
|
1025
1033
|
d = (Step === value ? value : Workflow.load_step(value))
|
1026
1034
|
d.info[:name] = d.name
|
1035
|
+
begin
|
1036
|
+
workflow = String === d[:workflow] ? Kernel.const_get(d[:workflow]) : d[:workflow]
|
1037
|
+
d.task = workflow.tasks[d[:task]] if workflow.tasks.include?(d[:task])
|
1038
|
+
rescue
|
1039
|
+
Log.exception $!
|
1040
|
+
end
|
1027
1041
|
d.task_name = d[:task]
|
1028
1042
|
d.overriden = true
|
1029
1043
|
d
|
@@ -1042,11 +1056,17 @@ module Workflow
|
|
1042
1056
|
_inputs = IndiferentHash.setup(_inputs.dup)
|
1043
1057
|
dep = dependency.call jobname, _inputs, real_dependencies
|
1044
1058
|
if Hash === dep
|
1045
|
-
dep[:workflow] ||= wf
|
1059
|
+
dep[:workflow] ||= wf || self
|
1046
1060
|
if override_dependencies[dep[:workflow].to_s] && value = override_dependencies[dep[:workflow].to_s][dep[:task]]
|
1047
1061
|
dep = (Step === value ? value : Workflow.load_step(value))
|
1048
1062
|
dep.info[:name] = dep.name
|
1049
|
-
|
1063
|
+
begin
|
1064
|
+
workflow = String === dep[:workflow] ? Kernel.const_get(dep[:workflow]): dep[:workflow]
|
1065
|
+
dep.task = workflow.tasks[dep[:task]] if workflow.tasks.include?(dep[:task])
|
1066
|
+
rescue
|
1067
|
+
Log.exception $!
|
1068
|
+
end
|
1069
|
+
dep.task_name = dep[:task]
|
1050
1070
|
dep.overriden = true
|
1051
1071
|
dep
|
1052
1072
|
else
|
@@ -49,7 +49,11 @@ module Workflow
|
|
49
49
|
case input_types[input]
|
50
50
|
when :file
|
51
51
|
Log.debug "Pointing #{ input } to #{file}"
|
52
|
-
|
52
|
+
if file =~ /\.read$/
|
53
|
+
inputs[input.to_sym] = Open.read(file)
|
54
|
+
else
|
55
|
+
inputs[input.to_sym] = Open.realpath(file)
|
56
|
+
end
|
53
57
|
when :text
|
54
58
|
Log.debug "Reading #{ input } from #{file}"
|
55
59
|
inputs[input.to_sym] = Open.read(file)
|
data/lib/rbbt/workflow/step.rb
CHANGED
@@ -219,8 +219,6 @@ class Step
|
|
219
219
|
|
220
220
|
Open.write(pid_file, Process.pid.to_s) unless Open.exists? pid_file
|
221
221
|
|
222
|
-
config_keys_pre = Rbbt::Config::GOT_KEYS.dup
|
223
|
-
|
224
222
|
@exec = false
|
225
223
|
init_info(true)
|
226
224
|
|
@@ -310,7 +308,9 @@ class Step
|
|
310
308
|
set_info :started, (start_time = Time.now)
|
311
309
|
log :started, "Starting step #{Log.color :yellow, task.name.to_s || ""}"
|
312
310
|
|
311
|
+
config_keys_pre = Rbbt::Config::GOT_KEYS.dup
|
313
312
|
begin
|
313
|
+
|
314
314
|
result = _exec
|
315
315
|
rescue Aborted, Interrupt
|
316
316
|
log(:aborted, "Aborted")
|
data/test/rbbt/test_workflow.rb
CHANGED
@@ -151,6 +151,11 @@ for this dependency
|
|
151
151
|
"Sum odds: " << step(:sum_odds).load.to_s
|
152
152
|
end
|
153
153
|
|
154
|
+
input :file, :file, "Save file"
|
155
|
+
task :reverse_file => :text do |file|
|
156
|
+
Open.read(file).reverse
|
157
|
+
end
|
158
|
+
|
154
159
|
|
155
160
|
end
|
156
161
|
|
@@ -288,8 +293,8 @@ class TestWorkflow < Test::Unit::TestCase
|
|
288
293
|
end
|
289
294
|
|
290
295
|
def test_override_dep
|
291
|
-
TmpFile.with_file("OTHER") do |file|
|
292
|
-
assert TestWF.job(:repeat2, nil, :number => 3, "TestWF#str" => file).run.include? "OTHER"
|
296
|
+
TmpFile.with_file("OTHER", false) do |file|
|
297
|
+
assert TestWF.job(:repeat2, nil, :number => 3, "TestWF#str" => file).clean.run.include? "OTHER"
|
293
298
|
end
|
294
299
|
end
|
295
300
|
|
@@ -389,4 +394,25 @@ class TestWorkflow < Test::Unit::TestCase
|
|
389
394
|
assert_equal "Sum odds: 24", job.run
|
390
395
|
end
|
391
396
|
|
397
|
+
def test_save_inputs
|
398
|
+
TmpFile.with_file("Hi") do |file|
|
399
|
+
job = TestWF.job(:reverse_file, nil, :file => file)
|
400
|
+
TmpFile.with_file do |dir|
|
401
|
+
Path.setup(dir)
|
402
|
+
Step.save_job_inputs(job, dir)
|
403
|
+
assert_equal Dir.glob(dir + "/*"), [dir.file.find]
|
404
|
+
end
|
405
|
+
end
|
406
|
+
|
407
|
+
job = TestWF.job(:reverse_file, nil, :file => "code")
|
408
|
+
TmpFile.with_file do |dir|
|
409
|
+
Path.setup(dir)
|
410
|
+
Step.save_job_inputs(job, dir)
|
411
|
+
assert_equal Dir.glob(dir + "/*"), [dir.file.find + '.read']
|
412
|
+
inputs = Workflow.load_inputs(dir, [:file], :file => :file)
|
413
|
+
assert_equal inputs, {:file => 'code'}
|
414
|
+
end
|
415
|
+
|
416
|
+
end
|
417
|
+
|
392
418
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rbbt-util
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 5.25.
|
4
|
+
version: 5.25.42
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Miguel Vazquez
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|