rbbt-util 5.25.41 → 5.25.42

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 7bb9b027bd080c570153ef54afc0e8811d3248bd
4
- data.tar.gz: 730e709d5f66cb69ee6df6a4e1209492afe98fc1
3
+ metadata.gz: 8c7c2171a24807d0a7e1f7d33bc6b95c4905ed4d
4
+ data.tar.gz: 99a0ae12b516bdf954e3128f48c1fb585efc2567
5
5
  SHA512:
6
- metadata.gz: a144d97ec06bc8475a8927e1d4c9d8245cfde81b70d822f245892245f664071b4b79e184d2d7266773dff7b3783b4b500d2b775a1eb08876f0d87b2f76492754
7
- data.tar.gz: 35a656ad8ccc7786e124c41e2cf3303543b878d02e016233c09f678f46e8d855039a77d7241db9055db4ee7ff8d8d768097b08fd75235e5d7d3fc36d536e8ca8
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 || self
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
- dep.task_name = d[:task]
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
- inputs[input.to_sym] = file
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)
@@ -167,7 +167,7 @@ class Step
167
167
  @result_type ||= if @task.nil?
168
168
  info[:result_type]
169
169
  else
170
- @task.result_type || info[:result_type]
170
+ @task.result_type || info[:result_type] || :string
171
171
  end
172
172
  end
173
173
 
@@ -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")
@@ -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.41
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-08 00:00:00.000000000 Z
11
+ date: 2019-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake