papercraft 0.28 → 0.29

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: eccca55a3b242b80413bad0c851619062d66c1b68eaa9f2e4a13ca9e4beefddf
4
- data.tar.gz: a5cf234c36fe286a94d6607bc30e13a24568396f6fe78b2f0e22870618e97941
3
+ metadata.gz: 1ca707074311c909d6e2b4aa86748f1ffbd5b614d73fb78e85985d174b69e263
4
+ data.tar.gz: f53dc4fa5088472ccc805f50938f25539950446fe14e97facb2cc346722d13fe
5
5
  SHA512:
6
- metadata.gz: 003a30933c7d7557a346ce02bcc54169427389db2e488ee5516b68b9e99d74f2b5f0464db4e327c1c3064bc7cbfe0df9c4ef0df6322b61a467f14f30a83b415c
7
- data.tar.gz: cc8d7e819fdefc04a5ffb1966d707d6fb7e533bc0c8f6d3fc39191749c4733593850a4cb046648c010c2ae4daae6fbaa6980b806a1ab61d9746481dc63fd8ecf
6
+ metadata.gz: 0d216f2c8db4beed8c7fe184d3b8e0a13ba8af4684d4e46f5506f0b1eb6c3bfaa0ad76b7a5b1b6e28a8ba37a730545ca00139fd0bf35b74628d117c504fc1e9c
7
+ data.tar.gz: 27ac04cf8b75b5d6abda511513618fb6ef20417365ac7b45855d909323db3c536204f85d719a44e2374b095d955f4eb0c25901290990dab861c908fa4d73142e
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ ## 0.29 2023-03-11
2
+
3
+ - Add Tilt integration (#15)
4
+
1
5
  ## 0.28 2023-03-11
2
6
 
3
7
  - Add `HTML#import_map`, `HTML#js_module` methods
data/README.md CHANGED
@@ -66,6 +66,7 @@ hello.render('world')
66
66
  ## Table of Content
67
67
 
68
68
  - [Installing Papercraft](#installing-papercraft)
69
+ - [Using with Tilt](#using-with-tilt)
69
70
  - [Basic Usage](#basic-usage)
70
71
  - [Adding Tags](#adding-tags)
71
72
  - [Tag and Attribute Formatting](#tag-and-attribute-formatting)
@@ -126,6 +127,45 @@ Rendering a template is done using `#render`:
126
127
  html.render #=> "<div id="greeter"><p>Hello!</p></div>"
127
128
  ```
128
129
 
130
+ ## Using with Tilt
131
+
132
+ Papercraft templates can also be rendered using Tilt:
133
+
134
+ ```ruby
135
+ require 'tilt/papercraft'
136
+
137
+ # loading from a file (with a .papercraft extension)
138
+ template = Tilt.new('mytemplate.papercraft')
139
+ template.render
140
+
141
+ # defining a template inline:
142
+ template = Tilt['papercraft'].new { <<~RUBY
143
+ h1 'Hello'
144
+ RUBY
145
+ }
146
+ template.render
147
+ ```
148
+
149
+ When rendering using Tilt, the following local variables are available to the
150
+ template: `scope`, `locals` and `block`:
151
+
152
+ ```ruby
153
+ template = Tilt['papercraft'].new { <<~RUBY
154
+ title scope.title
155
+
156
+ h1 locals[:message]
157
+
158
+ emit block if block
159
+ RUBY
160
+ }
161
+
162
+ def title
163
+ 'foo'
164
+ end
165
+
166
+ template.render(self, message: 'bar') { p 'this is a paragraph' }
167
+ ```
168
+
129
169
  ## Adding Tags
130
170
 
131
171
  Tags are added using unqualified method calls, and can be nested using blocks:
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Papercraft
4
- VERSION = '0.28'
4
+ VERSION = '0.29'
5
5
  end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'papercraft'
4
+ require 'tilt'
5
+
6
+ # Tilt.
7
+ module Tilt
8
+ # Papercraft templating engine for Tilt
9
+ class PapercraftTemplate < Template
10
+ metadata[:mime_type] = 'text/html'
11
+
12
+ protected
13
+
14
+ def prepare
15
+ inner = eval("proc { |scope:, locals:, block:|\n#{data}\n}")
16
+ @template = Papercraft.html(&inner)
17
+ end
18
+
19
+ def evaluate(scope, locals, &block)
20
+ @template.render(scope: scope, locals: locals, block: block)
21
+ end
22
+ end
23
+
24
+ register(PapercraftTemplate, 'papercraft')
25
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: papercraft
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.28'
4
+ version: '0.29'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -114,14 +114,14 @@ dependencies:
114
114
  requirements:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
- version: 2.0.9
117
+ version: 2.1.0
118
118
  type: :development
119
119
  prerelease: false
120
120
  version_requirements: !ruby/object:Gem::Requirement
121
121
  requirements:
122
122
  - - "~>"
123
123
  - !ruby/object:Gem::Version
124
- version: 2.0.9
124
+ version: 2.1.0
125
125
  description:
126
126
  email: sharon@noteflakes.com
127
127
  executables: []
@@ -143,6 +143,7 @@ files:
143
143
  - lib/papercraft/template.rb
144
144
  - lib/papercraft/version.rb
145
145
  - lib/papercraft/xml.rb
146
+ - lib/tilt/papercraft.rb
146
147
  - papercraft.png
147
148
  homepage: http://github.com/digital-fabric/papercraft
148
149
  licenses: