wkhtmltopdf_for_rails 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest ADDED
@@ -0,0 +1,16 @@
1
+ Manifest
2
+ bin/wkhtmltopdf
3
+ bin/wkhtmltopdf-amd64
4
+ bin/wkhtmltopdf-binary.rb
5
+ bin/wkhtmltopdf_darwin_386
6
+ bin/wkhtmltopdf_linux_386
7
+ init.rb
8
+ lib/render_pdf.rb
9
+ lib/wkhtmltopdf.rb
10
+ lib/wkhtmltopdf_for_rails.rb
11
+ rakefile
12
+ test/fixtures/wkhtmltopdf.html
13
+ test/test_helper.rb
14
+ test/wkhtmltopdf_test.rb
15
+ test/wkhtmltopdf_test_controller_test.rb
16
+ Rakefile
data/Rakefile ADDED
@@ -0,0 +1,13 @@
1
+ # Rakefile
2
+ require 'rubygems'
3
+ require 'rake'
4
+ require 'echoe'
5
+
6
+ Echoe.new('wkhtmltopdf_for_rails', '0.0.1') do |p|
7
+ p.description = "Provides WKHTMLTOPDF for ruby on rails."
8
+ p.url = "http://github.com/aratak/wkhtmltopdf_for_rails"
9
+ p.author = "Alexey Osipenko"
10
+ p.email = "alexey@osipenko.in.ua"
11
+ p.ignore_pattern = ["pkg/*"]
12
+ p.development_dependencies = []
13
+ end
data/bin/wkhtmltopdf ADDED
@@ -0,0 +1,15 @@
1
+ #!/usr/bin/ruby
2
+
3
+ if RUBY_PLATFORM =~ /linux/ && RUBY_PLATFORM =~ /386/
4
+ executable = 'wkhtmltopdf_linux_386'
5
+ elsif RUBY_PLATFORM =~ /linux/ && RUBY_PLATFORM =~ /64/
6
+ executable = 'wkhtmltopdf-amd64'
7
+ elsif RUBY_PLATFORM =~ /darwin/
8
+ executable = 'wkhtmltopdf_darwin_386'
9
+ else
10
+ raise "Invalid platform. Must be running linux or intel-based Mac OS."
11
+ end
12
+
13
+ executable = File.join(File.dirname(__FILE__), executable)
14
+ system(executable + " " + $*.join(" "))
15
+
Binary file
File without changes
Binary file
Binary file
data/init.rb ADDED
@@ -0,0 +1,7 @@
1
+ require 'render_pdf'
2
+ require 'wkhtmltopdf'
3
+
4
+ Mime::Type.register 'application/pdf', :pdf
5
+
6
+ ActionController::Base.send(:include, RenderPdf)
7
+
data/lib/render_pdf.rb ADDED
@@ -0,0 +1,62 @@
1
+ module RenderPdf
2
+
3
+ def render_to_pdf(options = {})
4
+ make_pdf(options)
5
+ # pdf_file_name = "#{options[:file_path]}/#{options[:pdf]}.pdf"
6
+ send_pdf_options = {
7
+ :filename => "#{options[:pdf]}.pdf",
8
+ :type => 'application/pdf'
9
+ }
10
+ # if options[:delete_generated_pdf]
11
+ # send_pdf_options[:stream] = false
12
+ # end
13
+
14
+ send_data(make_pdf(options), send_pdf_options)
15
+
16
+ # if options[:delete_generated_pdf] && File.exists?(pdf_file_name)
17
+ # File.delete(pdf_file_name)
18
+ # end
19
+ end
20
+
21
+ private
22
+
23
+ def make_pdf(options)
24
+ if options.has_key?(:template)
25
+ html_string = generate_html(options)
26
+ timestamp = Time.now.strftime("%y%m%d%H%M%S")
27
+ html_file_name = "#{timestamp}_#{options[:pdf]}.html"
28
+ html_file_path = File.join(RAILS_ROOT, 'tmp', html_file_name)
29
+ File.open(html_file_path, 'w') do |f|
30
+ f.write(html_string)
31
+ end
32
+ options[:html_file] = html_file_path
33
+ end
34
+
35
+ pdf = Wkhtmltopdf.new(options)
36
+ pdf.generate
37
+
38
+ # if html_file_path.present? && File.exists?(html_file_path)
39
+ # File.delete(html_file_path)
40
+ # end
41
+ end
42
+
43
+ def generate_html(options)
44
+ render_options = {}
45
+ render_options[:template] = options.delete(:template)
46
+ render_options[:layout] = options.delete(:layout) if options.has_key?(:layout)
47
+
48
+ html_string = render_to_string(render_options)
49
+
50
+ # re-route absolute paths for images, scripts and stylesheets
51
+ html_string.gsub!( /src=["']+([^:]+?)["']/i ) { |m| "src=\"#{RAILS_ROOT}/public" + $1 + '"' }
52
+ html_string.gsub!( /<link href=["']+([^:]+?)["']/i ) { |m| "<link href=\"#{RAILS_ROOT}/public" + $1 + '"' }
53
+
54
+ # Remove asset ids on images, scripts, and stylesheets with a regex
55
+ html_string.gsub!( /src=["'](\S+\?\d*)["']/i ) { |m| 'src="' + $1.split('?').first + '"' }
56
+ html_string.gsub!( /<link href=["'](\S+\?\d*)["']/i ) { |m| '<link href="' + $1.split('?').first + '"' }
57
+
58
+ return html_string
59
+ end
60
+
61
+ end
62
+
@@ -0,0 +1,43 @@
1
+ class Wkhtmltopdf
2
+
3
+ attr_accessor :pdf_file, :html_file, :source, :optional_params, :params_string
4
+
5
+ def initialize(options)
6
+ # @pdf_file = "#{options[:file_path]}/#{options[:pdf]}.pdf"
7
+ @html_file = options[:html_file] if options.has_key?(:html_file)
8
+ @source = options[:source] if options.has_key?(:source)
9
+ @optional_params = options[:wkhtmltopdf_options] if options.has_key?(:wkhtmltopdf_options)
10
+ create_params_string
11
+ end
12
+
13
+ def generate
14
+ wkhtml_call = "wkhtmltopdf "
15
+ if !@source.nil?
16
+ puts "source"
17
+ wkhtml_call << "#{@source}"
18
+ else
19
+ puts "local html"
20
+ wkhtml_call << "#{@html_file}"
21
+ end
22
+ wkhtml_call << " #{@params_string} - -q"
23
+ return `#{wkhtml_call}`
24
+ end
25
+
26
+ private
27
+
28
+ def create_params_string
29
+ params_arr = []
30
+ unless @optional_params.nil?
31
+ @optional_params.each do |key, val|
32
+ if val && val.is_a?(String)
33
+ params_arr << "--#{key.to_s} '#{val}'"
34
+ elsif val
35
+ params_arr << "--#{key.to_s}"
36
+ end
37
+ end
38
+ end
39
+ @params_string = params_arr.join(' ')
40
+ end
41
+
42
+ end
43
+
@@ -0,0 +1,6 @@
1
+ require 'render_pdf'
2
+ require 'wkhtmltopdf'
3
+
4
+ Mime::Type.register 'application/pdf', :pdf
5
+
6
+ ActionController::Base.send(:include, RenderPdf)
data/rakefile ADDED
@@ -0,0 +1,13 @@
1
+ # Rakefile
2
+ require 'rubygems'
3
+ require 'rake'
4
+ require 'echoe'
5
+
6
+ Echoe.new('wkhtmltopdf_for_rails', '0.0.1') do |p|
7
+ p.description = "Provides WKHTMLTOPDF for ruby on rails."
8
+ p.url = "http://github.com/aratak/wkhtmltopdf_for_rails"
9
+ p.author = "Alexey Osipenko"
10
+ p.email = "alexey@osipenko.in.ua"
11
+ p.ignore_pattern = ["pkg/*"]
12
+ p.development_dependencies = []
13
+ end
@@ -0,0 +1,24 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3
+ <head>
4
+ <meta http-equiv="content-type" content="text/html;charset=UTF-8" />
5
+ <title>Plugin Test</title>
6
+
7
+
8
+ <link href="/home/tom/rails/plugin_test/public/stylesheets/style.css" media="screen" rel="stylesheet" type="text/css" />
9
+ <script src="/home/tom/rails/plugin_test/public/javascripts/prototype.js" type="text/javascript"></script>
10
+ <script src="/home/tom/rails/plugin_test/public/javascripts/effects.js" type="text/javascript"></script>
11
+ <script src="/home/tom/rails/plugin_test/public/javascripts/dragdrop.js" type="text/javascript"></script>
12
+ <script src="/home/tom/rails/plugin_test/public/javascripts/controls.js" type="text/javascript"></script>
13
+ <script src="/home/tom/rails/plugin_test/public/javascripts/application.js" type="text/javascript"></script>
14
+ <script src="/home/tom/rails/plugin_test/public/javascripts/plotter.js" type="text/javascript"></script>
15
+
16
+
17
+ <link href="/home/tom/rails/plugin_test/public/stylesheets/print.css" media="print" rel="stylesheet" type="text/css" />
18
+ </head>
19
+
20
+ <body>
21
+ <p>This is an html file</p>
22
+ </body>
23
+ </html>
24
+
@@ -0,0 +1,25 @@
1
+ require 'rubygems'
2
+
3
+ require 'test/unit'
4
+ require 'shoulda'
5
+
6
+ module WkhtmltopdfHelper
7
+
8
+ def valid_pdf_source_attributes
9
+ {
10
+ :pdf => 'wkhtmltopdf_test',
11
+ :file_path => File.join(File.dirname(__FILE__), 'pdfs'),
12
+ :source => "http://www.google.com/"
13
+ }
14
+ end
15
+
16
+ def valid_pdf_html_attributes
17
+ {
18
+ :pdf => 'wkhtmltopdf_test',
19
+ :file_path => File.join(File.dirname(__FILE__), 'pdfs'),
20
+ :html_file => File.join(File.dirname(__FILE__), 'fixtures', 'wkhtmltopdf.html')
21
+ }
22
+ end
23
+
24
+ end
25
+
@@ -0,0 +1,145 @@
1
+ require File.dirname(__FILE__) + '/test_helper'
2
+ require File.dirname(__FILE__) + '/../lib/wkhtmltopdf'
3
+
4
+ include WkhtmltopdfHelper
5
+
6
+ class WkhtmltopdfTest < Test::Unit::TestCase
7
+
8
+ context "new wkhtmltopdf with a source url" do
9
+ setup do
10
+ @options = valid_pdf_source_attributes
11
+ @pdf = Wkhtmltopdf.new(@options)
12
+ end
13
+
14
+ subject { @pdf }
15
+
16
+ should "set the instance methods on instantiation" do
17
+ assert_equal @options[:source], @pdf.source
18
+ assert_equal File.join(File.dirname(__FILE__), 'pdfs', 'wkhtmltopdf_test.pdf'), @pdf.pdf_file
19
+ assert_nil @pdf.html_file
20
+ assert_nil @pdf.optional_params
21
+ end
22
+
23
+ should "set the params_string" do
24
+ assert_equal "", @pdf.params_string
25
+ end
26
+
27
+ should "create the pdf" do
28
+ @pdf.generate
29
+ assert File.exists?(@pdf.pdf_file)
30
+ remove_pdf_after_generation(@pdf)
31
+ end
32
+ end
33
+
34
+ context "new wkhtmltopdf with a local html file" do
35
+ setup do
36
+ @options = valid_pdf_html_attributes
37
+ @pdf = Wkhtmltopdf.new(@options)
38
+ end
39
+
40
+ subject { @pdf }
41
+
42
+ should "set the instance methods on instantiation" do
43
+ assert_equal File.join(File.dirname(__FILE__), 'fixtures', 'wkhtmltopdf.html'), @pdf.html_file
44
+ assert_equal File.join(File.dirname(__FILE__), 'pdfs', 'wkhtmltopdf_test.pdf'), @pdf.pdf_file
45
+ assert_nil @pdf.source
46
+ assert_nil @pdf.optional_params
47
+ end
48
+
49
+ should "set the params_string" do
50
+ assert_equal "", @pdf.params_string
51
+ end
52
+
53
+ should "create the pdf" do
54
+ @pdf.generate
55
+ assert File.exists?(@pdf.pdf_file)
56
+ remove_pdf_after_generation(@pdf)
57
+ end
58
+ end
59
+
60
+ context "with optional params" do
61
+ setup do
62
+ @options = valid_pdf_source_attributes
63
+ @optional_params = {
64
+ :wkhtmltopdf_options => {
65
+ "footer-line" => true,
66
+ "footer-center" => "[page] / [toPage]",
67
+ }
68
+ }
69
+ @pdf = Wkhtmltopdf.new(@options.merge(@optional_params))
70
+ end
71
+
72
+ subject { @pdf }
73
+
74
+ should "set the instance methods on instantiation" do
75
+ assert_equal @options[:source], @pdf.source
76
+ assert_equal File.join(File.dirname(__FILE__), 'pdfs', 'wkhtmltopdf_test.pdf'), @pdf.pdf_file
77
+ assert_nil @pdf.html_file
78
+ assert_not_nil @pdf.optional_params
79
+ assert_equal @optional_params[:wkhtmltopdf_options], @pdf.optional_params
80
+ end
81
+
82
+ should "set the params_string" do
83
+ assert_not_nil @pdf.params_string
84
+ assert_match /--footer-line/, @pdf.params_string
85
+ assert_match /--footer-center '\[page\] \/ \[toPage\]'/, @pdf.params_string
86
+ end
87
+
88
+ should "create the pdf" do
89
+ @pdf.generate
90
+ assert File.exists?(@pdf.pdf_file)
91
+ remove_pdf_after_generation(@pdf)
92
+ end
93
+
94
+ context "with symbol keys for optional params" do
95
+ setup do
96
+ @options = valid_pdf_source_attributes
97
+ @optional_params = {
98
+ :wkhtmltopdf_options => {
99
+ "footer-line" => true,
100
+ "footer-center" => "[page] / [toPage]",
101
+ :lowquality => true,
102
+ :'print-media-type' => true
103
+ }
104
+ }
105
+ @pdf = Wkhtmltopdf.new(@options.merge(@optional_params))
106
+ end
107
+
108
+ subject { @pdf }
109
+
110
+ should "set the params_string" do
111
+ assert_not_nil @pdf.params_string
112
+ assert_match /--footer-line/, @pdf.params_string
113
+ assert_match /--footer-center '\[page\] \/ \[toPage\]'/, @pdf.params_string
114
+ assert_match /--lowquality/, @pdf.params_string
115
+ assert_match /--print-media-type/, @pdf.params_string
116
+ end
117
+ end
118
+
119
+
120
+ context "with false values for optional params" do
121
+ setup do
122
+ @options = valid_pdf_source_attributes
123
+ @optional_params = {
124
+ :wkhtmltopdf_options => {
125
+ "footer-line" => false,
126
+ :lowquality => false,
127
+ :'print-media-type' => false
128
+ }
129
+ }
130
+ @pdf = Wkhtmltopdf.new(@options.merge(@optional_params))
131
+ end
132
+
133
+ subject { @pdf }
134
+
135
+ should "set the params_string" do
136
+ assert_equal "", @pdf.params_string
137
+ end
138
+ end
139
+ end
140
+
141
+ def remove_pdf_after_generation(pdf)
142
+ File.delete(pdf.pdf_file) if File.exists?(pdf.pdf_file)
143
+ end
144
+
145
+ end
@@ -0,0 +1,92 @@
1
+ require 'action_controller'
2
+ require File.dirname(__FILE__) + '/test_helper'
3
+ require 'shoulda/rails'
4
+ require File.dirname(__FILE__) + '/../init.rb'
5
+
6
+ RAILS_ROOT = File.dirname(__FILE__)
7
+
8
+ class WkhtmltopdfTestController < ActionController::Base
9
+ def test_source
10
+ respond_to do |format|
11
+ format.pdf do
12
+ render_to_pdf({
13
+ :pdf => "source",
14
+ :file_path => File.join(File.dirname(__FILE__), 'pdfs'),
15
+ :source => "http://www.google.com/"
16
+ })
17
+ end
18
+ end
19
+ end
20
+
21
+ def test_source_with_delete
22
+ respond_to do |format|
23
+ format.pdf do
24
+ render_to_pdf({
25
+ :pdf => "source",
26
+ :file_path => File.join(File.dirname(__FILE__), 'pdfs'),
27
+ :source => "http://www.google.com/",
28
+ :delete_generated_pdf => true
29
+ })
30
+ end
31
+ end
32
+ end
33
+
34
+ def test_html
35
+ respond_to do |format|
36
+ format.pdf do
37
+ render_to_pdf({
38
+ :pdf => "html",
39
+ :file_path => File.join(File.dirname(__FILE__), 'pdfs'),
40
+ :template => File.join(File.dirname(__FILE__), 'fixtures', 'wkhtmltopdf.html')
41
+ })
42
+ end
43
+ end
44
+ end
45
+ end
46
+
47
+ ActionController::Routing::Routes.draw do |map|
48
+ map.resources :pdfs,
49
+ :controller => 'wkhtmltopdf_test',
50
+ :collection => [:test_source, :test_source_with_delete, :test_html]
51
+ end
52
+
53
+ class WkhtmltopdfTestControllerTest < ActionController::TestCase
54
+
55
+ context "on GET to pdf from a source" do
56
+ setup do
57
+ get :test_source, :format => "pdf"
58
+ end
59
+
60
+ subject { @controller }
61
+
62
+ should_respond_with :success
63
+ should_respond_with_content_type "application/pdf"
64
+ end
65
+
66
+ context "on GET to pdf with deleting the pdf after generation" do
67
+ setup do
68
+ get :test_source_with_delete, :format => "pdf"
69
+ end
70
+
71
+ subject { @controller }
72
+
73
+ should_respond_with :success
74
+ should_respond_with_content_type "application/pdf"
75
+
76
+ should "delete the pdf after sending the file" do
77
+ assert !File.exists?(File.join(File.dirname(__FILE__), 'pdfs', 'source.pdf'))
78
+ end
79
+ end
80
+
81
+ context "on GET to pdf from a template" do
82
+ setup do
83
+ get :test_html, :format => "pdf"
84
+ end
85
+
86
+ subject { @controller }
87
+
88
+ should_respond_with :success
89
+ should_respond_with_content_type "application/pdf"
90
+ end
91
+
92
+ end
@@ -0,0 +1,32 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{wkhtmltopdf_for_rails}
5
+ s.version = "0.0.1"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Alexey Osipenko"]
9
+ s.date = %q{2010-04-29}
10
+ s.description = %q{Provides WKHTMLTOPDF for ruby on rails.}
11
+ s.email = %q{alexey@osipenko.in.ua}
12
+ s.executables = ["wkhtmltopdf", "wkhtmltopdf-amd64", "wkhtmltopdf-binary.rb", "wkhtmltopdf_darwin_386", "wkhtmltopdf_linux_386"]
13
+ s.extra_rdoc_files = ["bin/wkhtmltopdf", "bin/wkhtmltopdf-amd64", "bin/wkhtmltopdf-binary.rb", "bin/wkhtmltopdf_darwin_386", "bin/wkhtmltopdf_linux_386", "lib/render_pdf.rb", "lib/wkhtmltopdf.rb", "lib/wkhtmltopdf_for_rails.rb"]
14
+ s.files = ["Manifest", "bin/wkhtmltopdf", "bin/wkhtmltopdf-amd64", "bin/wkhtmltopdf-binary.rb", "bin/wkhtmltopdf_darwin_386", "bin/wkhtmltopdf_linux_386", "init.rb", "lib/render_pdf.rb", "lib/wkhtmltopdf.rb", "lib/wkhtmltopdf_for_rails.rb", "rakefile", "test/fixtures/wkhtmltopdf.html", "test/test_helper.rb", "test/wkhtmltopdf_test.rb", "test/wkhtmltopdf_test_controller_test.rb", "Rakefile", "wkhtmltopdf_for_rails.gemspec"]
15
+ s.homepage = %q{http://github.com/aratak/wkhtmltopdf_for_rails}
16
+ s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Wkhtmltopdf_for_rails"]
17
+ s.require_paths = ["lib"]
18
+ s.rubyforge_project = %q{wkhtmltopdf_for_rails}
19
+ s.rubygems_version = %q{1.3.6}
20
+ s.summary = %q{Provides WKHTMLTOPDF for ruby on rails.}
21
+ s.test_files = ["test/test_helper.rb", "test/wkhtmltopdf_test.rb", "test/wkhtmltopdf_test_controller_test.rb"]
22
+
23
+ if s.respond_to? :specification_version then
24
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
25
+ s.specification_version = 3
26
+
27
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
28
+ else
29
+ end
30
+ else
31
+ end
32
+ end
metadata ADDED
@@ -0,0 +1,95 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: wkhtmltopdf_for_rails
3
+ version: !ruby/object:Gem::Version
4
+ prerelease: false
5
+ segments:
6
+ - 0
7
+ - 0
8
+ - 1
9
+ version: 0.0.1
10
+ platform: ruby
11
+ authors:
12
+ - Alexey Osipenko
13
+ autorequire:
14
+ bindir: bin
15
+ cert_chain: []
16
+
17
+ date: 2010-04-29 00:00:00 +03:00
18
+ default_executable:
19
+ dependencies: []
20
+
21
+ description: Provides WKHTMLTOPDF for ruby on rails.
22
+ email: alexey@osipenko.in.ua
23
+ executables:
24
+ - wkhtmltopdf
25
+ - wkhtmltopdf-amd64
26
+ - wkhtmltopdf-binary.rb
27
+ - wkhtmltopdf_darwin_386
28
+ - wkhtmltopdf_linux_386
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - bin/wkhtmltopdf
33
+ - bin/wkhtmltopdf-amd64
34
+ - bin/wkhtmltopdf-binary.rb
35
+ - bin/wkhtmltopdf_darwin_386
36
+ - bin/wkhtmltopdf_linux_386
37
+ - lib/render_pdf.rb
38
+ - lib/wkhtmltopdf.rb
39
+ - lib/wkhtmltopdf_for_rails.rb
40
+ files:
41
+ - Manifest
42
+ - bin/wkhtmltopdf
43
+ - bin/wkhtmltopdf-amd64
44
+ - bin/wkhtmltopdf-binary.rb
45
+ - bin/wkhtmltopdf_darwin_386
46
+ - bin/wkhtmltopdf_linux_386
47
+ - init.rb
48
+ - lib/render_pdf.rb
49
+ - lib/wkhtmltopdf.rb
50
+ - lib/wkhtmltopdf_for_rails.rb
51
+ - rakefile
52
+ - test/fixtures/wkhtmltopdf.html
53
+ - test/test_helper.rb
54
+ - test/wkhtmltopdf_test.rb
55
+ - test/wkhtmltopdf_test_controller_test.rb
56
+ - Rakefile
57
+ - wkhtmltopdf_for_rails.gemspec
58
+ has_rdoc: true
59
+ homepage: http://github.com/aratak/wkhtmltopdf_for_rails
60
+ licenses: []
61
+
62
+ post_install_message:
63
+ rdoc_options:
64
+ - --line-numbers
65
+ - --inline-source
66
+ - --title
67
+ - Wkhtmltopdf_for_rails
68
+ require_paths:
69
+ - lib
70
+ required_ruby_version: !ruby/object:Gem::Requirement
71
+ requirements:
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ segments:
75
+ - 0
76
+ version: "0"
77
+ required_rubygems_version: !ruby/object:Gem::Requirement
78
+ requirements:
79
+ - - ">="
80
+ - !ruby/object:Gem::Version
81
+ segments:
82
+ - 1
83
+ - 2
84
+ version: "1.2"
85
+ requirements: []
86
+
87
+ rubyforge_project: wkhtmltopdf_for_rails
88
+ rubygems_version: 1.3.6
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: Provides WKHTMLTOPDF for ruby on rails.
92
+ test_files:
93
+ - test/test_helper.rb
94
+ - test/wkhtmltopdf_test.rb
95
+ - test/wkhtmltopdf_test_controller_test.rb