node-runner 1.0.1 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c6222ef23c1975d9325fbf60b6bbbd63a6ffad0c13c5249e8c1b4734f09dab9
4
- data.tar.gz: abbd491dd0894a0a2a13d8d56138ddca1c8f168b969c3dea8e31ec96bce6ab5a
3
+ metadata.gz: aaadb4234b05108dec2d60b995df86e7546d3e2c1a62022c796f5c62a552e83c
4
+ data.tar.gz: ec76ab4ac759104ed00877d622e3fe4dedcebff0aa7c16108a60c9b26abd4d54
5
5
  SHA512:
6
- metadata.gz: 8c4932b21e6a843e53abb1943de4062e685f8e45b12c2bcdda63765235262f2a83c31179961fd0a59ba53031393a307b0711cd39eae122e6618b4399a096a258
7
- data.tar.gz: de4c98cdd6b6be6b07e6c8c8a0e18fc8a2555a505d5dc102be72bf88830a8877c39b71be3faea208cc20b1e1e3bff79155ec6854ce1d6f5bbb68410f59cd1d41
6
+ metadata.gz: 59c70fa43ebefeefa2fb8b3110e780a87d0d986bac41063714196ce4e9da1673113d8cf1ef1138fd45a02aba3128a8b2383933c5a66d82f3d7673d35059a40b9
7
+ data.tar.gz: ddfec3af8f70482c3e8a7f539b7aa5e13c227a9dbeed00a427b2c3419a8c04ce7b1f5166a2fdfa512b11d939c47878d98b143bf93a3c372a755d3b008bb215d9
data/CHANGELOG.md CHANGED
@@ -1,9 +1,17 @@
1
- # master
1
+ # Changelog
2
2
 
3
- # 1.0.1 / 2020-05-09
3
+ ## Unreleased
4
4
 
5
- Set the NODE_ENV so local modules can be found.
5
+ ...
6
6
 
7
- # 1.0.0 / 2020-04-29
7
+ ## 1.1.0 / 2021-10-17
8
8
 
9
- Initial release of NodeRunner.
9
+ - fix: windows support for extensions [#1](https://github.com/bridgetownrb/node-runner/pull/1) ([bglw](https://github.com/bglw))
10
+
11
+ ## 1.0.1 / 2020-05-09
12
+
13
+ - Set the NODE_ENV so local modules can be found.
14
+
15
+ ## 1.0.0 / 2020-04-29
16
+
17
+ - Initial release of NodeRunner.
data/README.md CHANGED
@@ -12,6 +12,12 @@ Run this command to add this plugin to your project's Gemfile:
12
12
  $ bundle add node-runner
13
13
  ```
14
14
 
15
+ For [Bridgetown](https://www.bridgetownrb.com) websites (requires v0.15 or later), you can run an automation to install NodeRunner and set up a builder plugin for further customization.
16
+
17
+ ```shell
18
+ bundle exec bridgetown apply https://github.com/bridgetownrb/node-runner
19
+ ```
20
+
15
21
  ## Usage
16
22
 
17
23
  Simply create a new `NodeRunner` object and pass in the Javascript code you wish to
@@ -21,11 +27,11 @@ execute:
21
27
  require "node-runner"
22
28
 
23
29
  runner = NodeRunner.new(
24
- <<~NODE
30
+ <<~JAVASCRIPT
25
31
  const hello = (response) => {
26
- return `Hello? ${response}!`
32
+ return `Hello? ${response}`
27
33
  }
28
- NODE
34
+ JAVASCRIPT
29
35
  )
30
36
  ```
31
37
 
@@ -44,12 +50,12 @@ You can also use Node require statements in your Javascript:
44
50
 
45
51
  ```ruby
46
52
  runner = NodeRunner.new(
47
- <<~NODE
53
+ <<~JAVASCRIPT
48
54
  const path = require("path")
49
55
  const extname = (filename) => {
50
56
  return path.extname(filename);
51
57
  }
52
- NODE
58
+ JAVASCRIPT
53
59
  )
54
60
 
55
61
  extname = runner.extname("README.md")
@@ -0,0 +1,29 @@
1
+ run "bundle add node-runner", abort_on_failure: false
2
+
3
+ builder_file = "node_script_builder.rb"
4
+ create_builder builder_file do
5
+ <<~RUBY
6
+ require "node-runner"
7
+
8
+ class NodeScriptBuilder < SiteBuilder
9
+ def build
10
+ # access output in Liquid with {{ site.data.node_script.hello }}
11
+ add_data "node_script" do
12
+ runner = NodeRunner.new(
13
+ <<~JAVASCRIPT
14
+ const hello = (response) => {
15
+ return `Hello? ${response}`
16
+ }
17
+ JAVASCRIPT
18
+ )
19
+
20
+ {
21
+ hello: runner.hello("Goodbye!")
22
+ }
23
+ end
24
+ end
25
+ end
26
+ RUBY
27
+ end
28
+
29
+ say_status "node-runner", "Installed! Check out plugins/builders/#{builder_file} to customize your Node script"
data/lib/node-runner.rb CHANGED
@@ -117,16 +117,20 @@ class NodeRunner::Executor
117
117
 
118
118
  def locate_executable(command)
119
119
  commands = Array(command)
120
+ exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
121
+ exts << ''
120
122
 
121
123
  commands.find { |cmd|
122
124
  if File.executable? cmd
123
125
  cmd
124
126
  else
125
- path = ENV['PATH'].split(File::PATH_SEPARATOR).find { |p|
126
- full_path = File.join(p, cmd)
127
- File.executable?(full_path) && File.file?(full_path)
127
+ path = ENV['PATH'].split(File::PATH_SEPARATOR).flat_map { |p|
128
+ exts.map { |e| File.join(p, "#{cmd}#{e}") }
129
+ }.find { |p|
130
+ File.executable?(p) && File.file?(p)
128
131
  }
129
- path && File.expand_path(cmd, path)
132
+
133
+ path && File.expand_path(path)
130
134
  end
131
135
  }
132
136
  end
data/lib/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  class NodeRunner
2
- VERSION = "1.0.1"
2
+ VERSION = "1.1.0"
3
3
  end
4
4
 
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.1
4
+ version: 1.1.0
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-05-10 00:00:00.000000000 Z
11
+ date: 2021-10-17 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email: maintainers@bridgetownrb.com
@@ -22,6 +22,7 @@ files:
22
22
  - LICENSE.txt
23
23
  - README.md
24
24
  - Rakefile
25
+ - bridgetown.automation.rb
25
26
  - lib/node-runner.rb
26
27
  - lib/node_runner.js
27
28
  - lib/version.rb
@@ -45,7 +46,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
45
46
  - !ruby/object:Gem::Version
46
47
  version: '0'
47
48
  requirements: []
48
- rubygems_version: 3.0.8
49
+ rubygems_version: 3.1.4
49
50
  signing_key:
50
51
  specification_version: 4
51
52
  summary: A simple way to execute Javascript in a Ruby context via Node