rails_pdf 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 44883fce40a90d093e9507abdc4a179c0583607af4b713512936bf9145e2c808
4
- data.tar.gz: bd189278cf71f4fb035c2be28d306096094d12dca574ce40f92948acae2c6a63
3
+ metadata.gz: 678f0f8bea4244c6d485dc5f1b75fab64eb3eabaad6d51951c4ea958af159e56
4
+ data.tar.gz: 856f2c46206dabb82b979537d7f89dafd29b5f70f164552a07413e558224bdab
5
5
  SHA512:
6
- metadata.gz: e96e51f13562c97422edb772c004bae168accfcfcd96c8648841281673e2a1b301deb48f37a7aaeb724d9f46b2e908ac3bd4c304e7dccfaac7eb1087b42efd48
7
- data.tar.gz: b2e3351bfb6961bc23ce186e36863460b177fb76016b613786c1f049d6f01dbde7d9d6b5d40808263db6611a1e75e0630ea30c4c30190dc4818addc933fa7831
6
+ metadata.gz: a1fe29e986fa4160d2f3479cd3bcd8ccea5038ab3ce1792960f520ab57b0cf4000328e0e1aab906d9a1338be5abc4bfa06ca4c31d0b16af013e6ef2d72468239
7
+ data.tar.gz: 24566e771c4710e783a0f5c19428d2ade592ddc47624d20a426549b635cf3c95404927c71559b67d928cc9f46ada34dd6a0c97d9f3d29e41e7ff4280d7ab12b8
data/README.md CHANGED
@@ -14,6 +14,7 @@ Create PDF documents in Rails your app from HTML, CSS and JS.
14
14
  - Separates PDF templates from app views
15
15
  - Doesn't insert any middleware into your app
16
16
  - Pub format is similar to slim
17
+ - Pass locals to the view
17
18
 
18
19
  It's uses [ReLaXedJS](https://github.com/RelaxedJS/ReLaXed) tool, which is wrapper arround chromium headless.
19
20
 
@@ -28,19 +29,19 @@ _If you want to contribute and add more templates - it' very easy to do. See #Te
28
29
  <td width="25%">
29
30
  <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_1.png">
30
31
  <img src="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_1_thumb.png?raw=true" />
31
- </a>
32
+ </a>
32
33
  Template: <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/lib/generators/rails_pdf/templates/simple_invoice/invoice.pug.erb">simple_invoice</a>
33
34
  </td>
34
35
  <td width="25%">
35
36
  <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_2.png">
36
37
  <img src="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_2_thumb.png?raw=true" />
37
- </a>
38
+ </a>
38
39
  Template: <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/lib/generators/rails_pdf/templates/basic_invoice/invoice.pug.erb">basic_invoice</a>
39
40
  </td>
40
41
  <td width="50%">
41
42
  <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_3c.png">
42
43
  <img src="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_3c_thumb.png?raw=true" />
43
- </a>
44
+ </a>
44
45
  Template: <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/lib/generators/rails_pdf/templates/chart1/chart.pug.erb">chart1</a>
45
46
  </td>
46
47
  </tr>
@@ -48,9 +49,9 @@ _If you want to contribute and add more templates - it' very easy to do. See #Te
48
49
  <td width="25%">
49
50
  <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_4.png">
50
51
  <img src="https://github.com/igorkasyanchuk/rails_pdf/blob/master/docs/report_4_thumb.png?raw=true" />
51
- </a>
52
+ </a>
52
53
  Template: <a href="https://github.com/igorkasyanchuk/rails_pdf/blob/master/lib/generators/rails_pdf/templates/products/index.pug.erb">products</a>
53
- </td>
54
+ </td>
54
55
  <td width="25%">
55
56
  </td>
56
57
  <td width="25%">
@@ -83,14 +84,24 @@ This is how you can generate and send PDF files on the fly:
83
84
  send_data(data, type: 'application/pdf', disposition: 'inline', filename: 'report.pdf')
