prawn-rails 0.0.2 → 0.1.0

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.
Files changed (28) hide show
  1. checksums.yaml +7 -0
  2. data/README.markdown +19 -7
  3. data/lib/prawn-rails.rb +2 -0
  4. data/lib/prawn-rails/config.rb +20 -0
  5. data/lib/prawn-rails/document.rb +21 -0
  6. data/lib/prawn-rails/engine.rb +8 -3
  7. data/lib/prawn-rails/prawn_rails_helper.rb +3 -4
  8. data/lib/prawn-rails/renderer.rb +17 -0
  9. data/lib/prawn-rails/version.rb +1 -1
  10. data/test/dummy/config/initializers/prawn-rails.rb +4 -0
  11. metadata +83 -121
  12. data/lib/prawn-rails/prawn_handler.rb +0 -17
  13. data/test/dummy/db/development.sqlite3 +0 -0
  14. data/test/dummy/db/test.sqlite3 +0 -0
  15. data/test/dummy/log/development.log +0 -2369
  16. data/test/dummy/log/test.log +0 -1302
  17. data/test/dummy/tmp/cache/assets/C1C/440/sprockets%2F327750d15e74b4631b7219847f00528a +0 -374
  18. data/test/dummy/tmp/cache/assets/CAE/130/sprockets%2F5673d456292004d3af77fbb34191a3d9 +0 -377
  19. data/test/dummy/tmp/cache/assets/CFF/990/sprockets%2F7cc4697a647f5ef443f0855f8831f7a9 +0 -0
  20. data/test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  21. data/test/dummy/tmp/cache/assets/D43/620/sprockets%2Ff65e4a70390755ca5c1aeb1d7c596e47 +0 -9271
  22. data/test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
  23. data/test/dummy/tmp/cache/assets/D6F/7F0/sprockets%2Fb93a9d8d60404a4c8a5f64e1c8ae4d44 +0 -0
  24. data/test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -9651
  25. data/test/dummy/tmp/cache/assets/DA1/220/sprockets%2F79ecb141dd3f168f83c4d3f1cf075b4d +0 -0
  26. data/test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  27. data/test/dummy/tmp/cache/assets/E2F/1D0/sprockets%2Fa19e16cee5f9ddbfbb85e2b9dc2420b7 +0 -9268
  28. data/test/dummy/tmp/cache/assets/E3A/290/sprockets%2F8657bc1d0b7bacf9b7ce74a379fbdee6 +0 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 0d6fbefb65824997d33b8548ae130748091503ae
4
+ data.tar.gz: 5a06022952a399839b9d5e791a16ec2285f28e5c
5
+ SHA512:
6
+ metadata.gz: b8dc1640268c8aaad75b44e0dfb5a4ea041decc3ca4e799b9306040645e158a9fea97053a78ed996dd9d23b25610a990eae49df26205da5e934e19094e876d4f
7
+ data.tar.gz: b3ffd4b8dd3154d878e80bda3cfcb226722b3b5bcbab332cbc6d7bcd38cca7df8556796d0c26c553f72d6653d13087e0a708f6fa82bdf1c339894d0ed70c4dc6
data/README.markdown CHANGED
@@ -10,7 +10,7 @@
10
10
  1.Add to the Rails Gemfile
11
11
 
12
12
  gem 'prawn'
13
-
13
+ gem 'prawn-table'
14
14
  gem 'prawn-rails'
15
15
 
16
16
  to the Rails Gemfile
@@ -25,12 +25,20 @@ block like `pdf.font(FONT_NAME,opts) do
25
25
  pdf.XXXX
26
26
  end`
27
27
 
