papercraft 3.1.0 → 3.2.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ae9f80f18ef49a3766980675f5da9f841091f25cb42755d0f14b7672c473f410
4
- data.tar.gz: 91b85643852a00f65daa355d8b89fcf0038e370ccbfe6869686ad5a3e33011bc
3
+ metadata.gz: 2fbc68541f31501137d57fba620c650218b5c1e16940f40c8e87707f117ac9c1
4
+ data.tar.gz: 8edf1481f1fee51f0fd347eeb67d907fb40712716e5b6c1dac403973e7d453ef
5
5
  SHA512:
6
- metadata.gz: 27f79243f5d6dceb20f3bd5b049c37943715f1667d4b9a7fab1023b1c91c6ddac4052b2ba1a1142de3ed57600ed22faeab93604e291c1114b9302e0ca29e215b
7
- data.tar.gz: 8562e5ec48d3795da75c94a12c9f422ff0f42b09d4ed042626ee3210bcce570417a656bdb4c5ed86b1cced2c65bfb27418de52d3e35b818a8537f95e1771eae2
6
+ metadata.gz: 91377f2fa5778dc5d800f3ba7c130bf67feb0621d718cee4abed52d2d5e8d19dbde93069a84fbd289c10477079a37cb80318db39b8f9ae670818aee3e52cf678
7
+ data.tar.gz: 3ef5ebda7e979f25f719553b44ad7ad8bbc0d8e00dcbc50b3381f82b273961863b269def6d9f65251a7f46a3d820893aabd2a00223c6a8b6ff73007d454bf22f
data/CHANGELOG.md CHANGED
@@ -1,3 +1,7 @@
1
+ # 3.2.0 2025-10-28
2
+
3
+ - Restore Tilt integration (#22)
4
+
1
5
  # 3.1.0 2025-10-26
2
6
 
3
7
  - Restore Proc methods: to_html, to_xml, ast, apply
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Papercraft
4
- VERSION = '3.1.0'
4
+ VERSION = '3.2.0'
5
5
  end
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'papercraft'
4
+ require 'tilt'
5
+ require 'digest/sha1'
6
+
7
+ # Tilt.
8
+ module Tilt
9
+ # Papercraft templating engine for Tilt
10
+ class PapercraftTemplate < Template
11
+ module SiropExtension
12
+ # We override the Sirop get source in order to have access to the template
13
+ # source code when the template is compiled.
14
+ def get_source(fn)
15
+ return Tilt::PapercraftTemplate.file_load(fn) if fn.match(/@tilt\-/)
16
+
17
+ super
18
+ end
19
+ end
20
+ ::Sirop.singleton_class.prepend(SiropExtension)
21
+
22
+ # "File system" for storing template source code
23
+ @@file_store = {}
24
+ def self.file_save(fn, data) = @@file_store[fn] = data
25
+ def self.file_load(fn) = @@file_store[fn]
26
+
27
+ metadata[:mime_type] = 'text/html'
28
+
29
+ protected
30
+
31
+ def prepare
32
+ src = <<~RUBY
33
+ # frozen_string_literal: true
34
+ -> (scope:, locals:, block:) {
35
+ #{data}
36
+ }
37
+ RUBY
38
+ fn = "@tilt-#{Digest::SHA1.hexdigest(src)}"
39
+ PapercraftTemplate.file_save(fn, src)
40
+ @template = eval(src, binding, fn)
41
+ end
42
+
43
+ def evaluate(scope, locals, &block)
44
+ Papercraft.html(
45
+ @template, scope: scope, locals: locals, block: block
46
+ )
47
+ end
48
+ end
49
+
50
+ register(PapercraftTemplate, 'papercraft')
51
+ 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: 3.1.0
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sharon Rosner
@@ -121,6 +121,20 @@ dependencies:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
123
  version: 1.15.2
124
+ - !ruby/object:Gem::Dependency
125
+ name: tilt
126
+ requirement: !ruby/object:Gem::Requirement
127
+ requirements:
128
+ - - "~>"
129
+ - !ruby/object:Gem::Version
130
+ version: 2.6.1
131
+ type: :development
132
+ prerelease: false
133
+ version_requirements: !ruby/object:Gem::Requirement
134
+ requirements:
135
+ - - "~>"
136
+ - !ruby/object:Gem::Version
137
+ version: 2.6.1
124
138
  email: sharon@noteflakes.com
125
139
  executables: []
126
140
  extensions: []
@@ -138,6 +152,7 @@ files:
138
152
  - lib/papercraft/proc_ext.rb
139
153
  - lib/papercraft/template.rb
140
154
  - lib/papercraft/version.rb
155
+ - lib/tilt/papercraft.rb
141
156
  - papercraft.png
142
157
  homepage: http://github.com/digital-fabric/papercraft
143
158
  licenses: