smart_proxy_dynflow 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of smart_proxy_dynflow might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- NmQxZGMzNThkY2I0MmE5YWIyNjk5MjIzY2MyNjMzZDlhMWYzOTVjYQ==
4
+ ZGJjM2Q5NTZhNzA3YTViZDVlYzA1NjJmOGY4ZTJiYmU3Y2Q2MzE3Mg==
5
5
  data.tar.gz: !binary |-
6
- NWJiMzIwODcyNzE2NjU3YjllZjMxZGVhZjM5ZmVmMTJjNGEzMzQ0Nw==
6
+ NzI0Mzk3OWE4NTY1YmFhNzg2OGUxMjNkZDM5ZDQ5Yjk5ZWZjOWVjYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZTMyOWQ0YjZmMTAxZmMxZWVmYjA0OThlZDRiMjk3YmIwM2RkOGRkNGNmZDc2
10
- MDVmNTdiMjA0N2ZhMzYwZjZmYTk2MWRjMzM2ZDFjYjMyY2QzMTg0NjAzYmMy
11
- ZTBiODZiMDk5NTFiM2VlYTk4MWZhZmRlYjRiZDljYTRkNDI5NTY=
9
+ YTQ3M2YyNDc1YWMwNmMyNWQ3YzJjMWRhY2Y4ZGVjZTNjZTE3NDAxOWJjMTE4
10
+ MjMxNjUyYjllYjE5ZGRiNTQzODVlMjFkNTZkMmU0ODA0ZmY2ZTE1MDZmMzQ0
11
+ ZTdjOTkwMGU0YjNmNmRlZGJkYjJmODgwZmY0YTE3N2Q0MjMzYmQ=
12
12
  data.tar.gz: !binary |-
13
- OTUwMTA4Y2VlZWFlZGE4ZjJhMzE1YTQ5MDQxMzZmNjMxYTU5NWZlNWU0N2Y3
14
- MTM5ZGU1Zjk1Yzk3NTE0Y2E0ZWQwOGNmY2U4YjU3YzdjYzkzMjQxMTdhMjNh
15
- NGE3Mjc1NWJhMDFiYWM0NGFmMGVmMzI3OTIyYWVlOGEwY2NjMTE=
13
+ NzhhZTZhZjBkZTUwNDAzYWJmNzg4OTQxMzJlNmEwZWU5NGQzYzVmZDgyOTQz
14
+ MDY5NTAyNzE1ZWM4NTFhYTA2NGE3ODhmNTAwOWVmODdjNTI4MWM0YTUyZDQ1
15
+ YWI3MzViZDdmNWRhNThkZTU4YzFkOTQ4MmIwM2IxYTRmZDUxZGY=
@@ -38,26 +38,42 @@ class Proxy::Dynflow
38
38
  ::Dynflow::LoggerAdapters::Simple.new $stderr, 0
39
39
  end
40
40
 
41
- def web_console
42
- require 'dynflow/web'
43
- world = @world
44
- dynflow_console = ::Dynflow::Web.setup do
45
- set :world, world
46
- end
47
- dynflow_console
48
- end
49
-
50
41
  class << self
51
42
  attr_reader :instance
52
43
 
53
- def initialize
44
+ def ensure_initialized
45
+ return @instance if @instance
54
46
  @instance = Proxy::Dynflow.new
47
+ after_initialize_blocks.each(&:call)
48
+ @instance
49
+ end
50
+
51
+ def web_console
52
+ require 'dynflow/web'
53
+ dynflow_console = ::Dynflow::Web.setup do
54
+ # we can't use the proxy's after_actionvation hook, as
55
+ # it happens before the Daemon forks the process (including
56
+ # closing opened file descriptors)
57
+ # TODO: extend smart proxy to enable hooks that happen after
58
+ # the forking
59
+ Proxy::Dynflow.ensure_initialized
60
+ set :world, Proxy::Dynflow.world
61
+ end
62
+ dynflow_console
55
63
  end
56
64
 
57
65
  def world
58
66
  instance.world
59
67
  end
68
+
69
+ def after_initialize(&block)
70
+ after_initialize_blocks << block
71
+ end
72
+
73
+ private
74
+
75
+ def after_initialize_blocks
76
+ @after_initialize_blocks ||= []
77
+ end
60
78
  end
61
79
  end
62
-
63
- Proxy::Dynflow.initialize
@@ -2,7 +2,7 @@ require 'smart_proxy_dynflow/api'
2
2
 
3
3
  map "/dynflow" do
4
4
  map '/console' do
5
- run Proxy::Dynflow.instance.web_console
5
+ run Proxy::Dynflow.web_console
6
6
  end
7
7
 
8
8
  map '/'do
@@ -11,6 +11,7 @@ module Proxy
11
11
  module Testing
12
12
  class << self
13
13
  def create_world(&block)
14
+ Proxy::Dynflow.ensure_initialized
14
15
  Proxy::Dynflow.instance.create_world do |config|
15
16
  config.exit_on_terminate = false
16
17
  config.auto_terminate = false
@@ -1,5 +1,5 @@
1
1
  module Proxy
2
2
  class Dynflow
3
- VERSION = '0.0.2'
3
+ VERSION = '0.0.3'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: smart_proxy_dynflow
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Nečas