erubi 1.8.0 → 1.9.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG +4 -0
- data/lib/erubi.rb +4 -4
- data/lib/erubi/capture_end.rb +1 -1
- data/test/test.rb +29 -23
- metadata +17 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '0929d05c25dcdf116a4629c9803bbf70e4abac132acec9d831a3492a5903c5c6'
|
4
|
+
data.tar.gz: d95fccdac8f5755b1137b4cd652be69f23db18729f972cd017b613e2e2b80426
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 54b160b258687a50dfc541b9f9c59fbbe3e8cff020432003b00e7cfa950c81d1a7ae0eef978c8e53b2c49c85995f40600395ffaccb578e1e07b303f5f7bb3298
|
7
|
+
data.tar.gz: 5d9a63e80b79f2afc48cdb42016ec937556dc62d98987fe0fa9d87e0bad7e744d8f710860f188e500bb0718ca0eb0d5779d6e65de7f2d3664833e86f1802e68d
|
data/CHANGELOG
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
=== 1.9.0 (2019-09-25)
|
2
|
+
|
3
|
+
* Change default :bufvar from 'String.new' to '::String.new' to work with BasicObject (jeremyevans)
|
4
|
+
|
1
5
|
=== 1.8.0 (2018-12-18)
|
2
6
|
|
3
7
|
* Support :yield_returns_buffer option in capture_end for always returning the (potentially modified) buffer in <%|= tags (evanleck) (#15)
|
data/lib/erubi.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Erubi
|
4
|
-
VERSION = '1.
|
4
|
+
VERSION = '1.9.0'
|
5
5
|
RANGE_ALL = 0..-1
|
6
6
|
|
7
7
|
if RUBY_VERSION >= '1.9'
|
@@ -51,9 +51,9 @@ module Erubi
|
|
51
51
|
|
52
52
|
# Initialize a new Erubi::Engine. Options:
|
53
53
|
# :bufval :: The value to use for the buffer variable, as a string.
|
54
|
-
# :bufvar :: The variable name to use for the buffer variable, as a string.
|
54
|
+
# :bufvar :: The variable name to use for the buffer variable, as a string (default '::String.new')
|
55
55
|
# :ensure :: Wrap the template in a begin/ensure block restoring the previous value of bufvar.
|
56
|
-
# :escapefunc :: The function to use for escaping, as a string (default: ::Erubi.h).
|
56
|
+
# :escapefunc :: The function to use for escaping, as a string (default: '::Erubi.h').
|
57
57
|
# :escape :: Whether to make <%= escape by default, and <%== not escape by default.
|
58
58
|
# :escape_html :: Same as :escape, with lower priority.
|
59
59
|
# :filename :: The filename for the template.
|
@@ -69,7 +69,7 @@ module Erubi
|
|
69
69
|
trim = properties[:trim] != false
|
70
70
|
@filename = properties[:filename]
|
71
71
|
@bufvar = bufvar = properties[:bufvar] || properties[:outvar] || "_buf"
|
72
|
-
bufval = properties[:bufval] || 'String.new'
|
72
|
+
bufval = properties[:bufval] || '::String.new'
|
73
73
|
regexp = properties[:regexp] || /<%(={1,2}|-|\#|%)?(.*?)([-=])?%>([ \t]*\r?\n)?/m
|
74
74
|
preamble = properties[:preamble] || "#{bufvar} = #{bufval};"
|
75
75
|
postamble = properties[:postamble] || "#{bufvar}.to_s\n"
|
data/lib/erubi/capture_end.rb
CHANGED
@@ -21,7 +21,7 @@ module Erubi
|
|
21
21
|
escape = properties.fetch(:escape){properties.fetch(:escape_html, false)}
|
22
22
|
@escape_capture = properties.fetch(:escape_capture, escape)
|
23
23
|
@yield_returns_buffer = properties.fetch(:yield_returns_buffer, false)
|
24
|
-
@bufval = properties[:bufval] ||= 'String.new'
|
24
|
+
@bufval = properties[:bufval] ||= '::String.new'
|
25
25
|
@bufstack = '__erubi_stack'
|
26
26
|
properties[:regexp] ||= /<%(\|?={1,2}|-|\#|%|\|)?(.*?)([-=])?%>([ \t]*\r?\n)?/m
|
27
27
|
super
|
data/test/test.rb
CHANGED
@@ -25,8 +25,8 @@ require 'erubi'
|
|
25
25
|
require 'erubi/capture_end'
|
26
26
|
|
27
27
|
ENV['MT_NO_PLUGINS'] = '1' # Work around stupid autoloading of plugins
|
28
|
-
|
29
|
-
require 'minitest/autorun'
|
28
|
+
gem 'minitest'
|
29
|
+
require 'minitest/global_expectations/autorun'
|
30
30
|
|
31
31
|
describe Erubi::Engine do
|
32
32
|
before do
|
@@ -94,7 +94,7 @@ describe Erubi::Engine do
|
|
94
94
|
</table>
|
95
95
|
<%== i+1 %>
|
96
96
|
END1
|
97
|
-
_buf = String.new; _buf << '<table>
|
97
|
+
_buf = ::String.new; _buf << '<table>
|
98
98
|
<tbody>
|
99
99
|
'; i = 0
|
100
100
|
list.each_with_index do |item, i|
|
@@ -142,7 +142,7 @@ b
|
|
142
142
|
<%# 3 %>//
|
143
143
|
c
|
144
144
|
END1
|
145
|
-
_buf = String.new; 1
|
145
|
+
_buf = ::String.new; 1
|
146
146
|
_buf << 'a
|
147
147
|
'; 2
|
148
148
|
_buf << 'b
|
@@ -201,7 +201,7 @@ END3
|
|
201
201
|
</table>
|
202
202
|
<%== i+1 %>
|
203
203
|
END1
|
204
|
-
begin; __original_outvar = @a if defined?(@a); @a = String.new; @a << '<table>
|
204
|
+
begin; __original_outvar = @a if defined?(@a); @a = ::String.new; @a << '<table>
|
205
205
|
<tbody>
|
206
206
|
'; i = 0
|
207
207
|
list.each_with_index do |item, i|
|
@@ -265,9 +265,9 @@ END3
|
|
265
265
|
</tbody>
|
266
266
|
</table>
|
267
267
|
END1
|
268
|
-
#{'__erubi = ::Erubi;' unless escape}@a = String.new; @a << '<table>
|
268
|
+
#{'__erubi = ::Erubi;' unless escape}@a = ::String.new; @a << '<table>
|
269
269
|
<tbody>
|
270
|
-
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = String.new; __erubi_stack.last << (( bar do @a << '
|
270
|
+
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = ::String.new; __erubi_stack.last << (( bar do @a << '
|
271
271
|
'; @a << ' <b>'; @a << #{!escape ? '__erubi' : '::Erubi'}.h(( '&' )); @a << '</b>
|
272
272
|
'; @a << ' '; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
273
273
|
'; @a << ' </tbody>
|
@@ -301,9 +301,9 @@ END3
|
|
301
301
|
</tbody>
|
302
302
|
</table>
|
303
303
|
END1
|
304
|
-
#{'__erubi = ::Erubi;' if escape}@a = String.new; @a << '<table>
|
304
|
+
#{'__erubi = ::Erubi;' if escape}@a = ::String.new; @a << '<table>
|
305
305
|
<tbody>
|
306
|
-
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( bar do @a << '
|
306
|
+
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = ::String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( bar do @a << '
|
307
307
|
'; @a << ' <b>'; @a << #{escape ? '__erubi' : '::Erubi'}.h(( '&' )); @a << '</b>
|
308
308
|
'; @a << ' '; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
309
309
|
'; @a << ' </tbody>
|
@@ -335,9 +335,9 @@ END3
|
|
335
335
|
</tbody>
|
336
336
|
</table>
|
337
337
|
END1
|
338
|
-
#{'__erubi = ::Erubi;' if escape}@a = String.new; @a << '<table>
|
338
|
+
#{'__erubi = ::Erubi;' if escape}@a = ::String.new; @a << '<table>
|
339
339
|
<tbody>
|
340
|
-
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( quux do |i| @a << '
|
340
|
+
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = ::String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( quux do |i| @a << '
|
341
341
|
'; @a << ' <b>'; @a << #{escape ? '__erubi' : '::Erubi'}.h(( "\#{i}&" )); @a << '</b>
|
342
342
|
'; @a << ' '; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
343
343
|
'; @a << ' </tbody>
|
@@ -374,11 +374,11 @@ END3
|
|
374
374
|
</tbody>
|
375
375
|
</table>
|
376
376
|
END1
|
377
|
-
#{'__erubi = ::Erubi;' if escape}@a = String.new; @a << '<table>
|
377
|
+
#{'__erubi = ::Erubi;' if escape}@a = ::String.new; @a << '<table>
|
378
378
|
<tbody>
|
379
|
-
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( bar do @a << '
|
379
|
+
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = ::String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( bar do @a << '
|
380
380
|
'; @a << ' <b>'; @a << #{escape ? '__erubi' : '::Erubi'}.h(( '&' )); @a << '</b>
|
381
|
-
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( baz do @a << 'e'; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
381
|
+
'; @a << ' ';begin; (__erubi_stack ||= []) << @a; @a = ::String.new; __erubi_stack.last << #{escape ? '__erubi' : '::Erubi'}.h(( baz do @a << 'e'; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
382
382
|
'; @a << ' '; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
383
383
|
'; @a << ' </tbody>
|
384
384
|
</table>
|
@@ -414,7 +414,7 @@ END3
|
|
414
414
|
</table>
|
415
415
|
END1
|
416
416
|
# frozen_string_literal: true
|
417
|
-
@_out_buf = String.new; @_out_buf << '<table>
|
417
|
+
@_out_buf = ::String.new; @_out_buf << '<table>
|
418
418
|
'; for item in @items
|
419
419
|
@_out_buf << ' <tr>
|
420
420
|
<td>'; @_out_buf << ( i+1 ).to_s; @_out_buf << '</td>
|
@@ -448,7 +448,7 @@ END3
|
|
448
448
|
<%% end %>
|
449
449
|
</table>
|
450
450
|
END1
|
451
|
-
_buf = String.new; _buf << '<table>
|
451
|
+
_buf = ::String.new; _buf << '<table>
|
452
452
|
'; _buf << '<% for item in @items %>
|
453
453
|
'; _buf << ' <tr>
|
454
454
|
<td>';; _buf << '</td>
|
@@ -488,7 +488,7 @@ END3
|
|
488
488
|
<% i %>
|
489
489
|
</table>
|
490
490
|
END1
|
491
|
-
_buf = String.new; _buf << '<table>
|
491
|
+
_buf = ::String.new; _buf << '<table>
|
492
492
|
'; _buf << ' '; for item in @items ; _buf << '
|
493
493
|
'; _buf << ' <tr>
|
494
494
|
<td>';
|
@@ -537,7 +537,7 @@ END3
|
|
537
537
|
</table>
|
538
538
|
<%== i+1 %>
|
539
539
|
END1
|
540
|
-
_buf = String.new; _buf << '<table>
|
540
|
+
_buf = ::String.new; _buf << '<table>
|
541
541
|
<tbody>
|
542
542
|
'; i = 0
|
543
543
|
list.each_with_index do |item, i|
|
@@ -581,7 +581,7 @@ END3
|
|
581
581
|
</tbody>
|
582
582
|
</table>
|
583
583
|
END1
|
584
|
-
__erubi = ::Erubi;_buf = String.new; _buf << '<table>
|
584
|
+
__erubi = ::Erubi;_buf = ::String.new; _buf << '<table>
|
585
585
|
<tbody>
|
586
586
|
'; i = 0
|
587
587
|
list.each_with_index do |item, i|
|
@@ -653,6 +653,12 @@ END3
|
|
653
653
|
Erubi::Engine.new('', :outvar=>'foo').bufvar.must_equal 'foo'
|
654
654
|
end
|
655
655
|
|
656
|
+
it "should work with BasicObject methods" do
|
657
|
+
c = Class.new(BasicObject)
|
658
|
+
c.class_eval("def a; #{Erubi::Engine.new('2').src} end")
|
659
|
+
c.new.a.must_equal '2'
|
660
|
+
end if defined?(BasicObject)
|
661
|
+
|
656
662
|
it "should return frozen object" do
|
657
663
|
Erubi::Engine.new('').frozen?.must_equal true
|
658
664
|
end
|
@@ -687,7 +693,7 @@ END3
|
|
687
693
|
Let's eat <%= item %>!
|
688
694
|
<% nil %><%| end %>
|
689
695
|
END1
|
690
|
-
@a = String.new;begin; (__erubi_stack ||= []) << @a; @a = String.new; __erubi_stack.last << (( bar do |item| @a << '
|
696
|
+
@a = ::String.new;begin; (__erubi_stack ||= []) << @a; @a = ::String.new; __erubi_stack.last << (( bar do |item| @a << '
|
691
697
|
'; @a << 'Let\\'s eat '; @a << ( item ).to_s; @a << '!
|
692
698
|
'; nil ; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
693
699
|
';
|
@@ -703,7 +709,7 @@ END3
|
|
703
709
|
Let's eat <%= item %>!
|
704
710
|
<% nil %><%| end %>
|
705
711
|
END1
|
706
|
-
@a = String.new;begin; (__erubi_stack ||= []) << @a; @a = String.new; __erubi_stack.last << (( bar do |item| @a << '
|
712
|
+
@a = ::String.new;begin; (__erubi_stack ||= []) << @a; @a = ::String.new; __erubi_stack.last << (( bar do |item| @a << '
|
707
713
|
'; @a << 'Let\\'s eat '; @a << ( item ).to_s; @a << '!
|
708
714
|
'; nil ; @a; end )).to_s; ensure; @a = __erubi_stack.pop; end; @a << '
|
709
715
|
';
|
@@ -736,7 +742,7 @@ Let's eat the tacos!
|
|
736
742
|
|
737
743
|
Delicious!
|
738
744
|
END1
|
739
|
-
_buf = String.new;begin; (__erubi_stack ||= []) << _buf; _buf = String.new; __erubi_stack.last << (( bar do _buf << '
|
745
|
+
_buf = ::String.new;begin; (__erubi_stack ||= []) << _buf; _buf = ::String.new; __erubi_stack.last << (( bar do _buf << '
|
740
746
|
'; _buf << 'Let\\'s eat the tacos!
|
741
747
|
'; _buf; end )).to_s; ensure; _buf = __erubi_stack.pop; end; _buf << '
|
742
748
|
'; _buf << '
|
@@ -758,7 +764,7 @@ Let's eat burgers!
|
|
758
764
|
|
759
765
|
Delicious!
|
760
766
|
END1
|
761
|
-
_buf = String.new;begin; (__erubi_stack ||= []) << _buf; _buf = String.new; __erubi_stack.last << (( bar(\"Don't eat the burgers!\") do _buf << '
|
767
|
+
_buf = ::String.new;begin; (__erubi_stack ||= []) << _buf; _buf = ::String.new; __erubi_stack.last << (( bar(\"Don't eat the burgers!\") do _buf << '
|
762
768
|
'; _buf << 'Let\\'s eat burgers!
|
763
769
|
'; _buf; end )).to_s; ensure; _buf = __erubi_stack.pop; end; _buf << '
|
764
770
|
'; _buf << '
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: erubi
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.9.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jeremy Evans
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2019-09-25 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: minitest
|
@@ -25,6 +25,20 @@ dependencies:
|
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: '0'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: minitest-global_expectations
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ">="
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0'
|
35
|
+
type: :development
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ">="
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0'
|
28
42
|
description: Erubi is a ERB template engine for ruby. It is a simplified fork of Erubis
|
29
43
|
email: code@jeremyevans.net
|
30
44
|
executables: []
|
@@ -67,8 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
67
81
|
- !ruby/object:Gem::Version
|
68
82
|
version: '0'
|
69
83
|
requirements: []
|
70
|
-
|
71
|
-
rubygems_version: 2.7.6
|
84
|
+
rubygems_version: 3.0.3
|
72
85
|
signing_key:
|
73
86
|
specification_version: 4
|
74
87
|
summary: Small ERB Implementation
|