envjs 0.1.0 → 0.1.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.
- data/bin/envjsrb +22 -6
- data/lib/envjs/env.js +7 -2
- data/lib/envjs/runtime.rb +66 -4
- metadata +2 -2
data/bin/envjsrb
CHANGED
@@ -12,7 +12,7 @@ require 'envjs/runtime'
|
|
12
12
|
RUNTIME = js = Johnson::Runtime.new
|
13
13
|
RUNTIME.extend Envjs::Runtime
|
14
14
|
|
15
|
-
RUNTIME.load Envjs::ENVJS
|
15
|
+
# RUNTIME.load Envjs::ENVJS
|
16
16
|
|
17
17
|
EXIT_VERBS = [nil] + %w(exit quit)
|
18
18
|
|
@@ -124,24 +124,40 @@ if ARGV.length > 0
|
|
124
124
|
begin
|
125
125
|
about_blank = true
|
126
126
|
ARGV.each do |file|
|
127
|
-
|
127
|
+
|
128
|
+
uri = URI.parse file
|
129
|
+
|
130
|
+
if uri.scheme == nil
|
131
|
+
uri.scheme = "file"
|
132
|
+
begin
|
133
|
+
uri.path = Pathname.new(uri.path).realpath.to_s
|
134
|
+
rescue Errno::ENOENT; end
|
135
|
+
uri = URI.parse uri.to_s
|
136
|
+
end
|
137
|
+
|
138
|
+
uri_s = uri.to_s.sub %r(^file:/([^/])), 'file:///\1'
|
139
|
+
|
140
|
+
if uri.scheme == "about" and uri.opaque == "blank"
|
128
141
|
RUNTIME.wait
|
129
142
|
RUNTIME.evaluate("window.location = 'about:blank'", "(comand line)", 1)
|
130
143
|
about_blank = true
|
131
|
-
elsif
|
144
|
+
elsif uri.path =~ /\.x?html?$/ || uri.scheme =~ %r(^https?)
|
145
|
+
|
132
146
|
# this might want to go alway; jazrb does it manually now, which I think was the use case
|
133
147
|
# that wanted this
|
134
148
|
if !about_blank
|
135
149
|
RUNTIME.wait
|
136
150
|
RUNTIME.evaluate("window.location = 'about:blank'", "(comand line)", 1)
|
137
151
|
end
|
152
|
+
|
138
153
|
RUNTIME.wait
|
139
|
-
RUNTIME.evaluate("window.location = 'file://#{Pathname.new(file).realpath}'", file, 1)
|
154
|
+
# RUNTIME.evaluate("window.location = 'file://#{Pathname.new(file).realpath}'", file, 1)
|
155
|
+
RUNTIME.evaluate("window.location = '#{uri_s}'", file, 1)
|
140
156
|
about_blank = false
|
141
157
|
else
|
142
158
|
RUNTIME.become_first_script_window
|
143
|
-
RUNTIME.top_level_load
|
144
|
-
RUNTIME.load
|
159
|
+
RUNTIME.top_level_load uri_s
|
160
|
+
RUNTIME.load uri_s
|
145
161
|
end
|
146
162
|
end
|
147
163
|
rescue Johnson::Error => je
|
data/lib/envjs/env.js
CHANGED
@@ -127,9 +127,14 @@ $env.location = function(path, base){
|
|
127
127
|
base.path = path;
|
128
128
|
base = base + "";
|
129
129
|
} else {
|
130
|
+
// debug("bb", base);
|
131
|
+
// base = base + Ruby.URI.parse(path);
|
132
|
+
b = Ruby.eval("lambda { |a,b| a+b; }");
|
133
|
+
base = b(base,path);
|
134
|
+
// base.path = base.path.substring(0, base.path.lastIndexOf('/'));
|
135
|
+
// base.path = base.path + '/' + path;
|
130
136
|
base = base + "";
|
131
|
-
|
132
|
-
base = base + '/' + path;
|
137
|
+
// debug("bbb", base);
|
133
138
|
}
|
134
139
|
var result = base;
|
135
140
|
// ? This path only used for files?
|
data/lib/envjs/runtime.rb
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'envjs'
|
2
2
|
require "open-uri"
|
3
|
-
require '
|
3
|
+
require 'pathname'
|
4
4
|
begin
|
5
5
|
require 'fsdb'
|
6
6
|
rescue LoadError; end
|
@@ -90,7 +90,7 @@ EOJS
|
|
90
90
|
top_level_js = nil
|
91
91
|
|
92
92
|
add_dep = nil
|
93
|
-
|
93
|
+
|
94
94
|
clear_deps = lambda do |w|
|
95
95
|
begin
|
96
96
|
if db.call
|
@@ -138,7 +138,20 @@ EOJS
|
|
138
138
|
end
|
139
139
|
end
|
140
140
|
if !loc || loc == "about:blank"
|
141
|
-
|
141
|
+
uri = URI.parse top_level_js
|
142
|
+
if uri.scheme == nil
|
143
|
+
uri.scheme = "file"
|
144
|
+
begin
|
145
|
+
uri.path = Pathname.new(uri.path).realpath.to_s
|
146
|
+
rescue Errno::ENOENT; end
|
147
|
+
uri = URI.parse uri.to_s
|
148
|
+
end
|
149
|
+
uri_s = uri.to_s.sub %r(^file:/([^/])), 'file:///\1'
|
150
|
+
|
151
|
+
# tll = "file://" + Pathname(top_level_js).realpath.to_s
|
152
|
+
|
153
|
+
tll = uri_s
|
154
|
+
|
142
155
|
if ( tll != path )
|
143
156
|
loc = tll
|
144
157
|
end
|
@@ -168,7 +181,25 @@ EOJS
|
|
168
181
|
if files.length == 2 && !(String === files[1])
|
169
182
|
f = files[0]
|
170
183
|
w = files[1]
|
171
|
-
|
184
|
+
|
185
|
+
# Hmmm ...
|
186
|
+
uri = URI.parse f
|
187
|
+
|
188
|
+
if uri.scheme == nil
|
189
|
+
uri.scheme = "file"
|
190
|
+
begin
|
191
|
+
uri.path = Pathname.new(uri.path).realpath.to_s
|
192
|
+
rescue Errno::ENOENT; end
|
193
|
+
uri = URI.parse uri.to_s
|
194
|
+
end
|
195
|
+
|
196
|
+
uri_s = uri.to_s.sub %r(^file:/([^/])), 'file:///\1'
|
197
|
+
|
198
|
+
if uri.scheme == "file"
|
199
|
+
uri_s = uri.path
|
200
|
+
end
|
201
|
+
|
202
|
+
v = open(uri_s).read.gsub(/\A#!.*$/, '')
|
172
203
|
loc = nil
|
173
204
|
add_dep.call w, f
|
174
205
|
evaluate(v, f, 1, w, w, f)
|
@@ -177,6 +208,35 @@ EOJS
|
|
177
208
|
end
|
178
209
|
}
|
179
210
|
|
211
|
+
def load *files
|
212
|
+
files.map { |f|
|
213
|
+
# Hmmm ...
|
214
|
+
|
215
|
+
uri = URI.parse f
|
216
|
+
if uri.scheme == nil
|
217
|
+
uri.scheme = "file"
|
218
|
+
begin
|
219
|
+
uri.path = Pathname.new(uri.path).realpath.to_s
|
220
|
+
rescue Errno::ENOENT; end
|
221
|
+
uri = URI.parse uri.to_s
|
222
|
+
end
|
223
|
+
uri_s = uri.to_s.sub %r(^file:/([^/])), 'file:///\1'
|
224
|
+
|
225
|
+
if uri.scheme == "file"
|
226
|
+
super uri.path
|
227
|
+
else
|
228
|
+
raise "hell 1"
|
229
|
+
end
|
230
|
+
|
231
|
+
# v = open(uri_s).read.gsub(/\A#!.*$/, '')
|
232
|
+
# loc = nil
|
233
|
+
# add_dep.call w, f
|
234
|
+
# evaluate(v, f, 1, w, w, f)
|
235
|
+
# evaluate(File.read(f).gsub(/\A#!.*$/, ''), f, 1)
|
236
|
+
|
237
|
+
}.last
|
238
|
+
end
|
239
|
+
|
180
240
|
master.reload = lambda { |*files|
|
181
241
|
if files.length == 2 && !(String === files[1])
|
182
242
|
f = files[0]
|
@@ -274,6 +334,8 @@ EOJS
|
|
274
334
|
@envjs[k] = v
|
275
335
|
end
|
276
336
|
|
337
|
+
load Envjs::ENVJS
|
338
|
+
|
277
339
|
end
|
278
340
|
end
|
279
341
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: envjs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Resig
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2010-
|
13
|
+
date: 2010-02-05 00:00:00 -08:00
|
14
14
|
default_executable: envjsrb
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|