prawnto_2 0.2.0.beta4 → 0.2.0.beta6

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -3,6 +3,6 @@ source "http://rubygems.org"
3
3
  # Specify your gem's dependencies in my_project.gemspec
4
4
  gemspec
5
5
 
6
- gem "spork", "~> 0.9.0.rc9"
6
+ gem "spork", ">= 0.9.0"
7
7
  gem "rspec-rails"
8
8
  gem "mocha"
data/README.rdoc CHANGED
@@ -16,7 +16,7 @@ This is my attempt to merge the various forks of the prawnto gem, and <b>update
16
16
 
17
17
  In your <code>Gemfile</code>:
18
18
 
19
- gem "prawnto_2", "0.2.0.beta3", :require => "prawnto"
19
+ gem "prawnto_2", "0.2.0.beta6", :require => "prawnto"
20
20
 
21
21
  Then run:
22
22
 
@@ -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, :format => :pdf).html_safe
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
- def method_missing(m, *args)
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.send(m, *args)
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.send(m, *args)
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
@@ -1,7 +1,7 @@
1
1
 
2
2
  Gem::Specification.new do |s|
3
3
  s.name = "prawnto_2"
4
- s.version = '0.2.0.beta4'
4
+ s.version = '0.2.0.beta6'
5
5
  s.author = ["Forrest"]
6
6
  s.email = ["development@forrestzeisler.com"]
7
7
  s.date = Time.now.utc.strftime("%Y-%m-%d")
@@ -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
@@ -2,4 +2,17 @@ module ApplicationHelper
2
2
  def some_helper
3
3
  "this is from a helper"
4
4
  end
5
+
6
+ def x_output_helper
7
+ @x.to_s
8
+ end
9
+
10
+ def set_x_to_3_in_helper
11
+ @x = 3
12
+ end
13
+
14
+ def yield_this_block
15
+ yield
16
+ end
17
+
5
18
  end
@@ -2,7 +2,7 @@ class SuperModel
2
2
 
3
3
  def to_pdf
4
4
  @x = 1
5
- Prawnto::ModelRenderer.to_string "test/default_render.pdf", self
5
+ Prawnto::ModelRenderer.to_string "test/default_render", self
6
6
  end
7
7
 
8
8
  end
@@ -0,0 +1,15 @@
1
+ text "Complex Example"
2
+ text "@x = #{@x}"
3
+ @x = 2
4
+ text x_output_helper
5
+
6
+ if @x.to_s != x_output_helper
7
+ raise "Variable did not carry over"
8
+ end
9
+
10
+ set_x_to_3_in_helper
11
+
12
+ if @x != 3
13
+ raise "Variable did not carry over"
14
+ end
15
+
@@ -0,0 +1,4 @@
1
+ text "test 1"
2
+ yield_this_block {
3
+ text "test 2"
4
+ }
@@ -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 "GET default_render" do
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 "GET dsl_render" do
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.beta4
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-22 00:00:00.000000000Z
12
+ date: 2012-01-23 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
- requirement: &70215973019900 !ruby/object:Gem::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: *70215973019900
24
+ version_requirements: *70328106613180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: prawn
27
- requirement: &70215973019200 !ruby/object:Gem::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: *70215973019200
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