84
85
  end
85
86
  end
86
-
87
+
87
88
  # or return file as attachment
88
-
89
+
89
90
  def invoice
90
91
  RailsPDF.template("report2/invoice.pug.erb").render do |data|
91
92
  send_data(data, type: 'application/pdf', disposition: 'attachment', filename: 'report.pdf')
92
93
  end
93
- end
94
+ end
95
+
96
+ # sample with locals
97
+ # works similar how regular partials works
98
+
99
+ def report
100
+ @invoice = Invoice.find(params[:id])
101
+ RailsPDF.template("report2/invoice.pug.erb").locals(invoice: @invoice).render do |data|
102
+ send_data(data, type: 'application/pdf', disposition: 'inline', filename: 'report.pdf')
103
+ end
104
+ end
94
105
  ```
95
106
 
96
107
  If you need to create PDF file and save to file on drive:
@@ -137,9 +148,11 @@ Installation of gem is very simple, it's just requires one additional step to in
137
148
 
138
149
  #### Install RelaxedJS
139
150
 
140
- >git clone https://github.com/RelaxedJS/ReLaXed.git .
141
- >npm install
142
- >sudo npm link --unsafe-perm=true
151
+ ```bash
152
+ $ git clone https://github.com/RelaxedJS/ReLaXed.git .
153
+ $ npm install
154
+ $ sudo npm link --unsafe-perm=true
155
+ ```
143
156
 
144
157
  Verify it's installed with: `relaxed --version`.
145
158
 
@@ -166,7 +179,7 @@ $ bundle
166
179
  // A4
167
180
  $page-width: 8.27in;
168
181
  $page-height: 11.69in;
169
- ```
182
+ ```
170
183
  - if you want to add header/footer (sample: lib/generators/rails_pdf/templates/simple_invoice/invoice.pug.erb)
171
184
  ```pug
172
185
  h1 My document
@@ -184,8 +197,8 @@ $ bundle
184
197
  ## Development
185
198
 
186
199
  - open `test/dummy`
187
- - rake db:migrate
188
- - `rails s -b 0.0.0.0`
200
+ - `bundle exec rake db:migrate`
201
+ - `bundle exec rails s -b 0.0.0.0`
189
202
  - open `localhost:3000/report.pdf`
190
203
  - modify templates in app/pdf
191
204
 
@@ -222,6 +235,10 @@ Before deploy app to production please don't forget to install Relaxed.JS on it.
222
235
 
223
236
  You are welcome to contribute.
224
237
 
238
+ ## Contributors
239
+
240
+ * https://github.com/gambala
241
+
225
242
  ## License
226
243
 
227
244
  The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
@@ -12,10 +12,17 @@ module RailsPDF
12
12
  self
13
13
  end
14
14
 
15
+ def locals(locals)
16
+ @locals = locals
17
+ self
18
+ end
19
+
15
20
  def render(&block)
16
21
  controller = ActionController::Base.new
17
22
  view = ActionView::Base.new(ActionController::Base.view_paths, {}, controller)
18
- content = view.render(file: @file, layout: @layout)
23
+ params = { file: @file, layout: @layout }
24
+ params = params.merge(locals: @locals) if @locals.present?
25
+ content = view.render(params)
19
26
 
20
27
  logger.debug "RailsPDF ====="
21
28
  logger.debug "RailsPDF content:\n#{content}"
@@ -1,3 +1,3 @@
1
1
  module RailsPDF
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Kasyanchuk
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-05-27 00:00:00.000000000 Z
11
+ date: 2019-08-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -122,8 +122,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
122
  - !ruby/object:Gem::Version
123
123
  version: '0'
124
124
  requirements: []
125
- rubyforge_project:
126
- rubygems_version: 2.7.7
125
+ rubygems_version: 3.0.2
127
126
  signing_key:
128
127
  specification_version: 4
129
128
  summary: Reliable way to generate PDF files of any complexity.