debride-erb 1.0.1 → 1.0.2

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
- SHA1:
3
- metadata.gz: 4d4ebf45842d991313fc528425c0ef355fac5c0f
4
- data.tar.gz: 5ecc380d48d635109791a47acab3bfb0876ff612
2
+ SHA256:
3
+ metadata.gz: 81c551fc516b4b0008e5ad8baa6fbbe97d82eefb884ffeea51cba53b1d6cb51f
4
+ data.tar.gz: 5f84aabef77af827bacb91b2f420a62db4909dacfb840ad9377b9458a6e945ad
5
5
  SHA512:
6
- metadata.gz: 776bb16cffbdb6f6346b1e4696fe07ffc3da38a1bc2fca0912414abc01c03bde8063a17bb8350d0510aaae33fbd5e11caf6aa89dfd868897f6ae795ee894357b
7
- data.tar.gz: 41d636e2e6f54b8ef7ede2dc9389ec031436ae46b4b70f01e691dd0833a2174f7f70487c811db01ebac05158df0765a5df71399bbac55aeb22b4b84d8387d7fd
6
+ metadata.gz: 296e8b21a2b7ada3f91435b2d93c9a173f1ae3037fd55b76d99620798a177e21affd2bcbcf2bed02456bc5146c89873209768ba7e7743a6535401bd20266a4ed
7
+ data.tar.gz: c449998879e46d947fd1df7a285aed79e43533d8a3d53f9317ef5a569123e6c6a04d08ffa0bc179db043aabaeb299f33d9f1f4877bcaaca3087d29a83faffacd
checksums.yaml.gz.sig CHANGED
Binary file
data/History.rdoc CHANGED
@@ -1,3 +1,13 @@
1
+ === 1.0.2 / 2023-05-02
2
+
3
+ * 1 major enhancement:
4
+
5
+ * Switched from erubis to to erubi.
6
+
7
+ * 1 minor enhancement:
8
+
9
+ * Brought in action_view hacks to enable block calls w/ <%= forms.
10
+
1
11
  === 1.0.1 / 2015-04-13
2
12
 
3
13
  * 1 bug fix:
@@ -9,4 +19,3 @@
9
19
  * 1 major enhancement
10
20
 
11
21
  * 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
@@ -13,7 +13,7 @@ Hoe.spec "debride-erb" do
13
13
  license "MIT"
14
14
 
15
15
  dependency "debride", "~> 1.2"
16
- dependency "erubis", "~> 2.7.0"
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.2"
10
10
  end
11
11
 
12
12
  ##
@@ -16,7 +16,7 @@ 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
22
  RubyParser.new.process ruby, file
@@ -26,22 +26,66 @@ class Debride
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
+ class Erubi < ::Erubi::Engine
31
+ # :nodoc: all
32
+ def initialize(input, properties = {})
33
+ @newline_pending = 0
31
34
 
32
- def add_expr_literal(src, code)
33
- if code =~ BLOCK_EXPR
34
- src << '@output_buffer.append= ' << code
35
+ properties[:postamble] = "_buf.to_s"
36
+ properties[:bufvar] = "_buf"
37
+ properties[:freeze_template_literals] = false
38
+
39
+ super
40
+ end
41
+
42
+ def add_text(text)
43
+ return if text.empty?
44
+
45
+ if text == "\n"
46
+ @newline_pending += 1
35
47
  else
