debride-erb 1.0.1 → 1.0.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 4d4ebf45842d991313fc528425c0ef355fac5c0f
4
- data.tar.gz: 5ecc380d48d635109791a47acab3bfb0876ff612
2
+ SHA256:
3
+ metadata.gz: dd46dfcb2de9b65eb7fc8876f27df42e3d5659f4fdebfeee430efe93764245e6
4
+ data.tar.gz: 42cbce854d62e7e920fa88ae1b001a31746e20ab126d263546eb98fac497fb55
5
5
  SHA512:
6
- metadata.gz: 776bb16cffbdb6f6346b1e4696fe07ffc3da38a1bc2fca0912414abc01c03bde8063a17bb8350d0510aaae33fbd5e11caf6aa89dfd868897f6ae795ee894357b
7
- data.tar.gz: 41d636e2e6f54b8ef7ede2dc9389ec031436ae46b4b70f01e691dd0833a2174f7f70487c811db01ebac05158df0765a5df71399bbac55aeb22b4b84d8387d7fd
6
+ metadata.gz: 79c18ef184f56d1588b6e6c903c7b8c8c92877087941a8d688b45e474658843d1b373bcc767a012389877b9efe826d4fd62b289c475ce9d11879ff6e67e44bbb
7
+ data.tar.gz: 63d073ff622d55bcb8a50c98a85b6b864edbafe077e2ba2f63c36fff68d82c78cf18e5011a3ef4717725ef57942e52fed401d52c6cd55827aafcdc2b74095565
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1 @@
1
- G�0Bs�T1�"��n��M+>QO�? z(.DQ���+������AFҡ�Hz�����+D�w�̌1;`i�q&�#$ޑG �VXi0�`d�=Dƒ�f�w
2
- K2�n9�J�#s�W�'�*懁�ς��(]A����ȇ\'BÛY�����+cJ1:�I�┊��I��^Q@@��>$eV��l@�/������φ���`��)��LSZ*f�X����6��O�3\B�� ��.g�[��c�S��������
1
+ |�nn x�����p��C�9
data/History.rdoc CHANGED
@@ -1,3 +1,19 @@
1
+ === 1.0.3 / 2026-01-26
2
+
3
+ * 1 bug fix:
4
+
5
+ * Bump debride dependency to pick up prism version.
6
+
7
+ === 1.0.2 / 2023-05-02
8
+
9
+ * 1 major enhancement:
10
+
11
+ * Switched from erubis to to erubi.
12
+
13
+ * 1 minor enhancement:
14
+
15
+ * Brought in action_view hacks to enable block calls w/ <%= forms.
16
+
1
17
  === 1.0.1 / 2015-04-13
2
18
 
3
19
  * 1 bug fix:
@@ -9,4 +25,3 @@
9
25
  * 1 major enhancement
10
26
 
11
27
  * Birthday!
12
-
data/Manifest.txt CHANGED
@@ -4,5 +4,6 @@ Manifest.txt
4
4
  README.rdoc
5
5
  Rakefile
6
6
  lib/debride_erb.rb
7
+ test/block.erb
7
8
  test/file.erb
8
9
  test/test_debride_erb.rb
data/Rakefile CHANGED
@@ -12,8 +12,8 @@ Hoe.spec "debride-erb" do
12
12
 
13
13
  license "MIT"
14
14
 
15
- dependency "debride", "~> 1.2"
16
- dependency "erubis", "~> 2.7.0"
15
+ dependency "debride", "~> 1.15"
16
+ dependency "erubi", "~> 1.10"
17
17
  end
18
18
 
19
19
  # vim: syntax=ruby
data/lib/debride_erb.rb CHANGED
@@ -2,11 +2,11 @@
2
2
 
3
3
  require "debride"
4
4
  require "erb"
5
- require "erubis"
5
+ require "erubi"
6
6
 
7
7
  class Debride
8
8
  module Erb
9
- VERSION = "1.0.1"
9
+ VERSION = "1.0.3"
10
10
  end
11
11
 
12
12
  ##
@@ -16,32 +16,77 @@ class Debride
16
16
  def process_erb file
17
17
  erb = File.read file
18
18
 
19
- ruby = Erubis.new(erb).src
19
+ ruby = Erubi.new(erb).src
20
20
 
