libis-workflow 2.0.32 → 2.0.33

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: 6763478973f57afc6e94d2d38b5edf5e8c42360c
4
- data.tar.gz: e8680a2303d8d8b8853fa9aafef13c00ae094fe3
3
+ metadata.gz: b8ed3adeee0f666862bdedd0f695722d67619385
4
+ data.tar.gz: 8935af86aff161a31acb46e0a195b7a15b33d7de
5
5
  SHA512:
6
- metadata.gz: 720f2709d12c46e11c042b3cdea181444da2cfa045189c056252b4c95a4933f3684be652a0939e9b812210b474305dbb67b4f78b9a849f9e97194043e1857e8a
7
- data.tar.gz: 4b580fa05e0e2869d4d247fa9838ee48e87512655bc86d337481d45274e2c010ce25eaa7a4e31165cfbcb7ffbebf0de67101523fc247e1f9ab1be0a1a4827ebc
6
+ metadata.gz: 707f1e5286e629a04b7d5b1b0623bf5d23d175d2b278c5d1a42d0b3502e529db433407f12b328f2b64860140a6f1b2ef88da245e1f03ca0b8213f2b80258cb4f
7
+ data.tar.gz: d81c44bfe8b845ffc6f46a54ef19b9458482aef798945b3daa034b56b0365ff1947e723f824175e9b1a0eba2600285a8ad8d1228676a481a7a7c4c0b80b44195
data/.travis.yml CHANGED
@@ -3,8 +3,7 @@ sudo: false
3
3
  bundler_args: --without development
4
4
  cache: bundler
5
5
  rvm:
6
- - 2.1.0
7
- - 2.2.0
6
+ - 2.2.2
8
7
  - ruby-head
9
8
  - jruby-9.0.1.0
10
9
  jdk:
@@ -13,13 +12,9 @@ jdk:
13
12
  - oraclejdk8
14
13
  matrix:
15
14
  exclude:
16
- - rvm: 2.1.0
15
+ - rvm: 2.2.2
17
16
  jdk: oraclejdk7
18
- - rvm: 2.1.0
19
- jdk: oraclejdk8
20
- - rvm: 2.2.0
21
- jdk: oraclejdk7
22
- - rvm: 2.2.0
17
+ - rvm: 2.2.2
23
18
  jdk: oraclejdk8
24
19
  - rvm: ruby-head
25
20
  jdk: oraclejdk7
@@ -41,7 +41,7 @@ module Libis
41
41
  self.properties['uid'] = stats.uid
42
42
  self.properties['gid'] = stats.gid
43
43
  set_checksum(:MD5, ::Digest::MD5.hexdigest(File.read(name))) if File.file?(name)
44
- rescue
44
+ rescue => _e
45
45
  # ignored
46
46
  end
47
47
  self.properties['filename'] = name
@@ -96,7 +96,7 @@ module Libis
96
96
  hash[name] = parameter
97
97
  hash
98
98
  end
99
- rescue
99
+ rescue => _e
100
100
  {}
101
101
  end
102
102
 
@@ -23,7 +23,7 @@ module Libis
23
23
  parameter retry_interval: 10, description: 'Number of seconds to wait between retries.'
24
24
 
25
25
  def self.task_classes
26
- ObjectSpace.each_object(::Class).select { |klass| klass < self }
26
+ ObjectSpace.each_object(::Class).select {|klass| klass < self}
27
27
  end
28
28
 
29
29
  def initialize(parent, cfg = {})
@@ -33,8 +33,8 @@ module Libis
33
33
  configure cfg
34
34
  end
35
35
 
36
- def <<(task)
37
- raise Libis::WorkflowError, "Processing task '#{self.namepath}' is not allowed to have subtasks."
36
+ def <<(_task)
37
+ raise Libis::WorkflowError, "Processing task '#{namepath}' is not allowed to have subtasks."
38
38
  end
39
39
 
40
40
  # @param [Libis::Workflow::Base::WorkItem] item
@@ -42,23 +42,24 @@ module Libis
42
42
  check_item_type ::Libis::Workflow::Base::WorkItem, item
43
43
  self.workitem = item
44
44
 
45
- case self.action
45
+ case action
46
46
  when :retry
47
- if item.check_status(:DONE, self.namepath)
48
- debug 'Retry: skipping task %s because it has finished successfully.', item, self.namepath
47
+ if item.check_status(:DONE, namepath)
48
+ debug 'Retry: skipping task %s because it has finished successfully.', item, namepath
49
49
  return item
50
50
  end
51
51
  when :failed
52
52
  return item
53
53
  else
54
+ # type code here
54
55
  end
55
56
 
56
- (parameter(:retry_count)+1).times do
57
+ (parameter(:retry_count) + 1).times do
57
58
 
58
59
  i = run_item(item)
59
60
  item = i if i.is_a?(Libis::Workflow::WorkItem)
60
61
 
61
- case item.status(self.namepath)
62
+ case item.status(namepath)
62
63
  when :DONE
63
64
  self.action = :run
64
65
  return item
@@ -79,7 +80,7 @@ module Libis
79
80
  end
80
81
 
