execjs 1.2.9 → 1.2.10
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/execjs/external_runtime.rb +29 -13
- data/lib/execjs/version.rb +1 -1
- metadata +4 -4
@@ -94,7 +94,7 @@ module ExecJS
|
|
94
94
|
@test_args = options[:test_args]
|
95
95
|
@test_match = options[:test_match]
|
96
96
|
@encoding = options[:encoding]
|
97
|
-
@binary =
|
97
|
+
@binary = nil
|
98
98
|
end
|
99
99
|
|
100
100
|
def exec(source)
|
@@ -113,16 +113,37 @@ module ExecJS
|
|
113
113
|
|
114
114
|
def available?
|
115
115
|
require "multi_json"
|
116
|
-
|
116
|
+
binary ? true : false
|
117
117
|
end
|
118
118
|
|
119
|
+
private
|
120
|
+
def binary
|
121
|
+
@binary ||= locate_binary
|
122
|
+
end
|
123
|
+
|
124
|
+
def which_windows(name)
|
125
|
+
result = `#{shell_escape("#{ExecJS.root}/support/which.bat", name)}`
|
126
|
+
result.strip.split("\n").first
|
127
|
+
end
|
128
|
+
|
129
|
+
def which_unix(name)
|
130
|
+
if File.executable? cmd
|
131
|
+
cmd
|
132
|
+
else
|
133
|
+
path = ENV['PATH'].split(File::PATH_SEPARATOR).find { |path|
|
134
|
+
File.executable? File.join(path, cmd)
|
135
|
+
}
|
136
|
+
path && File.expand_path(cmd, path)
|
137
|
+
end
|
138
|
+
end
|
139
|
+
|
119
140
|
protected
|
120
141
|
def runner_source
|
121
142
|
@runner_source ||= IO.read(@runner_path)
|
122
143
|
end
|
123
144
|
|
124
145
|
def exec_runtime(filename)
|
125
|
-
output = sh("#{shell_escape(*(
|
146
|
+
output = sh("#{shell_escape(*(binary.split(' ') << filename))} 2>&1")
|
126
147
|
if $?.success?
|
127
148
|
output
|
128
149
|
else
|
@@ -142,19 +163,14 @@ module ExecJS
|
|
142
163
|
end
|
143
164
|
|
144
165
|
def which(command)
|
145
|
-
Array(command).
|
166
|
+
Array(command).find do |name|
|
146
167
|
name, args = name.split(/\s+/, 2)
|
147
|
-
|
148
|
-
`#{shell_escape("#{ExecJS.root}/support/which.bat", name)}`
|
149
|
-
else
|
150
|
-
`#{shell_escape('command', '-v', name)} 2>/dev/null`
|
151
|
-
end
|
168
|
+
path = ExecJS.windows? ? which_windows(name) : which_unix(name)
|
152
169
|
|
153
|
-
|
154
|
-
|
155
|
-
|
170
|
+
next unless path
|
171
|
+
|
172
|
+
args ? "#{path} #{args}" : path
|
156
173
|
end
|
157
|
-
nil
|
158
174
|
end
|
159
175
|
|
160
176
|
if "".respond_to?(:force_encoding)
|
data/lib/execjs/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: execjs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 1.2.
|
9
|
+
- 10
|
10
|
+
version: 1.2.10
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Sam Stephenson
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2011-
|
19
|
+
date: 2011-12-05 00:00:00 -06:00
|
20
20
|
default_executable:
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|