isomorfeus-puppetmaster 0.2.7 → 0.2.8

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
  SHA256:
3
- metadata.gz: 8f15c0b872ebe70bef076652ef336ff2078272f0500bf078e0b64ca65ba309f7
4
- data.tar.gz: 4c41a2e0a19c94834fd4324ec2d74451e7b899a34796f415fd008b977868eade
3
+ metadata.gz: 69207b6e61550c662682e11d237709f62f01e6d12b6282b9c239325dde35336d
4
+ data.tar.gz: 8ec945e61d1aa91be2765824468c9b64f60efcd1d24f61a1bc3998303fb489d1
5
5
  SHA512:
6
- metadata.gz: 0d7fef5d59b4262966162516dc38ebcabcdf04d60fc3d62d8cf34c83134fe950e50a55144379d89014bf19e5897850ed5203864d005b64c964cc9ee0c5420c87
7
- data.tar.gz: 53aaaa7dd30bca066de6cf2254322d9ceaabbbc8295cbe4703f47aec44df42318bb661023b22a89d696dc7a35ff438e5c0619cd21b1573657d453ce7d2336f21
6
+ metadata.gz: 26d40a97edbea084811349728123e200d7fe056a94115f04a4445322148c266666810d80d3110cb2cd3362759b53d1dc01a4fd2e0d7f6d296f5b07e0196d5f57
7
+ data.tar.gz: e1db2b3df0fb3b4c3fddf77ec2d65eed0b4ec05779a4e3e7e7cbbcb4f866882105cb00989af2df84e0002d39a338a51ff71f8a955f07f2d0ec0c0e51480946e1
@@ -69,6 +69,35 @@ module Isomorfeus
69
69
  @driver.browser
70
70
  end
71
71
 
72
+ def await_ruby(ruby_source = '', &block)
73
+ ruby_source = Isomorfeus::Puppetmaster.block_source_code(&block) if block_given?
74
+ ruby_source = "#{ruby_source}.then { |result| $promise_result = result; $promise_resolved = true }"
75
+ compiled_ruby = compile_ruby_source(ruby_source)
76
+ if compiled_ruby.start_with?('/*')
77
+ start_of_code = compiled_ruby.index('*/') + 3
78
+ compiled_ruby = compiled_ruby[start_of_code..-1]
79
+ end
80
+ evaluate_script <<~JAVASCRIPT
81
+ (function(){
82
+ Opal.gvars.promise_resolved = false;
83
+ return #{compiled_ruby}
84
+ })()
85
+ JAVASCRIPT
86
+ have_result = false
87
+ until have_result do
88
+ have_result = evaluate_script 'Opal.gvars.promise_resolved'
89
+ sleep 0.1 unless have_result
90
+ end
91
+ execute_script <<~JAVASCRIPT
92
+ var result;
93
+ if (typeof Opal.gvars.promise_result.$to_n === 'function') { result = Opal.gvars.promise_result.$to_n(); }
94
+ else { result = Opal.gvars.promise_result };
95
+ delete Opal.gvars.promise_result;
96
+ delete Opal.gvars.promise_resolved;
97
+ return result;
98
+ JAVASCRIPT
99
+ end
100
+
72
101
  def evaluate_ruby(ruby_source = '', &block)
73
102
  ruby_source = Isomorfeus::Puppetmaster.block_source_code(&block) if block_given?
74
103
  compiled_ruby = compile_ruby_source(ruby_source)
@@ -297,7 +297,7 @@ module Isomorfeus
297
297
  def node_evaluate_script(node, script, *args)
298
298
  await <<~JAVASCRIPT
299
299
  var node_handle = #{node.handle};
300
- await AllElementHandles[node_handle].executionContext().evaluateHandle((node, arguments) => {
300
+ handle = await AllElementHandles[node_handle].executionContext().evaluateHandle((node, arguments) => {
301
301
  arguments.unshift(node);
302
302
  return #{script};
303
303
  }, AllElementHandles[node_handle], #{args[1..-1]});
@@ -571,13 +571,7 @@ module Isomorfeus
571
571
  def node_style(node, *styles)
572
572
  await <<~JAVASCRIPT
573
573
  var handle = await AllElementHandles[#{node.handle}].executionContext().evaluateHandle(function(node, styles){
574
- var style = window.getComputedStyle(node);
575
- if (styles.length > 0) {
576
- return styles.reduce(function(res,name) {
577
- res[name] = style[name];
578
- return res;
579
- }, {});
580
- } else { return style; }
574
+ return = window.getComputedStyle(node);
581
575
  }, AllElementHandles[#{node.handle}], #{styles});
582
576
  LastResult = await handle.jsonValue();
583
577
  JAVASCRIPT
@@ -35,10 +35,7 @@ Isomorfeus::Puppetmaster.register_server :iodine do |app, port, host, **options|
35
35
  raise LoadError, "Unable to load 'iodine' as server."
36
36
  end
37
37
 
38
- puts 'Puppetmaster starting Iodine...'
39
- puts "* Version #{Iodine::VERSION}"
40
-
41
- Iodine::Rack.run(app, { Host: host, Port: port }.merge(options)).join
38
+ Iodine::Rack.run(app, { Host: host, Port: port }.merge(options))
42
39
  end
43
40
 
44
41
  Isomorfeus::Puppetmaster.register_server :puma do |app, port, host, **options|
@@ -1,3 +1,3 @@
1
1
  module Isomorfeus
2
- PUPPETMASTER_VERSION = '0.2.7'
2
+ PUPPETMASTER_VERSION = '0.2.8'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-puppetmaster
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.7
4
+ version: 0.2.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-23 00:00:00.000000000 Z
11
+ date: 2019-06-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 0.2.2
33
+ version: 0.2.3
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 0.2.2
40
+ version: 0.2.3
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: method_source
43
43
  requirement: !ruby/object:Gem::Requirement