weel 1.99.109 → 1.99.111

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/weel.rb +13 -15
  3. data/weel.gemspec +1 -1
  4. metadata +3 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e376343e3c78f99b2493270370374a4302f89dea8d0a6f2b8458fb72b6ebf688
4
- data.tar.gz: 5db57f52c74226550c86bf7e1c4dc83d891cf52b139b623a202216457c3d310a
3
+ metadata.gz: b06de4e72e80c63aa6cd62cb267e837823a6099ef8b100031eeb5e817f950ff2
4
+ data.tar.gz: f227674b5d4f22a49d6d96e823a618fc508e48e250a50dee08603d128d30d5f4
5
5
  SHA512:
6
- metadata.gz: f0a3bef1073e2b3e253092f1cb46c48cf2153dcf7eaaade3b95c5bb23654ef3cb9d99f402b8eecaf485f5376fc6df0ddddae03f0ec0cf8cef493480c1d4a0afa
7
- data.tar.gz: 5f1dc555fd6755c6736b500c67630653d7bd6e541a0c17a67471c094dd4c5c78be3a537dd639e4fb798153ad68079bc089a2acb9ada65db82a98a101fa4c030d
6
+ metadata.gz: 23321928b269cfb7358187d79e786fd6efef7b0ad4694b35d71af6f0e63f175a2228356ee8a781de4f64d106dc84d790c585a89468065ac37b07dd3cf60c550e
7
+ data.tar.gz: 8881323b085b5e928412476f21e5ebe5d2f5fd9a9da0f30c65d2da16643c88bd21507331d9ee6b097d99643d25aefa6882cc4a11eb7e4faf32cd4a32f2bc2460
data/lib/weel.rb CHANGED
@@ -354,19 +354,19 @@ class WEEL
354
354
  def callback(result=nil,options={}); end
355
355
  def mem_guard; end
356
356
 
357
- def test_condition(mr,code); mr.instance_eval(code); end
357
+ def test_condition(mr,code,args={}); mr.instance_eval(code); end
358
358
  def join_branches(branches); end
359
359
  def manipulate(mr,code,where,result=nil,options=nil); mr.instance_eval(code,where,1); end
360
360
  end # }}}
361
361
 
362
362
  class Position # {{{
363
- attr_reader :position
364
- attr_accessor :detail, :passthrough, :uuid
365
- def initialize(position, detail=:at, passthrough=nil) # :at or :after or :unmark
363
+ attr_reader :position, :uuid
364
+ attr_accessor :detail, :passthrough
365
+ def initialize(position, uuid, detail=:at, passthrough=nil) # :at or :after or :unmark
366
366
  @position = position
367
367
  @detail = detail
368
+ @uuid = uuid
368
369
  @passthrough = passthrough
369
- @uuid = 0
370
370
  end
371
371
  def as_json(*)
372
372
  jsn = { 'position' => @position, 'uuid' => @uuid }
@@ -632,7 +632,7 @@ class WEEL
632
632
  Thread.current[:mutex].synchronize do
633
633
  return if Thread.current[:alternative_mode][-1] == :exclusive && Thread.current[:alternative_executed][-1] == true
634
634
  if (condition.is_a?(String) || condition.is_a?(Proc)) && !__weel_sim
635
- condition = __weel_eval_condition(condition)
635
+ condition = __weel_eval_condition(condition, args)
636
636
  end
637
637
  Thread.current[:alternative_executed][-1] = true if condition
638
638
  end
@@ -692,7 +692,7 @@ class WEEL
692
692
  catch :escape do
693
693
  case condition[1]
694
694
  when :pre_test
695
- while __weel_eval_condition(condition[0]) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing && !Thread.current[:nolongernecessary]
695
+ while __weel_eval_condition(condition[0],args) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing && !Thread.current[:nolongernecessary]
696
696
  loop_guard += 1
697
697
  __weel_protect_yield(&block)
698
698
  sleep 1 if @__weel_connectionwrapper::loop_guard(@__weel_connectionwrapper_args,loop_id,loop_guard)