21
21
  begin
22
- RubyParser.new.process ruby, file
22
+ NotRubyParser.new.process ruby, file
23
23
  rescue => e
24
24
  warn ruby if option[:verbose]
25
25
  raise e
26
26
  end
27
27
  end
28
28
 
29
- class Erubis < ::Erubis::Eruby # :nodoc:
30
- BLOCK_EXPR = /\s+(do|\{)(\s*\|[^|]*\|)?\s*\Z/
29
+ # stolen (and munged) from lib/action_view/template/handlers/erb/erubi.rb
30
+ # this is also in the flay gem, update both!
31
+ class Erubi < ::Erubi::Engine
32
+ # :nodoc: all
33
+ def initialize(input, properties = {})
34
+ @newline_pending = 0
31
35
 
32
- def add_expr_literal(src, code)
33
- if code =~ BLOCK_EXPR
34
- src << '@output_buffer.append= ' << code
36
+ properties[:postamble] = "_buf.to_s"
37
+ properties[:bufvar] = "_buf"
38
+ properties[:freeze_template_literals] = false
39
+
40
+ super
41
+ end
42
+
43
+ def add_text(text)
44
+ return if text.empty?
45
+
46
+ if text == "\n"
47
+ @newline_pending += 1
35
48
  else
36
- src << '@output_buffer.append=(' << code << ');'
49
+ src << "_buf.safe_append='"
50
+ src << "\n" * @newline_pending if @newline_pending > 0
51
+ src << text.gsub(/['\\]/, '\\\\\&')
52
+ src << "';"
53
+
54
+ @newline_pending = 0
37
55
  end
38
56
  end
39
57
 
40
- def add_expr_escaped(src, code)
41
- if code =~ BLOCK_EXPR
42
- src << "@output_buffer.safe_append= " << code
58
+ BLOCK_EXPR = /\s*((\s+|\))do|\{)(\s*\|[^|]*\|)?\s*\Z/
59
+
60
+ def add_expression(indicator, code)
61
+ flush_newline_if_pending(src)
62
+
63
+ if (indicator == "==") || @escape
64
+ src << "_buf.safe_expr_append="
43
65
  else
44
- src << "@output_buffer.safe_append=(" << code << ");"
66
+ src << "_buf.append="
67
+ end
68
+
69
+ if BLOCK_EXPR.match?(code)
70
+ src << " " << code
71
+ else
72
+ src << "(" << code << ");"
73
+ end
74
+ end
75
+
76
+ def add_code(code)
77
+ flush_newline_if_pending(src)
78
+ super
79
+ end
80
+
81
+ def add_postamble(_)
82
+ flush_newline_if_pending(src)
83
+ super
84
+ end
85
+
86
+ def flush_newline_if_pending(src)
87
+ if @newline_pending > 0
88
+ src << "_buf.safe_append='#{"\n" * @newline_pending}';"
89
+ @newline_pending = 0
45
90
  end
46
91
  end
47
92
  end
data/test/block.erb ADDED
@@ -0,0 +1,5 @@
1
+ <%= block_call(1,
2
+ 2
3
+ ) do |f| %>
4
+ woot?
5
+ <% end %>
data/test/file.erb CHANGED
@@ -1 +1 @@
1
- woot
1
+ woot <%= 42 %>
@@ -4,12 +4,31 @@ require "debride_erb"
4
4
  module TestDebride; end
5
5
 
6
6
  class TestDebride::TestErb < Minitest::Test
7
+ make_my_diffs_pretty!
8
+
7
9
  def test_process_erb
8
10
  sexp = Debride.new.process_erb "test/file.erb"
9
11
 
10
12
  exp = s(:block,
11
- s(:lasgn, :_buf, s(:str, "")),
12
- s(:call, s(:lvar, :_buf), :<<, s(:str, "woot")),
13
+ s(:lasgn, :_buf, s(:call, s(:colon3, :String), :new)),
14
+ s(:attrasgn, s(:lvar, :_buf), :safe_append=, s(:str, "woot ")),
15
+ s(:attrasgn, s(:lvar, :_buf), :append=, s(:lit, 42)),
16
+ s(:attrasgn, s(:lvar, :_buf), :safe_append=, s(:str, "\n")),
17
+ s(:call, s(:lvar, :_buf), :to_s))
18
+
19
+ assert_equal exp, sexp
20
+ end
21
+
22
+ def test_process_block
23
+ sexp = Debride.new.process_erb "test/block.erb"
24
+
25
+ exp = s(:block,
26
+ s(:lasgn, :_buf, s(:call, s(:colon3, :String), :new)),
27
+ s(:attrasgn, s(:lvar, :_buf), :append=,
28
+ s(:iter,
29
+ s(:call, nil, :block_call, s(:lit, 1), s(:lit, 2)),
30
+ s(:args, :f),
31
+ s(:attrasgn, s(:lvar, :_buf), :safe_append=, s(:str, "\nwoot?\n")))),
13
32
  s(:call, s(:lvar, :_buf), :to_s))
14
33
 
15
34
  assert_equal exp, sexp
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,18 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debride-erb
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain:
11
10
  - |
12
11
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBAjANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
12
+ MIIDPjCCAiagAwIBAgIBCjANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
13
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTE0MDkxNzIzMDcwN1oXDTE1MDkxNzIzMDcwN1owRTETMBEGA1UE
14
+ GRYDY29tMB4XDTI2MDEwNzAxMDkxNFoXDTI3MDEwNzAxMDkxNFowRTETMBEGA1UE
16
15
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
16
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
17
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -21,86 +20,78 @@ cert_chain:
21
20
  GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
22
21
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
22
  gBEfoTEGr7Zii72cx+sCAwEAAaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAw
24
- HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBBQUAA4IB
25
- AQAFoDJRokCQdxFfOrmsKX41KOFlU/zjrbDVM9hgB/Ur999M6OXGSi8FitXNtMwY
26
- FVjsiAPeU7HaWVVcZkj6IhINelTkXsxgGz/qCzjHy3iUMuZWw36cS0fiWJ5rvH+e
27
- hD7uXxJSFuyf1riDGI1aeWbQ74WMwvNstOxLUMiV5a1fzBhlxPqb537ubDjq/M/h
28
- zPUFPVYeL5KjDHLCqI2FwIk2sEMOQgjpXHzl+3NlD2LUgUhHDMevmgVua0e2GT1B
29
- xJcC6UN6NHMOVMyAXsr2HR0gRRx4ofN1LoP2KhXzSr8UMvQYlwPmE0N5GQv1b5AO
30
- VpzF30vNaJK6ZT7xlIsIlwmH
23
+ HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
24
+ AQA/X8/PKTTc/IkYQEUL6XWtfK8fAfbuLJzmLcz6f2ZWrtBvPsYvqRuwI1bWUtil
25
+ 2ibJEfIuSIHX6BsUTX18+hlaIussf6EWq/YkE7e2BKmgQE42vSOZMce0kCEAPbx0
26
+ rQtqonfWTHQ8UbQ7GqCL3gDQ0QDD2B+HUlb4uaCZ2icxqa/eOtxMvHC2tj+h0xKY
27
+ xL84ipM5kr0bHGf9/MRZJWcw51urueNycBXu1Xh+pEN8qBmYsFRR4SIODLClybAO
28
+ 6cbm2PyPQgKNiqE4H+IQrDVHd9bJs1XgLElk3qoaJBWXc/5fy0J1imYb25UqmiHG
29
+ snGe1hrppvBRdcyEzvhfIPjI
31
30
  -----END CERTIFICATE-----
32
- date: 2015-04-13 00:00:00.000000000 Z
31
+ date: 1980-01-02 00:00:00.000000000 Z
33
32
  dependencies:
34
33
  - !ruby/object:Gem::Dependency
35
34
  name: debride
36
35
  requirement: !ruby/object:Gem::Requirement
37
36
  requirements:
38
- - - ~>
37
+ - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '1.2'
39
+ version: '1.15'
41
40
  type: :runtime
42
41
  prerelease: false
43
42
  version_requirements: !ruby/object:Gem::Requirement
44
43
  requirements:
45
- - - ~>
44
+ - - "~>"
46
45
  - !ruby/object:Gem::Version
47
- version: '1.2'
46
+ version: '1.15'
48
47
  - !ruby/object:Gem::Dependency
49
- name: erubis
48
+ name: erubi
50
49
  requirement: !ruby/object:Gem::Requirement
51
50
  requirements:
52
- - - ~>
51
+ - - "~>"
53
52
  - !ruby/object:Gem::Version
54
- version: 2.7.0
53
+ version: '1.10'
55
54
  type: :runtime
56
55
  prerelease: false
57
56
  version_requirements: !ruby/object:Gem::Requirement
58
57
  requirements:
59
- - - ~>
58
+ - - "~>"
60
59
  - !ruby/object:Gem::Version
61
- version: 2.7.0
62
- - !ruby/object:Gem::Dependency
63
- name: minitest
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - ~>
67
- - !ruby/object:Gem::Version
68
- version: '5.6'
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - ~>
74
- - !ruby/object:Gem::Version
75
- version: '5.6'
60
+ version: '1.10'
76
61
  - !ruby/object:Gem::Dependency
77
62
  name: rdoc
78
63
  requirement: !ruby/object:Gem::Requirement
79
64
  requirements:
80
- - - ~>
65
+ - - ">="
81
66
  - !ruby/object:Gem::Version
82
- version: '4.0'
67
+ version: '6.0'
68
+ - - "<"
69
+ - !ruby/object:Gem::Version
70
+ version: '8'
83
71
  type: :development
84
72
  prerelease: false
85
73
  version_requirements: !ruby/object:Gem::Requirement
86
74
  requirements:
87
- - - ~>
75
+ - - ">="
76
+ - !ruby/object:Gem::Version
77
+ version: '6.0'
78
+ - - "<"
88
79
  - !ruby/object:Gem::Version
89
- version: '4.0'
80
+ version: '8'
90
81
  - !ruby/object:Gem::Dependency
91
82
  name: hoe
92
83
  requirement: !ruby/object:Gem::Requirement
93
84
  requirements:
94
- - - ~>
85
+ - - "~>"
95
86
  - !ruby/object:Gem::Version
96
- version: '3.13'
87
+ version: '4.5'
97
88
  type: :development
98
89
  prerelease: false
99
90
  version_requirements: !ruby/object:Gem::Requirement
100
91
  requirements:
101
- - - ~>
92
+ - - "~>"
102
93
  - !ruby/object:Gem::Version
103
- version: '3.13'
94
+ version: '4.5'
104
95
  description: Extends debride to analyze erb files (erubis ala rails, actually).
105
96
  email:
106
97
  - ryand-ruby@zenspider.com
@@ -111,39 +102,37 @@ extra_rdoc_files:
111
102
  - Manifest.txt
112
103
  - README.rdoc
113
104
  files:
114
- - .autotest
115
- - .gemtest
105
+ - ".autotest"
116
106
  - History.rdoc
117
107
  - Manifest.txt
118
108
  - README.rdoc
119
109
  - Rakefile
120
110
  - lib/debride_erb.rb
111
+ - test/block.erb
121
112
  - test/file.erb
122
113
  - test/test_debride_erb.rb
123
114
  homepage: https://github.com/seattlerb/debride-erb
124
115
  licenses:
125
116
  - MIT
126
- metadata: {}
127
- post_install_message:
117
+ metadata:
118
+ homepage_uri: https://github.com/seattlerb/debride-erb
128
119
  rdoc_options:
129
- - --main
120
+ - "--main"
130
121
  - README.rdoc
131
122
  require_paths:
132
123
  - lib
133
124
  required_ruby_version: !ruby/object:Gem::Requirement
134
125
  requirements:
135
- - - '>='
126
+ - - ">="
136
127
  - !ruby/object:Gem::Version
137
128
  version: '0'
138
129
  required_rubygems_version: !ruby/object:Gem::Requirement
139
130
  requirements:
140
- - - '>='
131
+ - - ">="
141
132
  - !ruby/object:Gem::Version
142
133
  version: '0'
143
134
  requirements: []
144
- rubyforge_project:
145
- rubygems_version: 2.4.5
146
- signing_key:
135
+ rubygems_version: 3.7.2
147
136
  specification_version: 4
148
137
  summary: Extends debride to analyze erb files (erubis ala rails, actually).
149
138
  test_files: []
metadata.gz.sig CHANGED
Binary file
data/.gemtest DELETED
File without changes