prawn_cocktail 0.3.1 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +15 -7
- data/lib/prawn_cocktail/configuration.rb +9 -0
- data/lib/prawn_cocktail/renderer.rb +4 -5
- data/lib/prawn_cocktail/version.rb +1 -1
- data/lib/prawn_cocktail.rb +1 -0
- metadata +6 -5
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# PrawnCocktail
|
2
2
|
|
3
|
-
Simple
|
3
|
+
Simple documents, templates and helpers on top of Prawn in Ruby on Rails.
|
4
4
|
|
5
5
|
Because writing Prawn documents PHP 4 style is no fun.
|
6
6
|
|
@@ -18,6 +18,14 @@ NOTE: Work in progress; well used but untested.
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
### Configuration
|
22
|
+
|
23
|
+
You can change where PrawnCocktail looks for its templates. This is the default:
|
24
|
+
|
25
|
+
``` ruby
|
26
|
+
PrawnCocktail.template_root = "app/views/documents"
|
27
|
+
```
|
28
|
+
|
21
29
|
### Controller
|
22
30
|
|
23
31
|
Your controllers get a `send_pdf` method:
|
@@ -32,11 +40,9 @@ class InvoicesController < ApplicationController
|
|
32
40
|
end
|
33
41
|
```
|
34
42
|
|
35
|
-
### Document
|
36
|
-
|
37
|
-
Against Rails conventions, but in line with the idea of [two-step views](http://martinfowler.com/eaaCatalog/twoStepView.html), we think of these as "views" as opposed to "templates".
|
43
|
+
### Document
|
38
44
|
|
39
|
-
|
45
|
+
The document class provides a data hash for the template, and optionally a filename:
|
40
46
|
|
41
47
|
``` ruby
|
42
48
|
# app/documents/invoice_document.rb
|
@@ -64,13 +70,15 @@ end
|
|
64
70
|
|
65
71
|
The document has `render` and `render_file(name)` methods, just like `Prawn::Document`.
|
66
72
|
|
67
|
-
The filename, if defined, is used
|
73
|
+
The filename, if defined, is used by `send_pdf` in the controller. You might also want to use it with mail attachments, scripts etc.
|
74
|
+
|
75
|
+
The `data` value is passed to the template as an `OpenStruct`.
|
68
76
|
|
69
77
|
If the data becomes complex, you are advised to extract one or many builder classes like `InvoiceDocument::Data` and call those from `data`.
|
70
78
|
|
71
79
|
### Template
|
72
80
|
|
73
|
-
Put the Prawn code in a template named after the
|
81
|
+
Put the Prawn code in a template named after the document:
|
74
82
|
|
75
83
|
``` ruby
|
76
84
|
# app/views/documents/invoice_document.pdf.rb
|
@@ -31,7 +31,6 @@ module PrawnCocktail
|
|
31
31
|
private
|
32
32
|
|
33
33
|
def render
|
34
|
-
# We pass the filename for better backtraces.
|
35
34
|
instance_eval(read_template, template_path)
|
36
35
|
end
|
37
36
|
|
@@ -44,15 +43,15 @@ module PrawnCocktail
|
|
44
43
|
end
|
45
44
|
|
46
45
|
def read_template
|
47
|
-
File.read(
|
46
|
+
File.read(template_path)
|
48
47
|
end
|
49
48
|
|
50
49
|
def template_path
|
51
|
-
"
|
50
|
+
File.join(template_root, "#{@template}.pdf.rb")
|
52
51
|
end
|
53
52
|
|
54
|
-
def
|
55
|
-
|
53
|
+
def template_root
|
54
|
+
PrawnCocktail.template_root
|
56
55
|
end
|
57
56
|
end
|
58
57
|
end
|
data/lib/prawn_cocktail.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: prawn_cocktail
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2013-02-23 00:00:00.000000000 Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: prawn
|
16
|
-
requirement: &
|
16
|
+
requirement: &70228826573820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70228826573820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rails
|
27
|
-
requirement: &
|
27
|
+
requirement: &70228826573200 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,7 +32,7 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70228826573200
|
36
36
|
description:
|
37
37
|
email:
|
38
38
|
- henrik@barsoom.se
|
@@ -45,6 +45,7 @@ files:
|
|
45
45
|
- README.md
|
46
46
|
- Rakefile
|
47
47
|
- lib/prawn_cocktail.rb
|
48
|
+
- lib/prawn_cocktail/configuration.rb
|
48
49
|
- lib/prawn_cocktail/controller.rb
|
49
50
|
- lib/prawn_cocktail/document.rb
|
50
51
|
- lib/prawn_cocktail/railtie.rb
|