phandoc 0.0.1 → 0.0.2
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/lib/phandoc.rb +32 -21
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b7d2c75e357be024f5f565b58a711a3a50f898e4
|
4
|
+
data.tar.gz: c2235b6600cd8d370a0505508d577a4286e259fd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: efe1c01b3a2c89a85df0f79b47c1dc1a2da455f1374811715c2b768975bac2282d3c56b689df4fbccdc28ef6e47ccfb1bed3cfba221f78e5cb5d290cd008313c
|
7
|
+
data.tar.gz: 2e0b17bdb1d5b703bb36ae7df91a3df8581ef8e15b579e3d842699a5b4de5f3ced6457046e5b21701b3ce04563c39f1a3f1ba65b058de77acdf731e0ae1f61f8
|
data/lib/phandoc.rb
CHANGED
@@ -1,44 +1,50 @@
|
|
1
1
|
require 'phantomjs'
|
2
2
|
require 'tempfile'
|
3
|
+
require 'json'
|
3
4
|
|
4
5
|
class Phandoc
|
6
|
+
attr_accessor :html, :script
|
7
|
+
|
5
8
|
def initialize(html)
|
6
|
-
|
9
|
+
self.html = html
|
7
10
|
end
|
8
11
|
|
9
|
-
def execute(code)
|
12
|
+
def execute(code, settings={})
|
10
13
|
result = []
|
11
14
|
|
12
|
-
html_file = Tempfile.new('phantom_html')
|
13
|
-
js_file = Tempfile.new('phantom_js')
|
14
|
-
script_file = Tempfile.new('phantom_script')
|
15
|
+
html_file = Tempfile.new(['phantom_html', '.html'])
|
16
|
+
js_file = Tempfile.new(['phantom_js', '.js'])
|
17
|
+
script_file = Tempfile.new(['phantom_script', '.js'])
|
15
18
|
|
16
19
|
begin
|
17
|
-
html_file.write(
|
20
|
+
html_file.write(self.html)
|
18
21
|
html_file.flush
|
19
22
|
|
20
23
|
js_file.write(code)
|
21
24
|
js_file.flush
|
22
25
|
|
23
|
-
|
26
|
+
self.script = <<-JAVASCRIPT
|
24
27
|
var fs = require('fs');
|
25
|
-
var
|
28
|
+
var filename = '#{html_file.path}';
|
26
29
|
var jsContent = fs.read('#{js_file.path}');
|
30
|
+
var settings = #{settings.to_json};
|
27
31
|
|
28
|
-
var
|
29
|
-
|
30
|
-
|
31
|
-
page.content = htmlContent;
|
32
|
+
var page = require('webpage').create();
|
33
|
+
|
34
|
+
#{settings_code(settings)}
|
32
35
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
+
page.open(filename, function(status) {
|
37
|
+
var output = page.evaluate(function(script) {
|
38
|
+
return eval(script);
|
39
|
+
}, jsContent);
|
36
40
|
|
37
|
-
|
38
|
-
|
41
|
+
console.log(output);
|
42
|
+
console.log(page.content.replace(/^/mg, '[:PHANDOC_SOURCE:] '));
|
39
43
|
|
40
|
-
|
44
|
+
phantom.exit();
|
45
|
+
});
|
41
46
|
JAVASCRIPT
|
47
|
+
script_file.write self.script
|
42
48
|
script_file.flush
|
43
49
|
|
44
50
|
html = []
|
@@ -50,7 +56,7 @@ class Phandoc
|
|
50
56
|
end
|
51
57
|
end
|
52
58
|
|
53
|
-
|
59
|
+
self.html = html.join("\n")
|
54
60
|
ensure
|
55
61
|
html_file.close
|
56
62
|
html_file.unlink
|
@@ -65,7 +71,12 @@ class Phandoc
|
|
65
71
|
result.join("\n")
|
66
72
|
end
|
67
73
|
|
68
|
-
|
69
|
-
|
74
|
+
private
|
75
|
+
|
76
|
+
def settings_code(settings={})
|
77
|
+
settings.map do |k, v|
|
78
|
+
value = v.is_a?(String) ? "'#{v}'" : v
|
79
|
+
"page.settings.#{k} = #{value};"
|
80
|
+
end.join("\n ")
|
70
81
|
end
|
71
82
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: phandoc
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- greatghoul
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-12-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: phantomjs
|
@@ -16,15 +16,15 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
20
|
-
type: :
|
19
|
+
version: '1.9'
|
20
|
+
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
27
|
-
description: Javascript + DOM in your ruby, based on PhantomJS.
|
26
|
+
version: '1.9'
|
27
|
+
description: Javascript + DOM in your ruby, based on PhantomJS. https://github.com/greatghoul/phandoc
|
28
28
|
email: greatghoul@gmail.com
|
29
29
|
executables: []
|
30
30
|
extensions: []
|