36
- src << '@output_buffer.append=(' << code << ');'
48
+ src << "_buf.safe_append='"
49
+ src << "\n" * @newline_pending if @newline_pending > 0
50
+ src << text.gsub(/['\\]/, '\\\\\&')
51
+ src << "';"
52
+
53
+ @newline_pending = 0
37
54
  end
38
55
  end
39
56
 
40
- def add_expr_escaped(src, code)
41
- if code =~ BLOCK_EXPR
42
- src << "@output_buffer.safe_append= " << code
57
+ BLOCK_EXPR = /\s*((\s+|\))do|\{)(\s*\|[^|]*\|)?\s*\Z/
58
+
59
+ def add_expression(indicator, code)
60
+ flush_newline_if_pending(src)
61
+
62
+ if (indicator == "==") || @escape
63
+ src << "_buf.safe_expr_append="
43
64
  else
44
- src << "@output_buffer.safe_append=(" << code << ");"
65
+ src << "_buf.append="
66
+ end
67
+
68
+ if BLOCK_EXPR.match?(code)
69
+ src << " " << code
70
+ else
71
+ src << "(" << code << ");"
72
+ end
73
+ end
74
+
75
+ def add_code(code)
76
+ flush_newline_if_pending(src)
77
+ super
78
+ end
79
+
80
+ def add_postamble(_)
81
+ flush_newline_if_pending(src)
82
+ super
83
+ end
84
+
85
+ def flush_newline_if_pending(src)
86
+ if @newline_pending > 0
87
+ src << "_buf.safe_append='#{"\n" * @newline_pending}';"
88
+ @newline_pending = 0
45
89
  end
46
90
  end
47
91
  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,18 @@
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.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Davis
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain:
11
11
  - |
12
12
  -----BEGIN CERTIFICATE-----
13
- MIIDPjCCAiagAwIBAgIBAjANBgkqhkiG9w0BAQUFADBFMRMwEQYDVQQDDApyeWFu
13
+ MIIDPjCCAiagAwIBAgIBBzANBgkqhkiG9w0BAQsFADBFMRMwEQYDVQQDDApyeWFu
14
14
  ZC1ydWJ5MRkwFwYKCZImiZPyLGQBGRYJemVuc3BpZGVyMRMwEQYKCZImiZPyLGQB
15
- GRYDY29tMB4XDTE0MDkxNzIzMDcwN1oXDTE1MDkxNzIzMDcwN1owRTETMBEGA1UE
15
+ GRYDY29tMB4XDTIzMDEwMTA3NTExN1oXDTI0MDEwMTA3NTExN1owRTETMBEGA1UE
16
16
  AwwKcnlhbmQtcnVieTEZMBcGCgmSJomT8ixkARkWCXplbnNwaWRlcjETMBEGCgmS
17
17
  JomT8ixkARkWA2NvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALda
18
18
  b9DCgK+627gPJkB6XfjZ1itoOQvpqH1EXScSaba9/S2VF22VYQbXU1xQXL/WzCkx
@@ -21,86 +21,78 @@ cert_chain:
21
21
  GiadM9GHRaDiaxuX0cIUBj19T01mVE2iymf9I6bEsiayK/n6QujtyCbTWsAS9Rqt
22
22
  qhtV7HJxNKuPj/JFH0D2cswvzznE/a5FOYO68g+YCuFi5L8wZuuM8zzdwjrWHqSV
23
23
  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
24
+ HQYDVR0OBBYEFEfFe9md/r/tj/Wmwpy+MI8d9k/hMA0GCSqGSIb3DQEBCwUAA4IB
25
+ AQAkg3y+PBnBAPWdxxITm5sPHqdWQgSyCpRA20o4LTuWr8BWhSXBkfQNa7cY6fOn
26
+ xyM34VPzBFbExv6XOGDfOMFBVaYTHuN9peC/5/umL7kLl+nflXzL2QA7K6LYj5Bg
27
+ sM574Onr0dZDM6Vn69bzQ7rBIFDfK/OhlPzqKZad4nsdcsVH8ODCiT+ATMIZyz5K
28
+ WCnNtqlyiWXI8tdTpahDgcUwfcN/oN7v4K8iU5IbLJX6HQ5DKgmKjfb6XyMth16k
29
+ ROfWo9Uyp8ba/j9eVG14KkYRaLydAY1MNQk2yd3R5CGfeOpD1kttxjoypoUJ2dOG
30
+ nsNBRuQJ1UfiCG97a6DNm+Fr
31
31
  -----END CERTIFICATE-----
32
- date: 2015-04-13 00:00:00.000000000 Z
32
+ date: 2023-05-02 00:00:00.000000000 Z
33
33
  dependencies:
34
34
  - !ruby/object:Gem::Dependency
35
35
  name: debride
36
36
  requirement: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
40
  version: '1.2'
41
41
  type: :runtime
42
42
  prerelease: false
43
43
  version_requirements: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.2'
48
48
  - !ruby/object:Gem::Dependency
49
- name: erubis
49
+ name: erubi
50
50
  requirement: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: 2.7.0
54
+ version: '1.10'
55
55
  type: :runtime
56
56
  prerelease: false
57
57
  version_requirements: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !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'
61
+ version: '1.10'
76
62
  - !ruby/object:Gem::Dependency
77
63
  name: rdoc
78
64
  requirement: !ruby/object:Gem::Requirement
79
65
  requirements:
80
- - - ~>
66
+ - - ">="
81
67
  - !ruby/object:Gem::Version
82
68
  version: '4.0'
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: '7'
83
72
  type: :development
84
73
  prerelease: false
85
74
  version_requirements: !ruby/object:Gem::Requirement
86
75
  requirements:
87
- - - ~>
76
+ - - ">="
88
77
  - !ruby/object:Gem::Version
89
78
  version: '4.0'
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: '7'
90
82
  - !ruby/object:Gem::Dependency
91
83
  name: hoe
92
84
  requirement: !ruby/object:Gem::Requirement
93
85
  requirements:
94
- - - ~>
86
+ - - "~>"
95
87
  - !ruby/object:Gem::Version
96
- version: '3.13'
88
+ version: '4.0'
97
89
  type: :development
98
90
  prerelease: false
99
91
  version_requirements: !ruby/object:Gem::Requirement
100
92
  requirements:
101
- - - ~>
93
+ - - "~>"
102
94
  - !ruby/object:Gem::Version
103
- version: '3.13'
95
+ version: '4.0'
104
96
  description: Extends debride to analyze erb files (erubis ala rails, actually).
105
97
  email:
106
98
  - ryand-ruby@zenspider.com
@@ -111,39 +103,39 @@ extra_rdoc_files:
111
103
  - Manifest.txt
112
104
  - README.rdoc
113
105
  files:
114
- - .autotest
115
- - .gemtest
106
+ - ".autotest"
116
107
  - History.rdoc
117
108
  - Manifest.txt
118
109
  - README.rdoc
119
110
  - Rakefile
120
111
  - lib/debride_erb.rb
112
+ - test/block.erb
121
113
  - test/file.erb
122
114
  - test/test_debride_erb.rb
123
115
  homepage: https://github.com/seattlerb/debride-erb
124
116
  licenses:
125
117
  - MIT
126
- metadata: {}
127
- post_install_message:
118
+ metadata:
119
+ homepage_uri: https://github.com/seattlerb/debride-erb
120
+ post_install_message:
128
121
  rdoc_options:
129
- - --main
122
+ - "--main"
130
123
  - README.rdoc
131
124
  require_paths:
132
125
  - lib
133
126
  required_ruby_version: !ruby/object:Gem::Requirement
134
127
  requirements:
135
- - - '>='
128
+ - - ">="
136
129
  - !ruby/object:Gem::Version
137
130
  version: '0'
138
131
  required_rubygems_version: !ruby/object:Gem::Requirement
139
132
  requirements:
140
- - - '>='
133
+ - - ">="
141
134
  - !ruby/object:Gem::Version
142
135
  version: '0'
143
136
  requirements: []
144
- rubyforge_project:
145
- rubygems_version: 2.4.5
146
- signing_key:
137
+ rubygems_version: 3.4.10
138
+ signing_key:
147
139
  specification_version: 4
148
140
  summary: Extends debride to analyze erb files (erubis ala rails, actually).
149
141
  test_files: []
metadata.gz.sig CHANGED
Binary file
data/.gemtest DELETED
File without changes