81
82
  item.get_run.action = :failed
82
-
83
+
83
84
  return item
84
85
 
85
86
  rescue WorkflowError => e
@@ -90,7 +91,7 @@ module Libis
90
91
  set_status item, :FAILED
91
92
  raise e if parent
92
93
 
93
- rescue ::Exception => e
94
+ rescue => e
94
95
  set_status item, :FAILED
95
96
  fatal_error "Exception occured: #{e.message}", item
96
97
  debug e.backtrace.join("\n")
@@ -101,43 +102,43 @@ module Libis
101
102
  end
102
103
 
103
104
  def names
104
- (self.parent.names rescue Array.new).push(name).compact
105
+ (parent.names rescue []).push(name).compact
105
106
  end
106
107
 
107
- def namepath;
108
- self.names.join('/');
108
+ def namepath
109
+ names.join('/')
109
110
  end
110
111
 
111
112
  def apply_options(opts)
112
113
  o = {}
113
114
  o.merge!(opts[self.class.to_s] || {})
114
- o.merge!(opts[self.name] || opts[self.names.join('/')] || {})
115
+ o.merge!(opts[name] || opts[names.join('/')] || {})
115
116
 
116
- if o and o.is_a? Hash
117
+ if o && o.is_a?(Hash)
117
118
  default_values.each do |name, _|
118
119
  next unless o.key?(name.to_s)
119
120
  next if o[name.to_s].nil?
120
121
  paramdef = get_parameter_definition name.to_sym
121
122
  value = paramdef.parse(o[name.to_s])
122
- self.parameter(name.to_sym, value)
123
+ parameter(name.to_sym, value)
123
124
  end
124
125
  end
125
126
  end
126
127
 
127
128
  def message(severity, msg, *args)
128
- taskname = self.namepath rescue nil
129
- self.set_application(taskname)
130
- item = self.workitem rescue nil
129
+ taskname = namepath rescue nil
130
+ set_application(taskname)
131
+ item = workitem rescue nil
131
132
  item = args.shift if args.size > 0 and args[0].is_a?(::Libis::Workflow::Base::WorkItem)
132
133
  subject = item.namepath rescue nil
133
134
  subject ||= item.name rescue nil
134
135
  subject ||= item.to_s rescue nil
135
- self.set_subject(subject)
136
+ set_subject(subject)
136
137
  super(severity, msg, *args)
137
138
  end
138
139
 
139
140
  def logger
140
- (self.parent || self.get_run).logger
141
+ (parent || get_run).logger
141
142
  end
142
143
 
143
144
  protected
@@ -145,16 +146,16 @@ module Libis
145
146
  def configure(cfg)
146
147
  self.name = cfg['name'] || (cfg['class'] || self.class).to_s.split('::').last
147
148
  (cfg['options'] || {}).merge(
148
- cfg.reject { |k, _| %w(options name class).include? k }
149
+ cfg.reject {|k, _| %w[options name class].include? k}
149
150
  ).symbolize_keys.each do |k, v|
150
- self.parameter(k, v)
151
+ parameter(k, v)
151
152
  end
152
153
  end
153
154
 
154
155
  def run_item(item)
155
156
  @item_skipper = false
156
157
 
157
- return item if item.status(self.namepath) == :DONE
158
+ return item if item.status(namepath) == :DONE
158
159
 
159
160
  pre_process(item)
160
161
 
@@ -163,10 +164,10 @@ module Libis
163
164
  else
164
165
  set_status item, :STARTED
165
166
  self.processing_item = item
166
- self.process item
167
- item = self.processing_item
167
+ process item
168
+ item = processing_item
168
169
  run_subitems(item) if parameter(:recursive)
169
- set_status item, :DONE if item.check_status(:STARTED, self.namepath)
170
+ set_status item, :DONE if item.check_status(:STARTED, namepath)
170
171
  end
171
172
 
172
173
  post_process item
@@ -187,18 +188,40 @@ module Libis
187
188
  return unless check_processing_subitems
188
189
 
189
190
  items = subitems(parent_item)
190
- return unless items.size > 0
191
+ return if items.empty?
191
192
 
192
193
  status_count = Hash.new(0)
193
- parent_item.status_progress(self.namepath, 0, items.count)
194
+ parent_item.status_progress(namepath, 0, items.count)
194
195
  items.each_with_index do |item, i|
195
- debug 'Processing subitem (%d/%d): %s', parent_item, i+1, items.size, item.to_s
196
- new_item = run_item(item)
197
- item = new_item if new_item.is_a?(Libis::Workflow::WorkItem)
198
- parent_item.status_progress(self.namepath, i+1)
199
- item_status = item.status(self.namepath)
200
- status_count[item_status] += 1
201
- break if parameter(:abort_recursion_on_failure) && item_status != :DONE
196
+ debug 'Processing subitem (%d/%d): %s', parent_item, i + 1, items.size, item.to_s
197
+ new_item = item
198
+
199
+ begin
200
+ new_item = run_item(item)
201
+
202
+ rescue Libis::WorkflowError => e
203
+ item.set_status(namepath, :FAILED)
204
+ break if parameter(:abort_recursion_on_failure)
205
+
206
+ rescue Libis::WorkflowAbort => e
207
+ item.set_status(namepath, :FAILED)
208
+ break
209
+
210
+ rescue => e
211
+ item.set_status(namepath, :FAILED)
212
+ raise Libis::WorkflowAbort, e.message
213
+
214
+ else
215
+ item = new_item if new_item.is_a?(Libis::Workflow::WorkItem)
216
+ parent_item.status_progress(namepath, i + 1)
217
+
218
+ ensure
219
+ item_status = item.status(namepath)
220
+ status_count[item_status] += 1
221
+ break if parameter(:abort_recursion_on_failure) && item_status != :DONE
222
+
223
+ end
224
+
202
225
  end
