nodo 1.6.4 → 1.6.5

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 (5) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +44 -36
  3. data/lib/nodo/core.rb +1 -1
  4. data/lib/nodo/version.rb +1 -1
  5. metadata +10 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a4870340520e40bf14cf0e9261711983d5332eaf04419ff1281626ed5b4716e1
4
- data.tar.gz: 162b5e4f6739728c91f64422acb579db9c004429f92402db5f393cfb76ffa675
3
+ metadata.gz: 85e8ece889660e457a3473919da402124d9688011c3dbe5f69015e9f5e258465
4
+ data.tar.gz: 32ed8d2c1905c22cc68cf2734272f0d743890be066add8ce8de1a72132c6c3f4
5
5
  SHA512:
6
- metadata.gz: dbe6fb8dce3f39968b26800a28f50b7d2c1ac49ffc60537a50950af598bc329b6ae59fae2db8285b16167238448ef370502d7b6f736c4dc4e66563ae0050ccfd
7
- data.tar.gz: 37dd504e71489566a9b57df0e217c2f25d09ce3d511dab2ac6daf849829b90f1293ed07dd4e320eb70ef573da7b466263c704bb99cf46cb555449a8253909089
6
+ metadata.gz: 1c6a6af11b36730dae8bc00d31a17a96f0fbe0fe3a5ddc3da5df636efcdc648a6890e37aee63c7f0b67fc000ce354247eaa61cde12557eb9a3126b6cd0d9a291
7
+ data.tar.gz: b12074e9a1312694fcb46246eb2d66d418054b3f518be6dc5b2469a908b8b7e35d55d4a30b77144005b2b898c193ed062473ee4916239022c9d32361a5e324c4
data/README.md CHANGED
@@ -1,4 +1,4 @@
1
- [![Gem Version](https://badge.fury.io/rb/nodo.svg)](http://badge.fury.io/rb/nodo)
1
+ [![Gem Version](https://badge.fury.io/rb/nodo.svg)](https://badge.fury.io/rb/nodo)
2
2
  [![build](https://github.com/mtgrosser/nodo/actions/workflows/build.yml/badge.svg)](https://github.com/mtgrosser/nodo/actions/workflows/build.yml)
3
3
 
4
4
  # Nōdo – call Node.js from Ruby
@@ -54,6 +54,26 @@ foo.say_hi('Nodo')
54
54
  => "Hello Nodo!"
55
55
  ```
56
56
 
57
+ JS code can also be supplied using the `code:` keyword argument:
58
+
59
+ ```ruby
60
+ function :hello, code: "() => 'world'"
61
+ ```
62
+
63
+ ### Async functions
64
+
65
+ `Nodo` supports calling `async` functions from Ruby.
66
+ The Ruby call will happen synchronously, i.e. it will block until the JS
67
+ function resolves:
68
+
69
+ ```ruby
70
+ class SyncFoo < Nodo::Core
71
+ function :do_something, <<~JS
72
+ async () => { return await asyncFunc(); }
73
+ JS
74
+ end
75
+ ```
76
+
57
77
  ### Using npm modules
58
78
 
59
79
  Install your modules to `node_modules`:
@@ -79,7 +99,6 @@ bar = Bar.new
79
99
  bar.v4 => "b305f5c4-db9a-4504-b0c3-4e097a5ec8b9"
80
100
  ```
81
101
 
82
-
83
102
  ### Aliasing requires
84
103
 
85
104
  If the library name cannot be used as name of the constant, the `const` name
@@ -108,25 +127,6 @@ end
108
127
 
109
128
  Note that the availability of dynamic imports depends on your Node version.
110
129
 
111
- ### Alternate function definition syntax
112
-
113
- JS code can also be supplied using the `code:` keyword argument:
114
-
115
- ```ruby
116
- function :hello, code: "() => 'world'"
117
- ```
118
-
119
- ### Setting NODE_PATH
120
-
121
- By default, `./node_modules` is used as the `NODE_PATH`.
122
-
123
- To set a custom path:
124
- ```ruby
125
- Nodo.modules_root = 'path/to/node_modules'
126
- ```
127
-
128
- Also see: [Clean your Rails root](#Clean-your-Rails-root)
129
-
130
130
  ### Defining JS constants
131
131
 
132
132
  ```ruby
@@ -188,20 +188,6 @@ SubFoo.new.bar => "callingsuperclass"
188
188
  SubSubFoo.new.bar => "callingsubsubclass"
189
189
  ```
190
190
 
191
- ### Async functions
192
-
193
- `Nodo` supports calling `async` functions from Ruby.
194
- The Ruby call will happen synchronously, i.e. it will block until the JS
195
- function resolves:
196
-
197
- ```ruby
198
- class SyncFoo < Nodo::Core
199
- function :do_something, <<~JS
200
- async () => { return await asyncFunc(); }
201
- JS
202
- end
203
- ```
204
-
205
191
  ### Deferred function definition
206
192
 
207
193
  By default, the function code string literal is created when the class
@@ -258,6 +244,17 @@ Foo.new.sleep(2)
258
244
  => Nodo::TimeoutError raised
259
245
  ```
260
246
 
247
+ ### Setting NODE_PATH
248
+
249
+ By default, `./node_modules` is used as the `NODE_PATH`.
250
+
251
+ To set a custom path:
252
+ ```ruby
253
+ Nodo.modules_root = 'path/to/node_modules'
254
+ ```
255
+
256
+ Also see: [Clean your Rails root](#Clean-your-Rails-root)
257
+
261
258
  ### Logging
262
259
 
263
260
  By default, JS errors will be logged to `STDOUT`.
@@ -270,7 +267,6 @@ Nodo.logger = Logger.new('nodo.log')
270
267
 
271
268
  In Rails applications, `Rails.logger` will automatically be set.
272
269
 
273
-
274
270
  ### Debugging
275
271
 
276
272
  To get verbose debug output, set
@@ -356,3 +352,15 @@ With this new default, all `yarn` operations should be done after `cd`ing to `ve
356
352
 
357
353
  This repo provides an [adapted version](https://github.com/mtgrosser/nodo/blob/master/install/yarn.rake)
358
354
  of the `yarn:install` rake task which will automatically take care of the vendored module location.
355
+
356
+
357
+ ## Working with web mocking frameworks like WebMock
358
+
359
+ Nodo uses HTTP via UNIX sockets to connect to its Node process. This may lead to
360
+ conflicts during tests when using `WebMock` or other tools which interfere with
361
+ `Net::HTTP`. In order to work with WebMock, you need to enable its `allow_localhost`
362
+ option:
363
+
364
+ ```ruby
365
+ WebMock.disable_net_connect!(allow_localhost: true)
366
+ ```
data/lib/nodo/core.rb CHANGED
@@ -221,7 +221,7 @@ module Nodo
221
221
  socket = nil
222
222
  while Time.now - start < LAUNCH_TIMEOUT
223
223
  begin
224
- break if socket = UNIXSocket.new(socket_path)
224
+ break if socket = UNIXSocket.new(socket_path.to_s)
225
225
  rescue Errno::ENOENT, Errno::ECONNREFUSED, Errno::ENOTDIR
226
226
  Kernel.sleep(0.2)
227
227
  end
data/lib/nodo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Nodo
2
- VERSION = '1.6.4'
2
+ VERSION = '1.6.5'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nodo
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.4
4
+ version: 1.6.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthias Grosser
@@ -11,56 +11,56 @@ cert_chain: []
11
11
  date: 2021-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: bundler
15
14
  requirement: !ruby/object:Gem::Requirement
16
15
  requirements:
17
16
  - - ">="
18
17
  - !ruby/object:Gem::Version
19
18
  version: '0'
20
- type: :development
19
+ name: bundler
21
20
  prerelease: false
21
+ type: :development
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: rake
29
28
  requirement: !ruby/object:Gem::Requirement
30
29
  requirements:
31
30
  - - ">="
32
31
  - !ruby/object:Gem::Version
33
32
  version: '0'
34
- type: :development
33
+ name: rake
35
34
  prerelease: false
35
+ type: :development
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: byebug
43
42
  requirement: !ruby/object:Gem::Requirement
44
43
  requirements:
45
44
  - - ">="
46
45
  - !ruby/object:Gem::Version
47
46
  version: '0'
48
- type: :development
47
+ name: byebug
49
48
  prerelease: false
49
+ type: :development
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
- name: minitest
57
56
  requirement: !ruby/object:Gem::Requirement
58
57
  requirements:
59
58
  - - ">="
60
59
  - !ruby/object:Gem::Version
61
60
  version: '0'
62
- type: :development
61
+ name: minitest
63
62
  prerelease: false
63
+ type: :development
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
66
  - - ">="
@@ -105,7 +105,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
105
105
  - !ruby/object:Gem::Version
106
106
  version: '0'
107
107
  requirements: []
108
- rubygems_version: 3.2.22
108
+ rubygems_version: 3.3.25
109
109
  signing_key:
110
110
  specification_version: 4
111
111
  summary: Call Node.js from Ruby