@@ -702,7 +702,7 @@ class WEEL
702
702
  loop_guard += 1
703
703
  __weel_protect_yield(&block)
704
704
  sleep 1 if @__weel_connectionwrapper::loop_guard(@__weel_connectionwrapper_args,loop_id,loop_guard)
705
- end while __weel_eval_condition(condition[0]) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing && !Thread.current[:nolongernecessary]
705
+ end while __weel_eval_condition(condition[0],args) && self.__weel_state != :stopping && self.__weel_state != :stopped && self.__weel_state != :finishing && !Thread.current[:nolongernecessary]
706
706
  end
707
707
  end
708
708
  end # }}}
@@ -729,6 +729,7 @@ class WEEL
729
729
  end #}}}
730
730
  def stop(position) #{{{
731
731
  searchmode = __weel_is_in_search_mode(position)
732
+
732
733
  return if searchmode
733
734
  return if self.__weel_state == :stopping || self.__weel_state == :finishing || self.__weel_state == :stopped || Thread.current[:nolongernecessary]
734
735
 
@@ -767,10 +768,10 @@ class WEEL
767
768
  end
768
769
  end #}}}
769
770
 
770
- def __weel_eval_condition(condition) #{{{
771
+ def __weel_eval_condition(condition,args={}) #{{{
771
772
  begin
772
773
  connectionwrapper = @__weel_connectionwrapper.new @__weel_connectionwrapper_args unless condition.is_a?(Proc)
773
- condition.is_a?(Proc) ? condition.call : connectionwrapper.test_condition(ReadStructure.new(@__weel_data,@__weel_endpoints,Thread.current[:local],connectionwrapper.additional),condition)
774
+ condition.is_a?(Proc) ? condition.call : connectionwrapper.test_condition(ReadStructure.new(@__weel_data,@__weel_endpoints,Thread.current[:local],connectionwrapper.additional),condition,args)
774
775
  rescue NameError => err # don't look into it, or it will explode
775
776
  # if you access $! here, BOOOM
776
777
  self.__weel_state = :stopping
@@ -799,11 +800,10 @@ class WEEL
799
800
  end
800
801
  wp = if branch[:branch_search_now] == true
801
802
  branch[:branch_search_now] = false
802
- WEEL::Position.new(position, skip ? :after : :at, @__weel_search_positions[position]&.passthrough)
803
+ WEEL::Position.new(position, uuid, skip ? :after : :at, @__weel_search_positions[position]&.passthrough)
803
804
  else
804
- WEEL::Position.new(position, skip ? :after : :at)
805
+ WEEL::Position.new(position, uuid, skip ? :after : :at)
805
806
  end
806
- wp.uuid = uuid
807
807
  ipc[skip ? :after : :at] = [wp]
808
808
 
809
809
  @__weel_search_positions.delete(position)
@@ -915,8 +915,6 @@ class WEEL
915
915
  update
916
916
  elsif waitingresult == WEEL::Signal::Salvage
917
917
  salvage || raise('HTTP Error. The service return status was not between 200 and 300.')
918
- elsif waitingresult == WEEL::Signal::Stop
919
- self.__weel_state = :stopping
920
918
  else
921
919
  finalize
922
920
  end
data/weel.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "weel"
3
- s.version = "1.99.109"
3
+ s.version = "1.99.111"
4
4
  s.platform = Gem::Platform::RUBY
5
5
  s.license = "LGPL-3.0"
6
6
  s.summary = "Workflow Execution Engine Library (WEEL)"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: weel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.99.109
4
+ version: 1.99.111
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juergen eTM Mangler
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2023-06-05 00:00:00.000000000 Z
12
+ date: 2023-08-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: test-unit
@@ -101,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
101
101
  - !ruby/object:Gem::Version
102
102
  version: '0'
103
103
  requirements: []
104
- rubygems_version: 3.3.26
104
+ rubygems_version: 3.4.10
105
105
  signing_key:
106
106
  specification_version: 4
107
107
  summary: Workflow Execution Engine Library (WEEL)