203
226
 
204
227
  debug '%d of %d subitems passed', parent_item, status_count[:DONE], items.size
@@ -239,11 +262,11 @@ module Libis
239
262
  end
240
263
 
241
264
  def action=(action)
242
- self.get_run.action = action
265
+ get_run.action = action
243
266
  end
244
267
 
245
268
  def action
246
- self.get_run.action
269
+ get_run.action
247
270
  end
248
271
 
249
272
  def get_run(item = nil)
@@ -251,7 +274,7 @@ module Libis
251
274
  end
252
275
 
253
276
  def get_root_item(item = nil)
254
- (item || self.workitem).get_root
277
+ (item || workitem).get_root
255
278
  end
256
279
 
257
280
  def get_work_dir(item = nil)
@@ -275,30 +298,30 @@ module Libis
275
298
  end
276
299
 
277
300
  def set_status(item, state)
278
- item.set_status self.namepath, state
301
+ item.set_status namepath, state
279
302
  state
280
303
  end
281
304
 
282
305
  def check_item_type(klass, item = nil)
283
- item ||= self.workitem
306
+ item ||= workitem
284
307
  unless item.is_a? klass.to_s.constantize
285
- raise WorkflowError, "Workitem is of wrong type : #{item.class} - expected #{klass.to_s}"
308
+ raise WorkflowError, "Workitem is of wrong type : #{item.class} - expected #{klass}"
286
309
  end
287
310
  end
288
311
 
289
312
  def item_type?(klass, item = nil)
290
- item ||= self.workitem
313
+ item ||= workitem
291
314
  item.is_a? klass.to_s.constantize
292
315
  end
293
316
 
294
317
  private
295
318
 
296
319
  def subtasks
297
- self.tasks
320
+ tasks
298
321
  end
299
322
 
300
323
  def subitems(item = nil)
301
- (item || self.workitem).get_item_list
324
+ (item || workitem).get_item_list
302
325
  end
303
326
 
304
327
  def default_values
@@ -306,9 +329,8 @@ module Libis
306
329
  end
307
330
 
308
331
  def self.default_values
309
- parameter_defs.inject({}) do |hash, parameter|
332
+ parameter_defs.each_with_object({}) do |parameter, hash|
310
333
  hash[parameter.first] = parameter.last[:default]
311
- hash
312
334
  end
313
335
  end
314
336
 
@@ -1,5 +1,5 @@
1
1
  module Libis
2
2
  module Workflow
3
- VERSION = '2.0.32' unless const_defined? :VERSION # the guard is against a redefinition warning that happens on Travis
3
+ VERSION = '2.0.33' unless const_defined? :VERSION # the guard is against a redefinition warning that happens on Travis
4
4
  end
5
5
  end
@@ -1,24 +1,25 @@
1
- # encoding: utf-8
2
-
3
1
  lib = File.expand_path('../lib', __FILE__)
4
2
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
3
 
6
4
  require 'libis/workflow/version'
5
+ require 'date'
7
6
 
8
7
  Gem::Specification.new do |spec|
9
8
  spec.name = 'libis-workflow'
10
9
  spec.version = ::Libis::Workflow::VERSION
11
10
  spec.date = Date.today.to_s
12
11
 
13
- spec.summary = %q{LIBIS Workflow framework.}
14
- spec.description = %q{A simple framework to build custom task/workflow solutions.}
12
+ spec.summary = 'LIBIS Workflow framework.'
13
+ spec.description = 'A simple framework to build custom task/workflow solutions.'
15
14
 
16
15
  spec.author = 'Kris Dekeyser'
17
16
  spec.email = 'kris.dekeyser@libis.be'
18
17
  spec.homepage = 'https://github.com/Kris-LIBIS/workflow'
19
18
  spec.license = 'MIT'
20
19
 
21
- spec.platform = Gem::Platform::JAVA if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
20
+ if defined?(RUBY_ENGINE) && RUBY_ENGINE == 'jruby'
21
+ spec.platform = Gem::Platform::JAVA
22
+ end
22
23
 
23
24
  spec.files = `git ls-files -z`.split("\x0")
24
25
  spec.executables = spec.files.grep(%r{^bin/}).map { |f| File.basename(f) }
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libis-workflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.32
4
+ version: 2.0.33
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kris Dekeyser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-19 00:00:00.000000000 Z
11
+ date: 2017-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler