prawn-rails 0.0.2 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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