node-runner 1.0.0 → 1.0.1
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 +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +11 -1
- data/lib/node-runner.rb +6 -4
- data/lib/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c6222ef23c1975d9325fbf60b6bbbd63a6ffad0c13c5249e8c1b4734f09dab9
|
4
|
+
data.tar.gz: abbd491dd0894a0a2a13d8d56138ddca1c8f168b969c3dea8e31ec96bce6ab5a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c4932b21e6a843e53abb1943de4062e685f8e45b12c2bcdda63765235262f2a83c31179961fd0a59ba53031393a307b0711cd39eae122e6618b4399a096a258
|
7
|
+
data.tar.gz: de4c98cdd6b6be6b07e6c8c8a0e18fc8a2555a505d5dc102be72bf88830a8877c39b71be3faea208cc20b1e1e3bff79155ec6854ce1d6f5bbb68410f59cd1d41
|
data/CHANGELOG.md
ADDED
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
A simple way to execute Javascript in a Ruby context via Node. (Loosely based on the Node Runtime module from [ExecJS](https://github.com/rails/execjs).)
|
4
4
|
|
5
|
-
[](https://badge.fury.io/rb/node-runner)
|
5
|
+
[](https://badge.fury.io/rb/node-runner)
|
6
6
|
|
7
7
|
## Installation
|
8
8
|
|
@@ -18,6 +18,8 @@ Simply create a new `NodeRunner` object and pass in the Javascript code you wish
|
|
18
18
|
execute:
|
19
19
|
|
20
20
|
```ruby
|
21
|
+
require "node-runner"
|
22
|
+
|
21
23
|
runner = NodeRunner.new(
|
22
24
|
<<~NODE
|
23
25
|
const hello = (response) => {
|
@@ -73,6 +75,14 @@ NodeRunner.new "…", executor: NodeRunner::Executor.new(command: "/path/to/cust
|
|
73
75
|
|
74
76
|
`command` can be an array as well, if you want to attempt multiple paths until one is found. Inspect the `node-runner.rb` source code for more information on the available options.
|
75
77
|
|
78
|
+
## Caveats
|
79
|
+
|
80
|
+
A single run of a script is quite fast, nearly as fast as running a script directly with the
|
81
|
+
`node` CLI…because that's essentially what is happening here. However, the performance characteristics using
|
82
|
+
this in a high-traffic request/response cycle (say, from a Rails app) is unknown. Likely the best context to use
|
83
|
+
Node Runner would be via a background job, or during a build process like when using a static site generator.
|
84
|
+
(Like our parent project [Bridgetown](https://github.com/bridgetownrb/bridgetown)!)
|
85
|
+
|
76
86
|
## Testing
|
77
87
|
|
78
88
|
* Run `bundle exec rake` to run the test suite.
|
data/lib/node-runner.rb
CHANGED
@@ -84,10 +84,11 @@ class NodeRunner::Executor
|
|
84
84
|
attr_reader :name
|
85
85
|
|
86
86
|
def initialize(options = {})
|
87
|
-
@command
|
88
|
-
@
|
89
|
-
@
|
90
|
-
@
|
87
|
+
@command = options[:command] || ['node']
|
88
|
+
@modules_path = options[:modules_path] || File.join(Dir.pwd, "node_modules")
|
89
|
+
@runner_path = options[:runner_path] || File.join(File.expand_path(__dir__), '/node_runner.js')
|
90
|
+
@encoding = options[:encoding] || "UTF-8"
|
91
|
+
@binary = nil
|
91
92
|
|
92
93
|
@popen_options = {}
|
93
94
|
@popen_options[:external_encoding] = @encoding if @encoding
|
@@ -99,6 +100,7 @@ class NodeRunner::Executor
|
|
99
100
|
end
|
100
101
|
|
101
102
|
def exec(filename)
|
103
|
+
ENV["NODE_PATH"] = @modules_path
|
102
104
|
stdout, stderr, status = Open3.capture3("#{binary} #{filename}")
|
103
105
|
if status.success?
|
104
106
|
stdout
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: node-runner
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Bridgetown Team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: maintainers@bridgetownrb.com
|
@@ -17,6 +17,7 @@ extensions: []
|
|
17
17
|
extra_rdoc_files: []
|
18
18
|
files:
|
19
19
|
- ".gitignore"
|
20
|
+
- CHANGELOG.md
|
20
21
|
- Gemfile
|
21
22
|
- LICENSE.txt
|
22
23
|
- README.md
|