weel 1.99.109 → 1.99.111

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.
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)