nodo 1.6.4 → 1.6.5

Sign up to get free protection for your applications and to get access to all the features.
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