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.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/phandoc.rb +32 -21
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f9584d9dab58847b233d613f1b5bd6eae594fd3
4
- data.tar.gz: 52e0fa7dc5442f75e31fd1078086150ab3520001
3
+ metadata.gz: b7d2c75e357be024f5f565b58a711a3a50f898e4
4
+ data.tar.gz: c2235b6600cd8d370a0505508d577a4286e259fd
5
5
  SHA512:
6
- metadata.gz: ac0b614ada0092d9f85cddc66480a547c8eadbe354ea868e1dd1f112cbb6eb2a512edf5fad96f535f3376cb1c4d0aa6aa651e4b2340cc008bc8a93406648a668
7
- data.tar.gz: 7606d9be8880759725d8d044a856087adff5571be542ca951e36f994b8a0def4c33752dae78f19ef516948d0b44d5452d2ad348e0ff193bb71d55534d111dc23
6
+ metadata.gz: efe1c01b3a2c89a85df0f79b47c1dc1a2da455f1374811715c2b768975bac2282d3c56b689df4fbccdc28ef6e47ccfb1bed3cfba221f78e5cb5d290cd008313c
7
+ data.tar.gz: 2e0b17bdb1d5b703bb36ae7df91a3df8581ef8e15b579e3d842699a5b4de5f3ced6457046e5b21701b3ce04563c39f1a3f1ba65b058de77acdf731e0ae1f61f8
@@ -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
- @html = html
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(@html)
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
- script_file.write <<-JAVASCRIPT
26
+ self.script = <<-JAVASCRIPT
24
27
  var fs = require('fs');
25
- var htmlContent = fs.read('#{html_file.path}');
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 webpage = require('webpage');
29
- var page = webpage.create();
30
-
31
- page.content = htmlContent;
32
+ var page = require('webpage').create();
33
+
34
+ #{settings_code(settings)}
32
35
 
33
- var output = page.evaluate(function(script) {
34
- return eval(script);
35
- }, jsContent);
36
+ page.open(filename, function(status) {
37
+ var output = page.evaluate(function(script) {
38
+ return eval(script);
39
+ }, jsContent);
36
40
 
37
- console.log(output);
38
- console.log(page.content.replace(/^/mg, '[:PHANDOC_SOURCE:] '));
41
+ console.log(output);
42
+ console.log(page.content.replace(/^/mg, '[:PHANDOC_SOURCE:] '));
39
43
 
40
- phantom.exit();
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
- @html = html.join("\n")
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
- def html
69
- @html
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.1
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-10-30 00:00:00.000000000 Z
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: '0'
20
- type: :development
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: '0'
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: []