slim2pdf 0.0.4 → 0.0.5
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/.gitignore +1 -0
- data/.travis.yml +1 -2
- data/doc/examples/agreement/script.rb +1 -1
- data/lib/slim2pdf.rb +7 -7
- data/lib/slim2pdf/version.rb +1 -1
- data/lib/slim2pdf/writer.rb +28 -24
- data/slim2pdf.gemspec +3 -3
- data/test/writer_test.rb +19 -19
- metadata +11 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad7879217ee023a3ff06d7208b619731845d7ec4
|
4
|
+
data.tar.gz: d3bb6fa0e2096905b2491459863a5c96ff99eb76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 397c739e476815948d51492d2a5a41cea5f4bd3ebcf69e269b872a91d5af9119d4d2f30759ae35a5d485fb68b35c050aa3ae3d050c914737a1a750cf73cfc17d
|
7
|
+
data.tar.gz: e6982e87e92cdae9581e0a6fb070677a5356dace3ba1e216d434c3d79c53fa6fb5c8bda446ffc350d102952c3541981b57c66c908f95ca4b7317aa88a753330a
|
data/.gitignore
CHANGED
data/.travis.yml
CHANGED
@@ -2,6 +2,6 @@ require 'slim2pdf'
|
|
2
2
|
|
3
3
|
writer = Slim2pdf::Writer.new
|
4
4
|
writer.template = 'doc/examples/agreement/template.slim'
|
5
|
-
writer.data = {date: '2014-01-14', part1: 'Google', part2: 'Microsoft'}
|
5
|
+
writer.data = { date: '2014-01-14', part1: 'Google', part2: 'Microsoft' }
|
6
6
|
writer.footer_text = 'Agreement footer'
|
7
7
|
writer.save_to_pdf('doc/examples/agreement/output.pdf')
|
data/lib/slim2pdf.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
|
-
require
|
2
|
-
require
|
3
|
-
require
|
4
|
-
require
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
1
|
+
require 'slim2pdf/version'
|
2
|
+
require 'slim'
|
3
|
+
require 'ostruct'
|
4
|
+
require 'fileutils'
|
5
|
+
require 'pathname'
|
6
|
+
require 'tempfile'
|
7
|
+
require 'slim2pdf/writer'
|
data/lib/slim2pdf/version.rb
CHANGED
data/lib/slim2pdf/writer.rb
CHANGED
@@ -1,13 +1,16 @@
|
|
1
1
|
module Slim2pdf
|
2
2
|
class Writer
|
3
3
|
attr_accessor :template, :data
|
4
|
-
attr_accessor :wkhtmltopdf_path
|
4
|
+
attr_accessor :wkhtmltopdf_path
|
5
|
+
attr_writer :wkhtmltopdf_command
|
5
6
|
attr_accessor :footer_text, :footer_font, :footer_font_size
|
6
|
-
|
7
|
+
attr_writer :logger
|
7
8
|
|
8
|
-
def initialize(template=nil, data={})
|
9
|
+
def initialize(template = nil, data = {})
|
9
10
|
@template = template
|
10
11
|
@data = data
|
12
|
+
@wkhtmltopdf_path = nil
|
13
|
+
@wkhtmltopdf_command = nil
|
11
14
|
end
|
12
15
|
|
13
16
|
def render_to_html
|
@@ -41,30 +44,31 @@ module Slim2pdf
|
|
41
44
|
end
|
42
45
|
|
43
46
|
private
|
44
|
-
# Change hash data to scope object
|
45
|
-
def scope
|
46
|
-
OpenStruct.new(data)
|
47
|
-
end
|
48
47
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
48
|
+
# Change hash data to scope object
|
49
|
+
def scope
|
50
|
+
OpenStruct.new(data)
|
51
|
+
end
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
ensure
|
59
|
-
tmp.close
|
60
|
-
end
|
61
|
-
tmp
|
62
|
-
end
|
53
|
+
# Create dir if not exists
|
54
|
+
def create_dir(path)
|
55
|
+
FileUtils.mkdir_p(Pathname.new(path).dirname)
|
56
|
+
end
|
63
57
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
58
|
+
def create_tmp_html
|
59
|
+
tmp = Tempfile.new ['slim2pdf', '.html']
|
60
|
+
begin
|
61
|
+
tmp.write render_to_html
|
62
|
+
ensure
|
63
|
+
tmp.close
|
68
64
|
end
|
65
|
+
tmp
|
66
|
+
end
|
67
|
+
|
68
|
+
def footer_params
|
69
|
+
return unless footer_text
|
70
|
+
"--footer-line --footer-font-name '#{footer_font || 'verdana'}' " +
|
71
|
+
"--footer-font-size '#{footer_font_size || 10}' --footer-left '#{footer_text}'"
|
72
|
+
end
|
69
73
|
end
|
70
74
|
end
|
data/slim2pdf.gemspec
CHANGED
@@ -18,10 +18,10 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler"
|
21
|
+
spec.add_development_dependency "bundler"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "simplecov"
|
24
24
|
|
25
|
-
spec.add_dependency 'slim', '~> 3.0.
|
26
|
-
spec.add_dependency "wkhtmltopdf-binary", "~> 0.
|
25
|
+
spec.add_dependency 'slim', '~> 3.0.7'
|
26
|
+
spec.add_dependency "wkhtmltopdf-binary", "~> 0.12.3"
|
27
27
|
end
|
data/test/writer_test.rb
CHANGED
@@ -5,7 +5,7 @@ require 'stringio'
|
|
5
5
|
module Slim2pdf
|
6
6
|
class WriterTest < MiniTest::Unit::TestCase
|
7
7
|
def setup
|
8
|
-
@data = {title: 'Slim2pdf', content: 'Slim to PDF conversion gem'}
|
8
|
+
@data = { title: 'Slim2pdf', content: 'Slim to PDF conversion gem' }
|
9
9
|
@template = File.expand_path('../tpl/test.slim', __FILE__)
|
10
10
|
@writer = Writer.new(@template, @data)
|
11
11
|
end
|
@@ -29,36 +29,36 @@ module Slim2pdf
|
|
29
29
|
|
30
30
|
def test_render_to_html
|
31
31
|
html = @writer.render_to_html
|
32
|
-
assert_match %r
|
33
|
-
assert_match %r
|
32
|
+
assert_match %r{<title>Slim2pdf</title>}, html
|
33
|
+
assert_match %r{<p>Slim to PDF conversion gem</p>}, html
|
34
34
|
end
|
35
35
|
|
36
36
|
def test_save_to_html
|
37
37
|
path = '/tmp/test.html'
|
38
38
|
@writer.save_to_html(path)
|
39
|
-
assert File.
|
39
|
+
assert File.exist?(path)
|
40
40
|
html = File.read(path)
|
41
|
-
assert_match %r
|
42
|
-
assert_match %r
|
41
|
+
assert_match %r{<title>Slim2pdf</title>}, html
|
42
|
+
assert_match %r{<p>Slim to PDF conversion gem</p>}, html
|
43
43
|
File.unlink(path)
|
44
|
-
assert_equal false, File.
|
44
|
+
assert_equal false, File.exist?(path)
|
45
45
|
end
|
46
46
|
|
47
47
|
def test_save_to_html_with_dir_creation
|
48
48
|
path = '/tmp/a/b/c/test.html'
|
49
49
|
@writer.save_to_html(path)
|
50
50
|
html = File.read(path)
|
51
|
-
assert_match
|
51
|
+
assert_match(/<html>/, html)
|
52
52
|
FileUtils.rm_rf('/tmp/a')
|
53
|
-
assert_equal false, File.
|
53
|
+
assert_equal false, File.exist?('/tmp/a')
|
54
54
|
end
|
55
55
|
|
56
56
|
def test_save_to_pdf
|
57
57
|
path = '/tmp/test.pdf'
|
58
58
|
@writer.save_to_pdf(path)
|
59
|
-
assert File.
|
59
|
+
assert File.exist?(path)
|
60
60
|
File.unlink(path)
|
61
|
-
assert_equal false, File.
|
61
|
+
assert_equal false, File.exist?(path)
|
62
62
|
end
|
63
63
|
|
64
64
|
def test_wkhtmltopdf_path
|
@@ -76,14 +76,14 @@ module Slim2pdf
|
|
76
76
|
def test_footer_params
|
77
77
|
@writer.footer_text = 'Footer'
|
78
78
|
command = @writer.wkhtmltopdf_command
|
79
|
-
assert_match
|
80
|
-
assert_match
|
81
|
-
assert_match
|
79
|
+
assert_match(/Footer/, command)
|
80
|
+
assert_match(/10/, command)
|
81
|
+
assert_match(/verdana/, command)
|
82
82
|
@writer.footer_font = 'arial'
|
83
83
|
@writer.footer_font_size = 14
|
84
84
|
command = @writer.wkhtmltopdf_command
|
85
|
-
assert_match
|
86
|
-
assert_match
|
85
|
+
assert_match(/14/, command)
|
86
|
+
assert_match(/arial/, command)
|
87
87
|
end
|
88
88
|
|
89
89
|
def test_logger_accessor
|
@@ -102,9 +102,9 @@ module Slim2pdf
|
|
102
102
|
@writer.save_to_pdf('/tmp/out.pdf')
|
103
103
|
File.unlink('/tmp/out.pdf')
|
104
104
|
log = sio.string
|
105
|
-
assert_match %r
|
106
|
-
assert_match %r
|
107
|
-
assert_match
|
105
|
+
assert_match %r{/tmp/out.html}, log
|
106
|
+
assert_match %r{/tmp/out.pdf}, log
|
107
|
+
assert_match(/Run command: wkhtmltopdf/, log)
|
108
108
|
end
|
109
109
|
end
|
110
110
|
end
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slim2pdf
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Piotr Macuk
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-09-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
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: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -58,28 +58,28 @@ dependencies:
|
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.0.
|
61
|
+
version: 3.0.7
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.0.
|
68
|
+
version: 3.0.7
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: wkhtmltopdf-binary
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
73
|
- - "~>"
|
74
74
|
- !ruby/object:Gem::Version
|
75
|
-
version: 0.
|
75
|
+
version: 0.12.3
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
80
|
- - "~>"
|
81
81
|
- !ruby/object:Gem::Version
|
82
|
-
version: 0.
|
82
|
+
version: 0.12.3
|
83
83
|
description: Slim2pdf renders slim template with data hash and save the results as
|
84
84
|
pdf file.
|
85
85
|
email:
|
@@ -133,7 +133,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
133
133
|
version: '0'
|
134
134
|
requirements: []
|
135
135
|
rubyforge_project:
|
136
|
-
rubygems_version: 2.4.
|
136
|
+
rubygems_version: 2.4.8
|
137
137
|
signing_key:
|
138
138
|
specification_version: 4
|
139
139
|
summary: Slim template to pdf file conversion tool.
|