boojs 0.0.24 → 0.0.25
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/README.md +2 -1
- data/lib/boojs/version.rb +1 -1
- data/lib/boojs.rb +4 -0
- data/spec/functions_spec.rb +67 -0
- data/spec/speed_spec.rb +22 -0
- metadata +6 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 193292e66911d83904cd410eebf9404518ca2758
|
4
|
+
data.tar.gz: 35c56fa2c34e3224de29e58582dd4873c5f3df66
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e7c16d778e4f3392408a2f9605541ddf7b100b2dfce723443c262d6233185f13141f1b9a456b527d01ac666947ca4ac9f0ee3ddb8d56a759488dbd6171b2a7a2
|
7
|
+
data.tar.gz: 4580513131b33187c4a8d2f8e489a353a4b7d89ccb72bb7dc62aba7737c2adbb947c228f75f533ffaf638d1cd77cdd85f5fcb595a791c69a225e5b04013b0b75
|
data/README.md
CHANGED
@@ -60,8 +60,9 @@ Verify that a file contains no javascript runtime initialization errors
|
|
60
60
|
0
|
61
61
|
```
|
62
62
|
|
63
|
-
####
|
63
|
+
#### NOTES
|
64
64
|
* Calling `booPing()` will immediately return `"pong"` to `stdout`. You may use this to know when boo has started up fully.
|
65
|
+
* `console.error(msg)` will output to stderr. `console.log(msg) will output to stodut`
|
65
66
|
|
66
67
|
## Requirements
|
67
68
|
|
data/lib/boojs/version.rb
CHANGED
data/lib/boojs.rb
CHANGED
@@ -0,0 +1,67 @@
|
|
1
|
+
Dir.chdir File.join File.dirname(__FILE__), '../'
|
2
|
+
require 'open3'
|
3
|
+
|
4
|
+
#Some things need to be re-exported into the JS Interface, e.g. console.error
|
5
|
+
RSpec.describe "JS Functions" do
|
6
|
+
it "console.error writes to stderr" do
|
7
|
+
@err = StringIO.new
|
8
|
+
@out = StringIO.new
|
9
|
+
|
10
|
+
pipe = Open3.popen3("ruby -Ilib ./bin/boojs") do |i, o, e, t|
|
11
|
+
begin
|
12
|
+
Timeout::timeout(5) do
|
13
|
+
i.puts "console.error('hello world')"
|
14
|
+
loop do
|
15
|
+
res = select [o, e], []
|
16
|
+
|
17
|
+
if res[0].include? e
|
18
|
+
@err.write e.readline
|
19
|
+
end
|
20
|
+
|
21
|
+
if res[0].include? o
|
22
|
+
@out.write o.readline
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
rescue Timeout::Error
|
27
|
+
rescue EOFError
|
28
|
+
ensure
|
29
|
+
begin
|
30
|
+
Process.kill(:KILL, t[:pid])
|
31
|
+
rescue Errno::ESRCH
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
expect(@out.string.strip).to eq("")
|
36
|
+
expect(@err.string.strip).to eq("hello world")
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
it "booPing writes 'pong' to stdout" do
|
41
|
+
@out = StringIO.new
|
42
|
+
|
43
|
+
pipe = Open3.popen3("ruby -Ilib ./bin/boojs") do |i, o, e, t|
|
44
|
+
begin
|
45
|
+
Timeout::timeout(5) do
|
46
|
+
i.puts "booPing()"
|
47
|
+
loop do
|
48
|
+
res = select [o], []
|
49
|
+
|
50
|
+
if res[0].include? o
|
51
|
+
@out.write o.readline
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
rescue Timeout::Error
|
56
|
+
rescue EOFError
|
57
|
+
ensure
|
58
|
+
begin
|
59
|
+
Process.kill(:KILL, t[:pid])
|
60
|
+
rescue Errno::ESRCH
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
expect(@out.string.strip).to eq("pong")
|
65
|
+
end
|
66
|
+
end
|
67
|
+
end
|
data/spec/speed_spec.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
RSpec.describe "Speed" do
|
2
|
+
it "can startup and respond to a ping in under a second via stdin" do
|
3
|
+
begin
|
4
|
+
begin
|
5
|
+
Timeout.timeout(3) do
|
6
|
+
IO.popen "ruby -Ilib ./bin/boojs", "r+" do |p|
|
7
|
+
begin
|
8
|
+
p.puts "booPing()"
|
9
|
+
@res = p.readline.strip
|
10
|
+
ensure
|
11
|
+
Process.kill 9, p.pid
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
rescue
|
16
|
+
end
|
17
|
+
|
18
|
+
expect(@res).to eq("pong")
|
19
|
+
ensure
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: boojs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.25
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- seo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-04-
|
11
|
+
date: 2015-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -142,12 +142,14 @@ files:
|
|
142
142
|
- lib/boojs/version.rb
|
143
143
|
- logo.png
|
144
144
|
- spec/cli_spec.rb
|
145
|
+
- spec/functions_spec.rb
|
145
146
|
- spec/helpers.rb
|
146
147
|
- spec/ping_spec.rb
|
147
148
|
- spec/sample_spec.rb
|
148
149
|
- spec/samples/jquery_ajax.js
|
149
150
|
- spec/samples/set_a_stdin.js
|
150
151
|
- spec/samples/syntax_problem.js
|
152
|
+
- spec/speed_spec.rb
|
151
153
|
- spec/verify_spec.rb
|
152
154
|
- usage.gif
|
153
155
|
homepage: https://github.com/sotownsend/BooJS
|
@@ -176,10 +178,12 @@ specification_version: 4
|
|
176
178
|
summary: A boring javascript application framework
|
177
179
|
test_files:
|
178
180
|
- spec/cli_spec.rb
|
181
|
+
- spec/functions_spec.rb
|
179
182
|
- spec/helpers.rb
|
180
183
|
- spec/ping_spec.rb
|
181
184
|
- spec/sample_spec.rb
|
182
185
|
- spec/samples/jquery_ajax.js
|
183
186
|
- spec/samples/set_a_stdin.js
|
184
187
|
- spec/samples/syntax_problem.js
|
188
|
+
- spec/speed_spec.rb
|
185
189
|
- spec/verify_spec.rb
|