28
- For more documentation go to [the manual](http://prawn.majesticseacreature.com/manual.pdf)
28
+ For more documentation go to [the manual](http://prawnpdf.org/manual.pdf)
29
29
 
30
30
  ### Build in helpers
31
31
  * *html_strip(html)*
32
32
  Removes the html tags from a string
33
33
 
34
+ ### Default configuration
35
+
36
+ Add a `prawn-rails.rb` config to your Rails app under `config/initializers` like this
37
+
38
+ PrawnRails.config do |config|
39
+ config.page_layout = :landscape
40
+ end
41
+
34
42
  ## Examples
35
43
 
36
44
  1. **Hello World**
@@ -50,12 +58,16 @@ Removes the html tags from a string
50
58
 
51
59
  ## ToDos
52
60
 
53
- 1. Add Default Configuration
54
- 2. Add per-render Configuration
55
- 3. Simple Html to PDF ?
56
- 4. Any Other requested
61
+ 1. Add per-render Configuration
62
+ 2. Simple Html to PDF ?
63
+ 3. Any Other requested
57
64
 
65
+ ## thx to
66
+ @rwilliams
67
+ @sigmike
68
+ @smber1
69
+ @iffyuva
58
70
 
59
71
  ## Dev Notes
60
72
  Gem works with any rails 3.0 version and ruby but for development It should be atlest Rails 3.1 (for the testing env)
61
- I'll try to fix that
73
+ I'll try to fix that
data/lib/prawn-rails.rb CHANGED
@@ -1,3 +1,5 @@
1
+ require "prawn-rails/config"
1
2
  require "prawn-rails/engine"
3
+
2
4
  module PrawnRails
3
5
  end
@@ -0,0 +1,20 @@
1
+ require 'ostruct'
2
+
3
+ module PrawnRails
4
+ extend self
5
+
6
+ @config = OpenStruct.new
7
+
8
+ def config
9
+ begin
10
+ block_given? ? yield(@config) : @config
11
+ rescue => e
12
+ puts e
13
+ puts e.backtrace
14
+ end
15
+
16
+ end
17
+
18
+ end
19
+
20
+
@@ -0,0 +1,21 @@
1
+ require 'prawn'
2
+ require 'prawn/table'
3
+
4
+ module PrawnRails
5
+ # This derives from Prawn::Document in order to override defaults. Note
6
+ # that the Prawn::Document behaviour itself shouldn't be changed.
7
+ class Document < Prawn::Document
8
+ # Typicall text expects a string. But rails views have this interesting
9
+ # concept that they implicitly call `to_s` on all the variables before
10
+ # rendering. So, passing an integer to text fails:
11
+ #
12
+ # pdf.text 10 #=> fails because 10 is not a string
13
+ # pdf.text 10.to_s #=> works
14
+ #
15
+ # To circumvent this situation, we call to_s on value, and delegate
16
+ # action to actual Prawn::Document.
17
+ def text(value, options = {})
18
+ super(value.to_s, options)
19
+ end
20
+ end
21
+ end
@@ -1,7 +1,12 @@
1
- require "prawn-rails/prawn_handler"
1
+ require "prawn"
2
+ require "prawn-rails/renderer"
3
+
2
4
  module PrawnRails
3
5
  class Engine < Rails::Engine
4
- ActionView::Template.register_template_handler(:prawn,PrawnRails::PrawnHandler)
5
- Mime::Type.register "application/pdf", :pdf
6
+ ActionView::Template.register_template_handler(:prawn, PrawnRails::Renderer)
7
+
8
+ if !Mime::Type.lookup_by_extension(:pdf)
9
+ Mime::Type.register_alias("application/pdf", :pdf)
10
+ end
6
11
  end
7
12
  end
@@ -1,16 +1,15 @@
1
1
  module PrawnRailsHelper
2
-
3
2
  ##
4
3
  # Removes all html tags from the string
5
4
  # @param html[String] string to remove the tags
6
5
  # @return [String] the string with out the tags
7
- ##
6
+ ##
8
7
  def html_strip html
9
8
  return html if html.nil?
10
9
  html
11
10
  text = html.
12
11
  gsub(/(&nbsp;|\n|\s)+/im, ' ').squeeze(' ').strip.
13
- gsub(/<([^\s]+)[^>]*(src|href)=\s*(.?)([^>\s]*)\3[^>]*>\4<\/\1>/i,
12
+ gsub(/<([^\s]+)[^>]*(src|href)=\s*(.?)([^>\s]*)\3[^>]*>\4<\/\1>/i,
14
13
  '\4')
15
14
 
16
15
  links = []
@@ -39,4 +38,4 @@ module PrawnRailsHelper
39
38
  links = nil
40
39
  text
41
40
  end
42
- end
41
+ end
@@ -0,0 +1,17 @@
1
+ require "prawn-rails/document"
2
+ require "prawn-rails/prawn_rails_helper"
3
+
4
+ module PrawnRails
5
+ class Renderer
6
+ def self.call(template)
7
+ ::Prawn::Document.extensions << PrawnRailsHelper
8
+ new.call(template)
9
+ end
10
+
11
+ def call(template)
12
+ "pdf = PrawnRails::Document.new;" +
13
+ template.source +
14
+ ";self.output_buffer=pdf.render;"
15
+ end
16
+ end
17
+ end
@@ -1,3 +1,3 @@
1
1
  module PrawnRails
2
- VERSION = "0.0.2"
2
+ VERSION = "0.1.0"
3
3
  end
@@ -0,0 +1,4 @@
1
+ PrawnRails.config do |config|
2
+ config.page_layout = :landscape
3
+ end
4
+
metadata CHANGED
@@ -1,86 +1,90 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: prawn-rails
3
- version: !ruby/object:Gem::Version
4
- hash: 27
5
- prerelease:
6
- segments:
7
- - 0
8
- - 0
9
- - 2
10
- version: 0.0.2
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
11
5
  platform: ruby
12
- authors:
6
+ authors:
13
7
  - Carlos Ortiz
14
8
  autorequire:
15
9
  bindir: bin
16
10
  cert_chain: []
17
-
18
- date: 2012-02-22 00:00:00 -06:00
19
- default_executable:
20
- dependencies:
21
- - !ruby/object:Gem::Dependency
11
+ date: 2014-10-07 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: prawn
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
22
21
  prerelease: false
23
- requirement: &id001 !ruby/object:Gem::Requirement
24
- none: false
25
- requirements:
26
- - - ~>
27
- - !ruby/object:Gem::Version
28
- hash: 3
29
- segments:
30
- - 3
31
- - 1
32
- - 0
33
- version: 3.1.0
34
- type: :development
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: prawn-table
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
35
42
  name: rails
36
- version_requirements: *id001
37
- - !ruby/object:Gem::Dependency
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: 3.1.0
48
+ type: :runtime
38
49
  prerelease: false
39
- requirement: &id002 !ruby/object:Gem::Requirement
40
- none: false
41
- requirements:
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
42
52
  - - ">="
43
- - !ruby/object:Gem::Version
44
- hash: 3
45
- segments:
46
- - 0
47
- version: "0"
48
- type: :development
53
+ - !ruby/object:Gem::Version
54
+ version: 3.1.0
55
+ - !ruby/object:Gem::Dependency
49
56
  name: sqlite3
50
- version_requirements: *id002
51
- - !ruby/object:Gem::Dependency
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
52
63
  prerelease: false
53
- requirement: &id003 !ruby/object:Gem::Requirement
54
- none: false
55
- requirements:
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
56
66
  - - ">="
57
- - !ruby/object:Gem::Version
58
- hash: 3
59
- segments:
60
- - 0
61
- version: "0"
62
- type: :runtime
63
- name: prawn
64
- version_requirements: *id003
65
- description: Prawn Handler for RoR 3.x projects handles and registers pdf formats
66
- email:
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ description: Prawn Handler for RoR 3.x/4.x projects handles and registers pdf formats
70
+ email:
67
71
  - chrono.dark@gmail.com
68
72
  executables: []
69
-
70
73
  extensions: []
71
-
72
74
  extra_rdoc_files: []
73
-
74
- files:
75
+ files:
76
+ - MIT-LICENSE
77
+ - README.markdown
78
+ - Rakefile
79
+ - lib/prawn-rails.rb
80
+ - lib/prawn-rails/config.rb
81
+ - lib/prawn-rails/document.rb
75
82
  - lib/prawn-rails/engine.rb
76
- - lib/prawn-rails/prawn_handler.rb
77
83
  - lib/prawn-rails/prawn_rails_helper.rb
84
+ - lib/prawn-rails/renderer.rb
78
85
  - lib/prawn-rails/version.rb
79
- - lib/prawn-rails.rb
80
86
  - lib/tasks/prawn-rails_tasks.rake
81
- - MIT-LICENSE
82
- - Rakefile
83
- - README.markdown
87
+ - test/dummy/Rakefile
84
88
  - test/dummy/app/assets/javascripts/application.js
85
89
  - test/dummy/app/assets/javascripts/pdf.js
86
90
  - test/dummy/app/assets/javascripts/products.js
@@ -97,6 +101,7 @@ files:
97
101
  - test/dummy/app/views/layouts/application.html.erb
98
102
  - test/dummy/app/views/pdf/render_pdf.html.erb
99
103
  - test/dummy/app/views/pdf/render_pdf.pdf.prawn
104
+ - test/dummy/config.ru
100
105
  - test/dummy/config/application.rb
101
106
  - test/dummy/config/boot.rb
102
107
  - test/dummy/config/database.yml
@@ -107,75 +112,47 @@ files:
107
112
  - test/dummy/config/initializers/backtrace_silencers.rb
108
113
  - test/dummy/config/initializers/inflections.rb
109
114
  - test/dummy/config/initializers/mime_types.rb
115
+ - test/dummy/config/initializers/prawn-rails.rb
110
116
  - test/dummy/config/initializers/secret_token.rb
111
117
  - test/dummy/config/initializers/session_store.rb
112
118
  - test/dummy/config/initializers/wrap_parameters.rb
113
119
  - test/dummy/config/locales/en.yml
114
120
  - test/dummy/config/routes.rb
115
- - test/dummy/config.ru
116
- - test/dummy/db/development.sqlite3
117
121
  - test/dummy/db/schema.rb
118
- - test/dummy/db/test.sqlite3
119
- - test/dummy/log/development.log
120
- - test/dummy/log/test.log
121
122
  - test/dummy/public/404.html
122
123
  - test/dummy/public/422.html
123
124
  - test/dummy/public/500.html
124
125
  - test/dummy/public/favicon.ico
125
- - test/dummy/Rakefile
126
126
  - test/dummy/script/rails
127
127
  - test/dummy/test/functional/pdf_controller_test.rb
128
128
  - test/dummy/test/unit/helpers/pdf_helper_test.rb
129
- - test/dummy/tmp/cache/assets/C1C/440/sprockets%2F327750d15e74b4631b7219847f00528a
130
- - test/dummy/tmp/cache/assets/CAE/130/sprockets%2F5673d456292004d3af77fbb34191a3d9
131
- - test/dummy/tmp/cache/assets/CFF/990/sprockets%2F7cc4697a647f5ef443f0855f8831f7a9
132
- - test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
133
- - test/dummy/tmp/cache/assets/D43/620/sprockets%2Ff65e4a70390755ca5c1aeb1d7c596e47
134
- - test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
135
- - test/dummy/tmp/cache/assets/D6F/7F0/sprockets%2Fb93a9d8d60404a4c8a5f64e1c8ae4d44
136
- - test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
137
- - test/dummy/tmp/cache/assets/DA1/220/sprockets%2F79ecb141dd3f168f83c4d3f1cf075b4d
138
- - test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
139
- - test/dummy/tmp/cache/assets/E2F/1D0/sprockets%2Fa19e16cee5f9ddbfbb85e2b9dc2420b7
140
- - test/dummy/tmp/cache/assets/E3A/290/sprockets%2F8657bc1d0b7bacf9b7ce74a379fbdee6
141
129
  - test/integration/navigation_test.rb
142
130
  - test/prawn-rails_test.rb
143
131
  - test/test_helper.rb
144
- has_rdoc: true
145
132
  homepage: https://github.com/cortiz/prawn-rails
146
133
  licenses: []
147
-
134
+ metadata: {}
148
135
  post_install_message:
149
136
  rdoc_options: []
150
-
151
- require_paths:
137
+ require_paths:
152
138
  - lib
153
- required_ruby_version: !ruby/object:Gem::Requirement
154
- none: false
155
- requirements:
139
+ required_ruby_version: !ruby/object:Gem::Requirement
140
+ requirements:
156
141
  - - ">="
157
- - !ruby/object:Gem::Version
158
- hash: 3
159
- segments:
160
- - 0
161
- version: "0"
162
- required_rubygems_version: !ruby/object:Gem::Requirement
163
- none: false
164
- requirements:
142
+ - !ruby/object:Gem::Version
143
+ version: '0'
144
+ required_rubygems_version: !ruby/object:Gem::Requirement
145
+ requirements:
165
146
  - - ">="
166
- - !ruby/object:Gem::Version
167
- hash: 3
168
- segments:
169
- - 0
170
- version: "0"
147
+ - !ruby/object:Gem::Version
148
+ version: '0'
171
149
  requirements: []
172
-
173
150
  rubyforge_project:
174
- rubygems_version: 1.6.2
151
+ rubygems_version: 2.2.2
175
152
  signing_key:
176
- specification_version: 3
177
- summary: Prawn Handler for RoR 3.x projects
178
- test_files:
153
+ specification_version: 4
154
+ summary: Prawn Handler for RoR 3.x/4.x projects
155
+ test_files:
179
156
  - test/dummy/app/assets/javascripts/application.js
180
157
  - test/dummy/app/assets/javascripts/pdf.js
181
158
  - test/dummy/app/assets/javascripts/products.js
@@ -202,17 +179,14 @@ test_files:
202
179
  - test/dummy/config/initializers/backtrace_silencers.rb
203
180
  - test/dummy/config/initializers/inflections.rb
204
181
  - test/dummy/config/initializers/mime_types.rb
182
+ - test/dummy/config/initializers/prawn-rails.rb
205
183
  - test/dummy/config/initializers/secret_token.rb
206
184
  - test/dummy/config/initializers/session_store.rb
207
185
  - test/dummy/config/initializers/wrap_parameters.rb
208
186
  - test/dummy/config/locales/en.yml
209
187
  - test/dummy/config/routes.rb
210
188
  - test/dummy/config.ru
211
- - test/dummy/db/development.sqlite3
212
189
  - test/dummy/db/schema.rb
213
- - test/dummy/db/test.sqlite3
214
- - test/dummy/log/development.log
215
- - test/dummy/log/test.log
216
190
  - test/dummy/public/404.html
217
191
  - test/dummy/public/422.html
218
192
  - test/dummy/public/500.html
@@ -221,18 +195,6 @@ test_files:
221
195
  - test/dummy/script/rails
222
196
  - test/dummy/test/functional/pdf_controller_test.rb
223
197
  - test/dummy/test/unit/helpers/pdf_helper_test.rb
224
- - test/dummy/tmp/cache/assets/C1C/440/sprockets%2F327750d15e74b4631b7219847f00528a
225
- - test/dummy/tmp/cache/assets/CAE/130/sprockets%2F5673d456292004d3af77fbb34191a3d9
226
- - test/dummy/tmp/cache/assets/CFF/990/sprockets%2F7cc4697a647f5ef443f0855f8831f7a9
227
- - test/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705
228
- - test/dummy/tmp/cache/assets/D43/620/sprockets%2Ff65e4a70390755ca5c1aeb1d7c596e47
229
- - test/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4
230
- - test/dummy/tmp/cache/assets/D6F/7F0/sprockets%2Fb93a9d8d60404a4c8a5f64e1c8ae4d44
231
- - test/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384
232
- - test/dummy/tmp/cache/assets/DA1/220/sprockets%2F79ecb141dd3f168f83c4d3f1cf075b4d
233
- - test/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af
234
- - test/dummy/tmp/cache/assets/E2F/1D0/sprockets%2Fa19e16cee5f9ddbfbb85e2b9dc2420b7
235
- - test/dummy/tmp/cache/assets/E3A/290/sprockets%2F8657bc1d0b7bacf9b7ce74a379fbdee6
236
198
  - test/integration/navigation_test.rb
237
199
  - test/prawn-rails_test.rb
238
200
  - test/test_helper.rb