prawnto_2 0.2.0.beta4 → 0.2.0.beta6
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.
- data/Gemfile +1 -1
- data/README.rdoc +1 -1
- data/lib/prawnto/model_renderer.rb +1 -1
- data/lib/prawnto/template_handlers/renderer.rb +16 -4
- data/prawnto.gemspec +1 -1
- data/spec/assets/yield_block_in_helper_test.pdf +76 -0
- data/spec/dummy/app/controllers/test_controller.rb +9 -0
- data/spec/dummy/app/helpers/application_helper.rb +13 -0
- data/spec/dummy/app/models/super_model.rb +1 -1
- data/spec/dummy/app/views/test/instance_var_test.pdf.prawn +15 -0
- data/spec/dummy/app/views/test/yield_block_in_helper_test.pdf.prawn +4 -0
- data/spec/dummy/config/routes.rb +2 -0
- data/spec/integrations/test_controller_spec.rb +15 -3
- metadata +12 -6
data/Gemfile
CHANGED
data/README.rdoc
CHANGED
@@ -19,7 +19,7 @@ module Prawnto
|
|
19
19
|
instance.prawnto :inline => true, :instance_variables_from => calling_object
|
20
20
|
end
|
21
21
|
|
22
|
-
return instance.render_to_string(:action => template, :template => false, :
|
22
|
+
return instance.render_to_string(:action => template, :template => false, :formats => [:pdf]).html_safe
|
23
23
|
end
|
24
24
|
|
25
25
|
end
|
@@ -33,17 +33,29 @@ module Prawnto
|
|
33
33
|
vars = object.instance_variables.map(&:to_s) - exclude.map(&:to_s)
|
34
34
|
vars.each { |name| instance_variable_set(name, object.instance_variable_get(name)) }
|
35
35
|
end
|
36
|
+
|
37
|
+
def push_instance_variables_to(object, exclude = [])
|
38
|
+
vars = instance_variables.map(&:to_s) - exclude.map(&:to_s)
|
39
|
+
vars.each { |name| object.instance_variable_set(name, instance_variable_get(name)) }
|
40
|
+
end
|
36
41
|
|
37
|
-
|
42
|
+
# This method is a little hacky with pushing the instance variables back. I would prefer to use bindings, but wasn't having much luck.
|
43
|
+
def method_missing(m, *args, &block)
|
38
44
|
begin
|
39
45
|
super
|
40
46
|
rescue
|
41
47
|
if pdf.respond_to?(m.to_s)
|
42
|
-
pdf.send(m, *args)
|
48
|
+
pdf.send(m, *args, &block)
|
43
49
|
elsif @calling_object.respond_to?(m.to_s)
|
44
|
-
@calling_object
|
50
|
+
push_instance_variables_to @calling_object
|
51
|
+
res = @calling_object.send(m, *args, &block)
|
52
|
+
copy_instance_variables_from @calling_object
|
53
|
+
res
|
45
54
|
elsif @calling_object != @view_context and @view_context.respond_to?(m.to_s)
|
46
|
-
@view_context
|
55
|
+
push_instance_variables_to @view_context
|
56
|
+
res = @view_context.send(m, *args, &block)
|
57
|
+
copy_instance_variables_from @view_context
|
58
|
+
res
|
47
59
|
else
|
48
60
|
raise
|
49
61
|
end
|
data/prawnto.gemspec
CHANGED
@@ -0,0 +1,76 @@
|
|
1
|
+
%PDF-1.3
|
2
|
+
%����
|
3
|
+
1 0 obj
|
4
|
+
<< /Creator <feff0050007200610077006e>
|
5
|
+
/Producer <feff0050007200610077006e>
|
6
|
+
>>
|
7
|
+
endobj
|
8
|
+
2 0 obj
|
9
|
+
<< /Type /Catalog
|
10
|
+
/Pages 3 0 R
|
11
|
+
>>
|
12
|
+
endobj
|
13
|
+
3 0 obj
|
14
|
+
<< /Type /Pages
|
15
|
+
/Count 1
|
16
|
+
/Kids [5 0 R]
|
17
|
+
>>
|
18
|
+
endobj
|
19
|
+
4 0 obj
|
20
|
+
<< /Length 112
|
21
|
+
>>
|
22
|
+
stream
|
23
|
+
q
|
24
|
+
|
25
|
+
BT
|
26
|
+
36 747.384 Td
|
27
|
+
/F1.0 12 Tf
|
28
|
+
[<746573742031>] TJ
|
29
|
+
ET
|
30
|
+
|
31
|
+
|
32
|
+
BT
|
33
|
+
36 733.512 Td
|
34
|
+
/F1.0 12 Tf
|
35
|
+
[<746573742032>] TJ
|
36
|
+
ET
|
37
|
+
|
38
|
+
Q
|
39
|
+
|
40
|
+
endstream
|
41
|
+
endobj
|
42
|
+
5 0 obj
|
43
|
+
<< /Type /Page
|
44
|
+
/Parent 3 0 R
|
45
|
+
/MediaBox [0 0 612.0 792.0]
|
46
|
+
/Contents 4 0 R
|
47
|
+
/Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
|
48
|
+
/Font << /F1.0 6 0 R
|
49
|
+
>>
|
50
|
+
>>
|
51
|
+
>>
|
52
|
+
endobj
|
53
|
+
6 0 obj
|
54
|
+
<< /Type /Font
|
55
|
+
/Subtype /Type1
|
56
|
+
/BaseFont /Helvetica
|
57
|
+
/Encoding /WinAnsiEncoding
|
58
|
+
>>
|
59
|
+
endobj
|
60
|
+
xref
|
61
|
+
0 7
|
62
|
+
0000000000 65535 f
|
63
|
+
0000000015 00000 n
|
64
|
+
0000000109 00000 n
|
65
|
+
0000000158 00000 n
|
66
|
+
0000000215 00000 n
|
67
|
+
0000000378 00000 n
|
68
|
+
0000000556 00000 n
|
69
|
+
trailer
|
70
|
+
<< /Size 7
|
71
|
+
/Root 2 0 R
|
72
|
+
/Info 1 0 R
|
73
|
+
>>
|
74
|
+
startxref
|
75
|
+
653
|
76
|
+
%%EOF
|
@@ -9,5 +9,14 @@ class TestController < ApplicationController
|
|
9
9
|
@x = 1
|
10
10
|
render :action => "dsl_render"
|
11
11
|
end
|
12
|
+
|
13
|
+
def instance_var_test
|
14
|
+
@x = 1
|
15
|
+
render :action => "instance_var_test"
|
16
|
+
end
|
17
|
+
|
18
|
+
def yield_block_in_helper_test
|
19
|
+
render :action => "yield_block_in_helper_test"
|
20
|
+
end
|
12
21
|
|
13
22
|
end
|
data/spec/dummy/config/routes.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
Rails.application.routes.draw do
|
2
2
|
get "/default_render" => "test#default_render"
|
3
3
|
get "/dsl_render" => "test#dsl_render"
|
4
|
+
get "/instance_var_test" => "test#instance_var_test"
|
5
|
+
get "/yield_block_in_helper_test" => "test#yield_block_in_helper_test"
|
4
6
|
|
5
7
|
root :to => "test#default_render"
|
6
8
|
end
|
@@ -2,7 +2,7 @@ require File.expand_path("../spec_helper.rb", File.dirname(__FILE__))
|
|
2
2
|
|
3
3
|
describe TestController do
|
4
4
|
|
5
|
-
describe "
|
5
|
+
describe "simple" do
|
6
6
|
it "returns correct PDF" do
|
7
7
|
get "/default_render.pdf"
|
8
8
|
response.should be_success
|
@@ -11,10 +11,22 @@ describe TestController do
|
|
11
11
|
body_binary = response.body.bytes.to_a
|
12
12
|
body_binary.should == asset_binary
|
13
13
|
end
|
14
|
+
|
15
|
+
|
16
|
+
it "shares values/changes of instance vars between view and helpers" do
|
17
|
+
expect { get "/instance_var_test.pdf" }.should_not raise_error
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should render items in a block passed to a helper" do
|
21
|
+
get "/yield_block_in_helper_test.pdf"
|
22
|
+
asset_binary = File.open(TEST_ASSETS + "/yield_block_in_helper_test.pdf").read.bytes.to_a
|
23
|
+
body_binary = response.body.bytes.to_a
|
24
|
+
body_binary.should == asset_binary
|
25
|
+
end
|
14
26
|
end
|
15
27
|
|
16
28
|
|
17
|
-
describe "
|
29
|
+
describe "dsl" do
|
18
30
|
it "returns correct PDF" do
|
19
31
|
get "/dsl_render.pdf"
|
20
32
|
response.should be_success
|
@@ -24,5 +36,5 @@ describe TestController do
|
|
24
36
|
body_binary.should == asset_binary
|
25
37
|
end
|
26
38
|
end
|
27
|
-
|
39
|
+
|
28
40
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prawnto_2
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.0.
|
4
|
+
version: 0.2.0.beta6
|
5
5
|
prerelease: 6
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-01-
|
12
|
+
date: 2012-01-23 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
16
|
-
requirement: &
|
16
|
+
requirement: &70328106613180 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '3.1'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70328106613180
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: prawn
|
27
|
-
requirement: &
|
27
|
+
requirement: &70328106612700 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: 0.12.0
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70328106612700
|
36
36
|
description: Simple PDF generation using the prawn library.
|
37
37
|
email:
|
38
38
|
- development@forrestzeisler.com
|
@@ -60,6 +60,7 @@ files:
|
|
60
60
|
- script/rails
|
61
61
|
- spec/assets/default_render.pdf
|
62
62
|
- spec/assets/dsl_render.pdf
|
63
|
+
- spec/assets/yield_block_in_helper_test.pdf
|
63
64
|
- spec/dummy/.rspec
|
64
65
|
- spec/dummy/.sass-cache/387f7b3fde13680ae5a79212c089f81d2d418f1e/application.css.scssc
|
65
66
|
- spec/dummy/.sass-cache/6a18c557e07dbc07a14d0809be02d4f21f1dbe91/_shared.css.scssc
|
@@ -82,6 +83,8 @@ files:
|
|
82
83
|
- spec/dummy/app/views/pdf_emailer/email_with_attachment.text.erb
|
83
84
|
- spec/dummy/app/views/test/default_render.pdf.prawn
|
84
85
|
- spec/dummy/app/views/test/dsl_render.pdf.prawn
|
86
|
+
- spec/dummy/app/views/test/instance_var_test.pdf.prawn
|
87
|
+
- spec/dummy/app/views/test/yield_block_in_helper_test.pdf.prawn
|
85
88
|
- spec/dummy/config.ru
|
86
89
|
- spec/dummy/config/application.rb
|
87
90
|
- spec/dummy/config/boot.rb
|
@@ -139,6 +142,7 @@ summary: This gem allows you to use the PDF mime-type and the simple prawn synta
|
|
139
142
|
test_files:
|
140
143
|
- spec/assets/default_render.pdf
|
141
144
|
- spec/assets/dsl_render.pdf
|
145
|
+
- spec/assets/yield_block_in_helper_test.pdf
|
142
146
|
- spec/dummy/.rspec
|
143
147
|
- spec/dummy/.sass-cache/387f7b3fde13680ae5a79212c089f81d2d418f1e/application.css.scssc
|
144
148
|
- spec/dummy/.sass-cache/6a18c557e07dbc07a14d0809be02d4f21f1dbe91/_shared.css.scssc
|
@@ -161,6 +165,8 @@ test_files:
|
|
161
165
|
- spec/dummy/app/views/pdf_emailer/email_with_attachment.text.erb
|
162
166
|
- spec/dummy/app/views/test/default_render.pdf.prawn
|
163
167
|
- spec/dummy/app/views/test/dsl_render.pdf.prawn
|
168
|
+
- spec/dummy/app/views/test/instance_var_test.pdf.prawn
|
169
|
+
- spec/dummy/app/views/test/yield_block_in_helper_test.pdf.prawn
|
164
170
|
- spec/dummy/config.ru
|
165
171
|
- spec/dummy/config/application.rb
|
166
172
|
- spec/dummy/config/boot.rb
|