papercraft 1.1 → 1.3
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 +4 -4
- data/CHANGELOG.md +9 -0
- data/README.md +33 -1
- data/lib/papercraft/compiler.rb +205 -370
- data/lib/papercraft/compiler_old.rb +701 -0
- data/lib/papercraft/extension_proxy.rb +0 -2
- data/lib/papercraft/extensions/soap.rb +0 -4
- data/lib/papercraft/html.rb +12 -11
- data/lib/papercraft/json.rb +8 -8
- data/lib/papercraft/renderer.rb +30 -2
- data/lib/papercraft/tags.rb +48 -48
- data/lib/papercraft/template.rb +32 -6
- data/lib/papercraft/version.rb +1 -1
- data/lib/papercraft/xml.rb +1 -1
- data/lib/papercraft.rb +2 -2
- metadata +33 -18
@@ -6,7 +6,6 @@ module Papercraft
|
|
6
6
|
# Emits a SOAP XML tag that identifies the XML document as a SOAP message.
|
7
7
|
#
|
8
8
|
# @param **props [Hash] tag attributes
|
9
|
-
# @param &block [Proc] optional inner XML
|
10
9
|
# @return [void]
|
11
10
|
def Envelope(**props, &block)
|
12
11
|
props[:xmlns__soap] ||= 'http://schemas.xmlsoap.org/soap/envelope/'
|
@@ -16,7 +15,6 @@ module Papercraft
|
|
16
15
|
# Emits a SOAP XML tag that contains header information.
|
17
16
|
#
|
18
17
|
# @param **props [Hash] tag attributes
|
19
|
-
# @param &block [Proc] optional inner XML
|
20
18
|
# @return [void]
|
21
19
|
def Header(**props, &blk)
|
22
20
|
tag('soap:Header', **props, &blk)
|
@@ -25,7 +23,6 @@ module Papercraft
|
|
25
23
|
# Emits a SOAP XML tag that contains header information.
|
26
24
|
#
|
27
25
|
# @param **props [Hash] tag attributes
|
28
|
-
# @param &block [Proc] optional inner XML
|
29
26
|
# @return [void]
|
30
27
|
def Body(**props, &blk)
|
31
28
|
tag('soap:Body', **props, &blk)
|
@@ -34,7 +31,6 @@ module Papercraft
|
|
34
31
|
# Emits a SOAP XML tag that contains errors and status information.
|
35
32
|
#
|
36
33
|
# @param **props [Hash] tag attributes
|
37
|
-
# @param &block [Proc] optional inner XML
|
38
34
|
# @return [void]
|
39
35
|
def Fault(**props, &blk)
|
40
36
|
tag('soap:Fault', **props, &blk)
|
data/lib/papercraft/html.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative './tags'
|
4
|
+
require 'cgi'
|
4
5
|
|
5
6
|
module Papercraft
|
6
7
|
# HTML Markup extensions
|
@@ -10,11 +11,11 @@ module Papercraft
|
|
10
11
|
# Emits the p tag (overrides Object#p)
|
11
12
|
#
|
12
13
|
# @param text [String] text content of tag
|
13
|
-
# @param
|
14
|
+
# @param **attributes [Hash] tag attributes
|
14
15
|
# @para block [Proc] nested HTML block
|
15
16
|
# @return [void]
|
16
|
-
def p(text = nil, **
|
17
|
-
method_missing(:p, text, **
|
17
|
+
def p(text = nil, **attributes, &block)
|
18
|
+
method_missing(:p, text, **attributes, &block)
|
18
19
|
end
|
19
20
|
|
20
21
|
S_HTML5_DOCTYPE = '<!DOCTYPE html>'
|
@@ -47,11 +48,11 @@ module Papercraft
|
|
47
48
|
# Emits an inline CSS style element.
|
48
49
|
#
|
49
50
|
# @param css [String] CSS code
|
50
|
-
# @param **
|
51
|
+
# @param **attributes [Hash] optional element attributes
|
51
52
|
# @return [void]
|
52
|
-
def style(css, **
|
53
|
+
def style(css, **attributes, &block)
|
53
54
|
@buffer << '<style'
|
54
|
-
|
55
|
+
emit_attributes(attributes) unless attributes.empty?
|
55
56
|
|
56
57
|
@buffer << '>' << css << '</style>'
|
57
58
|
end
|
@@ -59,11 +60,11 @@ module Papercraft
|
|
59
60
|
# Emits an inline JS script element.
|
60
61
|
#
|
61
62
|
# @param js [String, nil] Javascript code
|
62
|
-
# @param **
|
63
|
+
# @param **attributes [Hash] optional element attributes
|
63
64
|
# @return [void]
|
64
|
-
def script(js = nil, **
|
65
|
+
def script(js = nil, **attributes, &block)
|
65
66
|
@buffer << '<script'
|
66
|
-
|
67
|
+
emit_attributes(attributes) unless attributes.empty?
|
67
68
|
|
68
69
|
if js
|
69
70
|
@buffer << '>' << js << '</script>'
|
@@ -131,7 +132,7 @@ module Papercraft
|
|
131
132
|
# Returns true if the given tag is a void element, in order to render a self
|
132
133
|
# closing tag. See spec: https://html.spec.whatwg.org/multipage/syntax.html#void-elements.
|
133
134
|
#
|
134
|
-
# @param
|
135
|
+
# @param tag [String] tag
|
135
136
|
# @return [Bool] is it a void element
|
136
137
|
def is_void_element_tag?(tag)
|
137
138
|
case tag
|
@@ -148,7 +149,7 @@ module Papercraft
|
|
148
149
|
# @param text [String] text
|
149
150
|
# @return [String] escaped text
|
150
151
|
def escape_text(text)
|
151
|
-
|
152
|
+
CGI.escapeHTML(text.to_s)
|
152
153
|
end
|
153
154
|
|
154
155
|
# Converts a tag to its string representation. Underscores will be converted
|
data/lib/papercraft/json.rb
CHANGED
@@ -15,8 +15,12 @@ module Papercraft
|
|
15
15
|
# block is evaulated against a new object target, then added to the current
|
16
16
|
# array.
|
17
17
|
#
|
18
|
+
# Papercraft.json {
|
19
|
+
# item 'foo'
|
20
|
+
# item 'bar'
|
21
|
+
# }.render #=> "[\"foo\", \"bar\"]"
|
22
|
+
#
|
18
23
|
# @param value [Object] item
|
19
|
-
# @param &block [Proc] template block
|
20
24
|
# @return [void]
|
21
25
|
def item(value = nil, _for: nil, &block)
|
22
26
|
return _for.each { |*a| item(value) { block.(*a)} } if _for
|
@@ -34,7 +38,6 @@ module Papercraft
|
|
34
38
|
#
|
35
39
|
# @param key [Object] key
|
36
40
|
# @param value [Object] value
|
37
|
-
# @param &block [Proc] template block
|
38
41
|
# @return [void]
|
39
42
|
def kv(key, value = nil, &block)
|
40
43
|
verify_hash_target
|
@@ -47,12 +50,11 @@ module Papercraft
|
|
47
50
|
# Intercepts method calls by adding key-value pairs to the current object
|
48
51
|
# target.
|
49
52
|
#
|
50
|
-
# @param key [
|
53
|
+
# @param key [Symbol] key
|
51
54
|
# @param value [Object] value
|
52
|
-
# @param &block [Proc] template block
|
53
55
|
# @return [void]
|
54
|
-
def method_missing(
|
55
|
-
kv(
|
56
|
+
def method_missing(key, value = nil, &block)
|
57
|
+
kv(key, value, &block)
|
56
58
|
end
|
57
59
|
|
58
60
|
# Converts the root object target to JSON.
|
@@ -66,7 +68,6 @@ module Papercraft
|
|
66
68
|
|
67
69
|
# Adds a new entry to the object stack and evaluates the given block.
|
68
70
|
#
|
69
|
-
# @param &block [Proc] template block
|
70
71
|
# @return [void]
|
71
72
|
def with_object(&block)
|
72
73
|
@object_stack << nil
|
@@ -117,7 +118,6 @@ module Papercraft
|
|
117
118
|
# Adds a new object to the object stack, evaluates the given template block,
|
118
119
|
# then pops the object off the stack.
|
119
120
|
#
|
120
|
-
# @param &block [Proc] template block
|
121
121
|
# @return [void]
|
122
122
|
def enter_object(&block)
|
123
123
|
@object_stack << nil
|
data/lib/papercraft/renderer.rb
CHANGED
@@ -84,7 +84,8 @@ module Papercraft
|
|
84
84
|
# renderer's scope.
|
85
85
|
#
|
86
86
|
# @param &template [Proc] template block
|
87
|
-
def initialize(&template)
|
87
|
+
def initialize(render_fragment = nil, &template)
|
88
|
+
@render_fragment = render_fragment
|
88
89
|
instance_eval(&template)
|
89
90
|
end
|
90
91
|
|
@@ -119,7 +120,7 @@ module Papercraft
|
|
119
120
|
end
|
120
121
|
alias_method :e, :emit
|
121
122
|
|
122
|
-
# Emits a block supplied using
|
123
|
+
# Emits a block supplied using {Template#apply} or {Template#render}.
|
123
124
|
#
|
124
125
|
# div_wrap = Papercraft.html { |*args| div { emit_yield(*args) } }
|
125
126
|
# greeter = div_wrap.apply { |name| h1 "Hello, #{name}!" }
|
@@ -135,6 +136,33 @@ module Papercraft
|
|
135
136
|
instance_exec(*a, **b, &block)
|
136
137
|
end
|
137
138
|
|
139
|
+
# Defines a named template fragment. Template fragments allow rendering
|
140
|
+
# specific parts of the same template. A template fragment can be rendered
|
141
|
+
# using {Template#render_fragment}. See also
|
142
|
+
# {https://htmx.org/essays/template-fragments/ HTMX template fragments}.
|
143
|
+
#
|
144
|
+
# form = Papercraft.html {
|
145
|
+
# h1 'Hello'
|
146
|
+
# fragment(:buttons) {
|
147
|
+
# button 'OK'
|
148
|
+
# button 'Cancel'
|
149
|
+
# }
|
150
|
+
# }
|
151
|
+
# form.render_fragment(:buttons) #=> "<button>OK</button><button>Cancel</buttons>"
|
152
|
+
#
|
153
|
+
# @param name [Symbol, String] fragment name
|
154
|
+
# @return [void]
|
155
|
+
def fragment(name, &block)
|
156
|
+
raise Papercraft::Error, "Already in fragment" if @fragment
|
157
|
+
|
158
|
+
begin
|
159
|
+
@fragment = name
|
160
|
+
emit(block)
|
161
|
+
ensure
|
162
|
+
@fragment = nil
|
163
|
+
end
|
164
|
+
end
|
165
|
+
|
138
166
|
private
|
139
167
|
|
140
168
|
# Pushes the given block onto the emit_yield stack.
|
data/lib/papercraft/tags.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative './extension_proxy'
|
4
|
+
require 'escape_utils'
|
4
5
|
|
5
6
|
module Papercraft
|
6
7
|
# Markup (HTML/XML) extensions
|
@@ -22,16 +23,18 @@ module Papercraft
|
|
22
23
|
S_TAG_%<TAG>s_PRE = %<tag_pre>s
|
23
24
|
S_TAG_%<TAG>s_CLOSE = %<tag_close>s
|
24
25
|
|
25
|
-
def %<tag>s(text = nil, _for: nil, **
|
26
|
-
return
|
26
|
+
def %<tag>s(text = nil, _for: nil, **attributes, &block)
|
27
|
+
return if @render_fragment && @fragment != @render_fragment
|
27
28
|
|
28
|
-
|
29
|
-
|
29
|
+
return _for.each { |*a| %<tag>s(text, **attributes) { block.(*a)} } if _for
|
30
|
+
|
31
|
+
if text.is_a?(Hash) && attributes.empty?
|
32
|
+
attributes = text
|
30
33
|
text = nil
|
31
34
|
end
|
32
35
|
|
33
36
|
@buffer << S_TAG_%<TAG>s_PRE
|
34
|
-
|
37
|
+
emit_attributes(attributes) unless attributes.empty?
|
35
38
|
|
36
39
|
if block
|
37
40
|
@buffer << S_GT
|
@@ -54,16 +57,18 @@ module Papercraft
|
|
54
57
|
S_TAG_%<TAG>s_PRE = %<tag_pre>s
|
55
58
|
S_TAG_%<TAG>s_CLOSE = %<tag_close>s
|
56
59
|
|
57
|
-
def %<tag>s(text = nil, _for: nil, **
|
58
|
-
return
|
60
|
+
def %<tag>s(text = nil, _for: nil, **attributes, &block)
|
61
|
+
return if @render_fragment && @fragment != @render_fragment
|
62
|
+
|
63
|
+
return _for.each { |*a| %<tag>s(text, **attributes) { block.(*a)} } if _for
|
59
64
|
|
60
|
-
if text.is_a?(Hash) &&
|
61
|
-
|
65
|
+
if text.is_a?(Hash) && attributes.empty?
|
66
|
+
attributes = text
|
62
67
|
text = nil
|
63
68
|
end
|
64
69
|
|
65
70
|
@buffer << S_TAG_%<TAG>s_PRE
|
66
|
-
|
71
|
+
emit_attributes(attributes) unless attributes.empty?
|
67
72
|
|
68
73
|
if block
|
69
74
|
@buffer << S_GT
|
@@ -84,9 +89,9 @@ module Papercraft
|
|
84
89
|
INITIAL_BUFFER_CAPACITY = 8192
|
85
90
|
|
86
91
|
# Initializes a tag renderer.
|
87
|
-
def initialize(&template)
|
92
|
+
def initialize(render_fragment = nil, &template)
|
88
93
|
@buffer = String.new(capacity: INITIAL_BUFFER_CAPACITY)
|
89
|
-
super
|
94
|
+
super(render_fragment)
|
90
95
|
end
|
91
96
|
|
92
97
|
# Returns the rendered template.
|
@@ -134,7 +139,6 @@ module Papercraft
|
|
134
139
|
# h1 'content'
|
135
140
|
# }
|
136
141
|
#
|
137
|
-
# @param &block [Proc] Deferred block to be emitted
|
138
142
|
# @return [void]
|
139
143
|
def defer(&block)
|
140
144
|
if !@parts
|
@@ -160,21 +164,22 @@ module Papercraft
|
|
160
164
|
#
|
161
165
|
# @param sym [Symbol, String] XML tag
|
162
166
|
# @param text [String, nil] tag content
|
163
|
-
# @param **
|
164
|
-
# @param &block [Proc] optional inner XML
|
167
|
+
# @param **attributes [Hash] tag attributes
|
165
168
|
# @return [void]
|
166
|
-
def tag(sym, text = nil, _for: nil, **
|
167
|
-
return
|
169
|
+
def tag(sym, text = nil, _for: nil, **attributes, &block)
|
170
|
+
return if @render_fragment && @fragment != @render_fragment
|
171
|
+
|
172
|
+
return _for.each { |*a| tag(sym, text, **attributes) { block.(*a)} } if _for
|
168
173
|
|
169
|
-
if text.is_a?(Hash) &&
|
170
|
-
|
174
|
+
if text.is_a?(Hash) && attributes.empty?
|
175
|
+
attributes = text
|
171
176
|
text = nil
|
172
177
|
end
|
173
178
|
|
174
179
|
tag = tag_repr(sym)
|
175
180
|
|
176
181
|
@buffer << S_LT << tag
|
177
|
-
|
182
|
+
emit_attributes(attributes) unless attributes.empty?
|
178
183
|
|
179
184
|
if block
|
180
185
|
@buffer << S_GT
|
@@ -195,10 +200,9 @@ module Papercraft
|
|
195
200
|
|
196
201
|
# Catches undefined tag method call and handles it by defining the method.
|
197
202
|
#
|
198
|
-
# @param sym [Symbol]
|
203
|
+
# @param sym [Symbol] tag or component identifier
|
199
204
|
# @param args [Array] method arguments
|
200
205
|
# @param opts [Hash] named method arguments
|
201
|
-
# @param &block [Proc] block passed to method
|
202
206
|
# @return [void]
|
203
207
|
def method_missing(sym, *args, **opts, &block)
|
204
208
|
tag = sym.to_s
|
@@ -214,9 +218,12 @@ module Papercraft
|
|
214
218
|
# Emits text into the rendering buffer, escaping any special characters to
|
215
219
|
# the respective XML entities.
|
216
220
|
#
|
217
|
-
# @param data [String] text
|
221
|
+
# @param data [String, nil] text
|
218
222
|
# @return [void]
|
219
|
-
def text(data)
|
223
|
+
def text(data = nil)
|
224
|
+
return if !data
|
225
|
+
return if @render_fragment && @fragment != @render_fragment
|
226
|
+
|
220
227
|
@buffer << escape_text(data)
|
221
228
|
end
|
222
229
|
|
@@ -239,8 +246,8 @@ module Papercraft
|
|
239
246
|
# @param tag [Symbol, String] tag/method name
|
240
247
|
# @param block [Proc] method body
|
241
248
|
# @return [void]
|
242
|
-
def def_tag(
|
243
|
-
self.class.define_method(
|
249
|
+
def def_tag(tag, &block)
|
250
|
+
self.class.define_method(tag, &block)
|
244
251
|
end
|
245
252
|
|
246
253
|
alias_method :orig_extend, :extend
|
@@ -333,13 +340,14 @@ module Papercraft
|
|
333
340
|
# @param obj [Object] emitted object
|
334
341
|
# @return [void]
|
335
342
|
def emit_object(obj)
|
343
|
+
return if @render_fragment && @fragment != @render_fragment
|
344
|
+
|
336
345
|
@buffer << obj.to_s
|
337
346
|
end
|
338
347
|
|
339
348
|
# Renders a deferred proc by evaluating it, then adding the rendered result
|
340
349
|
# to the buffer.
|
341
350
|
#
|
342
|
-
# @param &block [Proc] deferred proc
|
343
351
|
# @return [void]
|
344
352
|
def render_deferred_proc(&block)
|
345
353
|
old_buffer = @buffer
|
@@ -379,30 +387,22 @@ module Papercraft
|
|
379
387
|
|
380
388
|
# Emits tag attributes into the rendering buffer.
|
381
389
|
#
|
382
|
-
# @param
|
390
|
+
# @param attributes [Hash] tag attributes
|
383
391
|
# @return [void]
|
384
|
-
def
|
385
|
-
|
386
|
-
case
|
387
|
-
when
|
388
|
-
@buffer << S_SPACE << k
|
389
|
-
|
392
|
+
def emit_attributes(attributes)
|
393
|
+
attributes.each do |k, v|
|
394
|
+
case v
|
395
|
+
when true
|
396
|
+
@buffer << S_SPACE << att_repr(k)
|
397
|
+
when false, nil
|
398
|
+
# emit nothing
|
390
399
|
else
|
391
|
-
|
392
|
-
|
393
|
-
|
394
|
-
when false, nil
|
395
|
-
# emit nothing
|
396
|
-
when Array
|
397
|
-
v = v.join(' ')
|
398
|
-
@buffer << S_SPACE << att_repr(k) <<
|
399
|
-
S_EQUAL_QUOTE << escape_text(v) << S_QUOTE
|
400
|
-
else
|
401
|
-
@buffer << S_SPACE << att_repr(k) <<
|
402
|
-
S_EQUAL_QUOTE << escape_text(v) << S_QUOTE
|
403
|
-
end
|
400
|
+
v = v.join(S_SPACE) if v.is_a?(Array)
|
401
|
+
@buffer << S_SPACE << att_repr(k) <<
|
402
|
+
S_EQUAL_QUOTE << escape_text(v) << S_QUOTE
|
404
403
|
end
|
405
|
-
|
404
|
+
end
|
406
405
|
end
|
406
|
+
|
407
407
|
end
|
408
408
|
end
|
data/lib/papercraft/template.rb
CHANGED
@@ -113,8 +113,9 @@ module Papercraft
|
|
113
113
|
# Renders the template with the given parameters and or block, and returns
|
114
114
|
# the string result.
|
115
115
|
#
|
116
|
-
# @param
|
117
|
-
# @
|
116
|
+
# @param *params [any] unnamed parameters
|
117
|
+
# @param **named_params [any] named parameters
|
118
|
+
# @return [String] rendered string
|
118
119
|
def render(*a, **b, &block)
|
119
120
|
template = self
|
120
121
|
Renderer.verify_proc_parameters(template, a, b)
|
@@ -124,6 +125,32 @@ module Papercraft
|
|
124
125
|
end.to_s
|
125
126
|
end
|
126
127
|
|
128
|
+
# Renders a template fragment. Any given parameters are passed to the
|
129
|
+
# template just like with {Template#render}. See also
|
130
|
+
# {https://htmx.org/essays/template-fragments/ HTMX template fragments}.
|
131
|
+
#
|
132
|
+
# form = Papercraft.html { |action|
|
133
|
+
# h1 'Hello'
|
134
|
+
# fragment(:buttons) {
|
135
|
+
# button action
|
136
|
+
# button 'Cancel'
|
137
|
+
# }
|
138
|
+
# }
|
139
|
+
# form.render_fragment(:buttons, 'foo') #=> "<button>foo</button><button>Cancel</buttons>"
|
140
|
+
#
|
141
|
+
# @param name [Symbol, String] fragment name
|
142
|
+
# @param *params [any] unnamed parameters
|
143
|
+
# @param **named_params [any] named parameters
|
144
|
+
# @return [String] rendered string
|
145
|
+
def render_fragment(name, *a, **b, &block)
|
146
|
+
template = self
|
147
|
+
Renderer.verify_proc_parameters(template, a, b)
|
148
|
+
renderer_class.new(name) do
|
149
|
+
push_emit_yield_block(block) if block
|
150
|
+
instance_exec(*a, **b, &template)
|
151
|
+
end.to_s
|
152
|
+
end
|
153
|
+
|
127
154
|
# Creates a new template, applying the given parameters and or block to the
|
128
155
|
# current one. Application is one of the principal methods of composing
|
129
156
|
# templates, particularly when passing inner templates as blocks:
|
@@ -140,7 +167,6 @@ module Papercraft
|
|
140
167
|
#
|
141
168
|
# @param *a [<any>] normal parameters
|
142
169
|
# @param **b [Hash] named parameters
|
143
|
-
# @param &block [Proc] inner block
|
144
170
|
# @return [Papercraft::Template] applied template
|
145
171
|
def apply(*a, **b, &block)
|
146
172
|
template = self
|
@@ -174,8 +200,8 @@ module Papercraft
|
|
174
200
|
@mime_type
|
175
201
|
end
|
176
202
|
|
177
|
-
|
178
|
-
|
179
|
-
|
203
|
+
def compile(*args)
|
204
|
+
Papercraft::Compiler.new.compile(self, *args)
|
205
|
+
end
|
180
206
|
end
|
181
207
|
end
|
data/lib/papercraft/version.rb
CHANGED
data/lib/papercraft/xml.rb
CHANGED
data/lib/papercraft.rb
CHANGED
@@ -6,7 +6,7 @@ require 'kramdown-parser-gfm'
|
|
6
6
|
|
7
7
|
require_relative 'papercraft/template'
|
8
8
|
require_relative 'papercraft/renderer'
|
9
|
-
|
9
|
+
require_relative 'papercraft/compiler'
|
10
10
|
|
11
11
|
|
12
12
|
# Papercraft is a composable templating library
|
@@ -79,7 +79,7 @@ module Papercraft
|
|
79
79
|
# default Kramdown options in order to change the rendering behaviour.
|
80
80
|
#
|
81
81
|
# @param markdown [String] Markdown
|
82
|
-
# @param
|
82
|
+
# @param opts [Hash] Kramdown option overrides
|
83
83
|
# @return [String] HTML
|
84
84
|
def markdown(markdown, **opts)
|
85
85
|
opts = default_kramdown_options.merge(opts)
|
metadata
CHANGED
@@ -1,57 +1,71 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: papercraft
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.3'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sharon Rosner
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-12-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: sirop
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.4'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.4'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: escape_utils
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
16
30
|
requirements:
|
17
31
|
- - "~>"
|
18
32
|
- !ruby/object:Gem::Version
|
19
|
-
version: 1.
|
33
|
+
version: 1.3.0
|
20
34
|
type: :runtime
|
21
35
|
prerelease: false
|
22
36
|
version_requirements: !ruby/object:Gem::Requirement
|
23
37
|
requirements:
|
24
38
|
- - "~>"
|
25
39
|
- !ruby/object:Gem::Version
|
26
|
-
version: 1.
|
40
|
+
version: 1.3.0
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: kramdown
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|
30
44
|
requirements:
|
31
45
|
- - "~>"
|
32
46
|
- !ruby/object:Gem::Version
|
33
|
-
version: 2.
|
47
|
+
version: 2.5.1
|
34
48
|
type: :runtime
|
35
49
|
prerelease: false
|
36
50
|
version_requirements: !ruby/object:Gem::Requirement
|
37
51
|
requirements:
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
|
-
version: 2.
|
54
|
+
version: 2.5.1
|
41
55
|
- !ruby/object:Gem::Dependency
|
42
56
|
name: rouge
|
43
57
|
requirement: !ruby/object:Gem::Requirement
|
44
58
|
requirements:
|
45
59
|
- - "~>"
|
46
60
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
61
|
+
version: 4.5.1
|
48
62
|
type: :runtime
|
49
63
|
prerelease: false
|
50
64
|
version_requirements: !ruby/object:Gem::Requirement
|
51
65
|
requirements:
|
52
66
|
- - "~>"
|
53
67
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
68
|
+
version: 4.5.1
|
55
69
|
- !ruby/object:Gem::Dependency
|
56
70
|
name: kramdown-parser-gfm
|
57
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +86,14 @@ dependencies:
|
|
72
86
|
requirements:
|
73
87
|
- - "~>"
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
89
|
+
version: 5.25.4
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
94
|
- - "~>"
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
96
|
+
version: 5.25.4
|
83
97
|
- !ruby/object:Gem::Dependency
|
84
98
|
name: benchmark-ips
|
85
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -114,15 +128,15 @@ dependencies:
|
|
114
128
|
requirements:
|
115
129
|
- - "~>"
|
116
130
|
- !ruby/object:Gem::Version
|
117
|
-
version: 2.
|
131
|
+
version: 2.2.0
|
118
132
|
type: :development
|
119
133
|
prerelease: false
|
120
134
|
version_requirements: !ruby/object:Gem::Requirement
|
121
135
|
requirements:
|
122
136
|
- - "~>"
|
123
137
|
- !ruby/object:Gem::Version
|
124
|
-
version: 2.
|
125
|
-
description:
|
138
|
+
version: 2.2.0
|
139
|
+
description:
|
126
140
|
email: sharon@noteflakes.com
|
127
141
|
executables: []
|
128
142
|
extensions: []
|
@@ -134,6 +148,7 @@ files:
|
|
134
148
|
- README.md
|
135
149
|
- lib/papercraft.rb
|
136
150
|
- lib/papercraft/compiler.rb
|
151
|
+
- lib/papercraft/compiler_old.rb
|
137
152
|
- lib/papercraft/extension_proxy.rb
|
138
153
|
- lib/papercraft/extensions/soap.rb
|
139
154
|
- lib/papercraft/html.rb
|
@@ -153,7 +168,7 @@ metadata:
|
|
153
168
|
documentation_uri: https://www.rubydoc.info/gems/papercraft
|
154
169
|
homepage_uri: https://github.com/digital-fabric/papercraft
|
155
170
|
changelog_uri: https://github.com/digital-fabric/papercraft/blob/master/CHANGELOG.md
|
156
|
-
post_install_message:
|
171
|
+
post_install_message:
|
157
172
|
rdoc_options:
|
158
173
|
- "--title"
|
159
174
|
- Papercraft
|
@@ -165,15 +180,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
165
180
|
requirements:
|
166
181
|
- - ">="
|
167
182
|
- !ruby/object:Gem::Version
|
168
|
-
version: '2
|
183
|
+
version: '3.2'
|
169
184
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
170
185
|
requirements:
|
171
186
|
- - ">="
|
172
187
|
- !ruby/object:Gem::Version
|
173
188
|
version: '0'
|
174
189
|
requirements: []
|
175
|
-
rubygems_version: 3.
|
176
|
-
signing_key:
|
190
|
+
rubygems_version: 3.5.16
|
191
|
+
signing_key:
|
177
192
|
specification_version: 4
|
178
193
|
summary: 'Papercraft: component-based HTML templating for Ruby'
|
179
194
|
test_files: []
|