phandoc 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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: []