rbexy 2.0.0.beta8 → 2.0.0.rc2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,255 @@
1
+ GIT
2
+ remote: https://github.com/rails/rails.git
3
+ revision: 54c73577690e1ec81a79472ba98e28bb3e18703f
4
+ branch: main
5
+ specs:
6
+ actioncable (7.1.0.alpha)
7
+ actionpack (= 7.1.0.alpha)
8
+ activesupport (= 7.1.0.alpha)
9
+ nio4r (~> 2.0)
10
+ websocket-driver (>= 0.6.1)
11
+ actionmailbox (7.1.0.alpha)
12
+ actionpack (= 7.1.0.alpha)
13
+ activejob (= 7.1.0.alpha)
14
+ activerecord (= 7.1.0.alpha)
15
+ activestorage (= 7.1.0.alpha)
16
+ activesupport (= 7.1.0.alpha)
17
+ mail (>= 2.7.1)
18
+ net-imap
19
+ net-pop
20
+ net-smtp
21
+ actionmailer (7.1.0.alpha)
22
+ actionpack (= 7.1.0.alpha)
23
+ actionview (= 7.1.0.alpha)
24
+ activejob (= 7.1.0.alpha)
25
+ activesupport (= 7.1.0.alpha)
26
+ mail (~> 2.5, >= 2.5.4)
27
+ net-imap
28
+ net-pop
29
+ net-smtp
30
+ rails-dom-testing (~> 2.0)
31
+ actionpack (7.1.0.alpha)
32
+ actionview (= 7.1.0.alpha)
33
+ activesupport (= 7.1.0.alpha)
34
+ rack (~> 2.0, >= 2.2.0)
35
+ rack-test (>= 0.6.3)
36
+ rails-dom-testing (~> 2.0)
37
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
38
+ actiontext (7.1.0.alpha)
39
+ actionpack (= 7.1.0.alpha)
40
+ activerecord (= 7.1.0.alpha)
41
+ activestorage (= 7.1.0.alpha)
42
+ activesupport (= 7.1.0.alpha)
43
+ globalid (>= 0.6.0)
44
+ nokogiri (>= 1.8.5)
45
+ actionview (7.1.0.alpha)
46
+ activesupport (= 7.1.0.alpha)
47
+ builder (~> 3.1)
48
+ erubi (~> 1.4)
49
+ rails-dom-testing (~> 2.0)
50
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
51
+ activejob (7.1.0.alpha)
52
+ activesupport (= 7.1.0.alpha)
53
+ globalid (>= 0.3.6)
54
+ activemodel (7.1.0.alpha)
55
+ activesupport (= 7.1.0.alpha)
56
+ activerecord (7.1.0.alpha)
57
+ activemodel (= 7.1.0.alpha)
58
+ activesupport (= 7.1.0.alpha)
59
+ activestorage (7.1.0.alpha)
60
+ actionpack (= 7.1.0.alpha)
61
+ activejob (= 7.1.0.alpha)
62
+ activerecord (= 7.1.0.alpha)
63
+ activesupport (= 7.1.0.alpha)
64
+ marcel (~> 1.0)
65
+ mini_mime (>= 1.1.0)
66
+ activesupport (7.1.0.alpha)
67
+ concurrent-ruby (~> 1.0, >= 1.0.2)
68
+ i18n (>= 1.6, < 2)
69
+ minitest (>= 5.1)
70
+ tzinfo (~> 2.0)
71
+ rails (7.1.0.alpha)
72
+ actioncable (= 7.1.0.alpha)
73
+ actionmailbox (= 7.1.0.alpha)
74
+ actionmailer (= 7.1.0.alpha)
75
+ actionpack (= 7.1.0.alpha)
76
+ actiontext (= 7.1.0.alpha)
77
+ actionview (= 7.1.0.alpha)
78
+ activejob (= 7.1.0.alpha)
79
+ activemodel (= 7.1.0.alpha)
80
+ activerecord (= 7.1.0.alpha)
81
+ activestorage (= 7.1.0.alpha)
82
+ activesupport (= 7.1.0.alpha)
83
+ bundler (>= 1.15.0)
84
+ railties (= 7.1.0.alpha)
85
+ railties (7.1.0.alpha)
86
+ actionpack (= 7.1.0.alpha)
87
+ activesupport (= 7.1.0.alpha)
88
+ method_source
89
+ rake (>= 12.2)
90
+ thor (~> 1.0)
91
+ zeitwerk (~> 2.5)
92
+
93
+ PATH
94
+ remote: ..
95
+ specs:
96
+ rbexy (2.0.0.rc2)
97
+ actionview (>= 6, < 7.1)
98
+ activesupport (>= 6, < 7.1)
99
+
100
+ GEM
101
+ remote: https://rubygems.org/
102
+ specs:
103
+ appraisal (2.4.1)
104
+ bundler
105
+ rake
106
+ thor (>= 0.14.0)
107
+ builder (3.2.4)
108
+ byebug (11.1.3)
109
+ coderay (1.1.3)
110
+ concurrent-ruby (1.1.9)
111
+ crass (1.0.6)
112
+ diff-lcs (1.5.0)
113
+ digest (3.1.0)
114
+ erubi (1.10.0)
115
+ ffi (1.15.5)
116
+ formatador (1.1.0)
117
+ globalid (1.0.0)
118
+ activesupport (>= 5.0)
119
+ guard (2.18.0)
120
+ formatador (>= 0.2.4)
121
+ listen (>= 2.7, < 4.0)
122
+ lumberjack (>= 1.0.12, < 2.0)
123
+ nenv (~> 0.1)
124
+ notiffany (~> 0.0)
125
+ pry (>= 0.13.0)
126
+ shellany (~> 0.0)
127
+ thor (>= 0.18.1)
128
+ guard-compat (1.2.1)
129
+ guard-rspec (4.7.3)
130
+ guard (~> 2.1)
131
+ guard-compat (~> 1.1)
132
+ rspec (>= 2.99.0, < 4.0)
133
+ i18n (1.10.0)
134
+ concurrent-ruby (~> 1.0)
135
+ io-wait (0.2.1)
136
+ listen (3.7.1)
137
+ rb-fsevent (~> 0.10, >= 0.10.3)
138
+ rb-inotify (~> 0.9, >= 0.9.10)
139
+ loofah (2.14.0)
140
+ crass (~> 1.0.2)
141
+ nokogiri (>= 1.5.9)
142
+ lumberjack (1.2.8)
143
+ mail (2.7.1)
144
+ mini_mime (>= 0.1.1)
145
+ marcel (1.0.2)
146
+ memory_profiler (0.9.14)
147
+ method_source (1.0.0)
148
+ mini_mime (1.1.2)
149
+ minitest (5.15.0)
150
+ nenv (0.3.0)
151
+ net-imap (0.2.3)
152
+ digest
153
+ net-protocol
154
+ strscan
155
+ net-pop (0.1.1)
156
+ digest
157
+ net-protocol
158
+ timeout
159
+ net-protocol (0.1.2)
160
+ io-wait
161
+ timeout
162
+ net-smtp (0.3.1)
163
+ digest
164
+ net-protocol
165
+ timeout
166
+ nio4r (2.5.8)
167
+ nokogiri (1.13.3-x86_64-linux)
168
+ racc (~> 1.4)
169
+ notiffany (0.1.3)
170
+ nenv (~> 0.1)
171
+ shellany (~> 0.0)
172
+ pry (0.13.1)
173
+ coderay (~> 1.1)
174
+ method_source (~> 1.0)
175
+ pry-byebug (3.9.0)
176
+ byebug (~> 11.0)
177
+ pry (~> 0.13.0)
178
+ puma (5.6.2)
179
+ nio4r (~> 2.0)
180
+ racc (1.6.0)
181
+ rack (2.2.3)
182
+ rack-test (1.1.0)
183
+ rack (>= 1.0, < 3)
184
+ rails-dom-testing (2.0.3)
185
+ activesupport (>= 4.2.0)
186
+ nokogiri (>= 1.6)
187
+ rails-html-sanitizer (1.4.2)
188
+ loofah (~> 2.3)
189
+ rake (13.0.6)
190
+ rb-fsevent (0.11.1)
191
+ rb-inotify (0.10.1)
192
+ ffi (~> 1.0)
193
+ rspec (3.11.0)
194
+ rspec-core (~> 3.11.0)
195
+ rspec-expectations (~> 3.11.0)
196
+ rspec-mocks (~> 3.11.0)
197
+ rspec-core (3.11.0)
198
+ rspec-support (~> 3.11.0)
199
+ rspec-expectations (3.11.0)
200
+ diff-lcs (>= 1.2.0, < 2.0)
201
+ rspec-support (~> 3.11.0)
202
+ rspec-html-matchers (0.9.4)
203
+ nokogiri (~> 1)
204
+ rspec (>= 3.0.0.a, < 4)
205
+ rspec-mocks (3.11.0)
206
+ diff-lcs (>= 1.2.0, < 2.0)
207
+ rspec-support (~> 3.11.0)
208
+ rspec-rails (4.1.2)
209
+ actionpack (>= 4.2)
210
+ activesupport (>= 4.2)
211
+ railties (>= 4.2)
212
+ rspec-core (~> 3.10)
213
+ rspec-expectations (~> 3.10)
214
+ rspec-mocks (~> 3.10)
215
+ rspec-support (~> 3.10)
216
+ rspec-support (3.11.0)
217
+ shellany (0.0.1)
218
+ sprockets (4.0.3)
219
+ concurrent-ruby (~> 1.0)
220
+ rack (> 1, < 3)
221
+ sprockets-rails (3.4.2)
222
+ actionpack (>= 5.2)
223
+ activesupport (>= 5.2)
224
+ sprockets (>= 3.0.0)
225
+ sqlite3 (1.4.2)
226
+ strscan (3.0.1)
227
+ thor (1.2.1)
228
+ timeout (0.2.0)
229
+ tzinfo (2.0.4)
230
+ concurrent-ruby (~> 1.0)
231
+ websocket-driver (0.7.5)
232
+ websocket-extensions (>= 0.1.0)
233
+ websocket-extensions (0.1.5)
234
+ zeitwerk (2.5.4)
235
+
236
+ PLATFORMS
237
+ x86_64-linux
238
+
239
+ DEPENDENCIES
240
+ appraisal (~> 2.2)
241
+ guard-rspec (~> 4.7, >= 4.7.3)
242
+ memory_profiler (~> 0.9.14)
243
+ pry-byebug
244
+ puma
245
+ rails!
246
+ rake
247
+ rbexy!
248
+ rspec (~> 3.9)
249
+ rspec-html-matchers (~> 0.9.3)
250
+ rspec-rails (~> 4.0, >= 4.0.1)
251
+ sprockets-rails (>= 2, < 4)
252
+ sqlite3
253
+
254
+ BUNDLED WITH
255
+ 2.2.3
@@ -9,6 +9,18 @@ module Rbexy
9
9
  def to_s
10
10
  self
11
11
  end
12
+
13
+ def split(*args)
14
+ super.map { |s| TemplatePath.new(s) }
15
+ end
16
+
17
+ def gsub(*args)
18
+ super.tap { |s| break TemplatePath.new(s) }
19
+ end
20
+
21
+ def from(*args)
22
+ super.tap { |s| break TemplatePath.new(s) }
23
+ end
12
24
  end
13
25
 
14
26
  class_attribute :component_file_location
@@ -78,8 +90,8 @@ module Rbexy
78
90
  raise error
79
91
  end
80
92
 
81
- def method_missing(meth, *args, &block)
82
- view_context.send(meth, *args, &block)
93
+ def method_missing(meth, *args, **kwargs, &block)
94
+ view_context.send(meth, *args, **kwargs, &block)
83
95
  end
84
96
 
85
97
  def respond_to_missing?(method_name, include_all)
@@ -17,6 +17,7 @@ module Rbexy
17
17
  @compile_context = context
18
18
  children.each { |c| c.inject_compile_context(context) } if respond_to?(:children)
19
19
  members.each { |c| c.inject_compile_context(context) } if respond_to?(:members)
20
+ value.inject_compile_context(context) if respond_to?(:value)
20
21
  end
21
22
 
22
23
  def transform!
@@ -24,6 +25,7 @@ module Rbexy
24
25
  ast_transformer.transform(self, compile_context)
25
26
  children.each(&:transform!) if respond_to?(:children)
26
27
  members.each(&:transform!) if respond_to?(:members)
28
+ value.transform! if respond_to?(:value)
27
29
  end
28
30
 
29
31
  private
@@ -1,7 +1,11 @@
1
1
  module Rbexy
2
2
  module Nodes
3
3
  class HTMLElement < AbstractElement
4
- KNOWN_VOID_ELEMENTS = ActionView::Helpers::TagHelper::TagBuilder::VOID_ELEMENTS.map(&:to_s).to_set
4
+ if ActionView.version >= Gem::Version.new("7.0.0")
5
+ KNOWN_VOID_ELEMENTS = ActionView::Helpers::TagHelper::TagBuilder::HTML_VOID_ELEMENTS.map(&:to_s).to_set
6
+ else
7
+ KNOWN_VOID_ELEMENTS = ActionView::Helpers::TagHelper::TagBuilder::VOID_ELEMENTS.map(&:to_s).to_set
8
+ end
5
9
 
6
10
  def precompile
7
11
  nodes = []
@@ -2,7 +2,7 @@ module Rbexy
2
2
  module Nodes
3
3
  module Util
4
4
  def self.escape_string(str)
5
- str.gsub('"', '\\"').gsub("'", "\\'")
5
+ str.gsub('"', '\\"').gsub("'", "\\\\'")
6
6
  end
7
7
  end
8
8
  end
@@ -10,9 +10,21 @@ module Rbexy
10
10
  slim: "/ %s"
11
11
  }
12
12
 
13
- # Rails 6 requires us to override `_find_all` in order to hook
14
- def _find_all(name, prefix, partial, details, key, locals)
15
- find_templates(name, prefix, partial, details, locals)
13
+ # Rails 6 and 7 require us to override `_find_all` in order to hook
14
+ if ActionView.version >= Gem::Version.new("7.0.0")
15
+ # Rails 7 implements caching internally to _find_all
16
+ def _find_all(name, prefix, partial, details, key, locals)
17
+ cache = key ? @unbound_templates : Concurrent::Map.new
18
+
19
+ cache.compute_if_absent(ActionView::TemplatePath.virtual(name, prefix, partial)) do
20
+ find_templates(name, prefix, partial, details, locals)
21
+ end
22
+ end
23
+ else
24
+ # Rails 6 implements caching at the call-site (find_all)
25
+ def _find_all(name, prefix, partial, details, key, locals)
26
+ find_templates(name, prefix, partial, details, locals)
27
+ end
16
28
  end
17
29
 
18
30
  # Rails 5 only requires `find_templates` (which tbh is the proper way
data/lib/rbexy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Rbexy
2
- VERSION = "2.0.0.beta8"
2
+ VERSION = "2.0.0.rc2"
3
3
  end
data/lib/rbexy.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require "rbexy/version"
2
2
  require "active_support/inflector"
3
3
  require "active_support/concern"
4
+ require "active_support/core_ext/enumerable"
4
5
  require "action_view/helpers/output_safety_helper"
5
6
  require "action_view/helpers/capture_helper"
6
7
  require "action_view/helpers/tag_helper"
data/rbexy.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.summary = "A Ruby template language inspired by JSX"
10
10
  spec.homepage = "https://github.com/patbenatar/rbexy"
11
11
  spec.license = "MIT"
12
- spec.required_ruby_version = Gem::Requirement.new(">= 2.3.0")
12
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.7.0")
13
13
 
14
14
  spec.metadata["allowed_push_host"] = "https://rubygems.org"
15
15
 
@@ -25,10 +25,12 @@ Gem::Specification.new do |spec|
25
25
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
26
26
  spec.require_paths = ["lib"]
27
27
 
28
- spec.add_dependency "activesupport", ">= 6.0", "< 7.0"
29
- spec.add_dependency "actionview", ">= 6.0", "< 7.0"
28
+ spec.add_dependency "activesupport", ">= 6", "< 7.1"
29
+ spec.add_dependency "actionview", ">= 6", "< 7.1"
30
30
 
31
- spec.add_development_dependency "rails", ">= 6.0", "< 7.0"
31
+ spec.add_development_dependency "appraisal", "~> 2.2"
32
+ spec.add_development_dependency "rails", ">= 6", "< 7.1"
33
+ spec.add_development_dependency "sprockets-rails", ">= 2", "< 4"
32
34
  spec.add_development_dependency "rspec", "~> 3.9"
33
35
  spec.add_development_dependency "guard-rspec", "~> 4.7", ">= 4.7.3"
34
36
  spec.add_development_dependency "rspec-rails", "~> 4.0", ">= 4.0.1"
@@ -36,5 +38,6 @@ Gem::Specification.new do |spec|
36
38
  spec.add_development_dependency "rake"
37
39
  spec.add_development_dependency "pry-byebug"
38
40
  spec.add_development_dependency "sqlite3"
41
+ spec.add_development_dependency "puma"
39
42
  spec.add_development_dependency "memory_profiler", "~> 0.9.14"
40
43
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbexy
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.0.beta8
4
+ version: 2.0.0.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nick Giancola
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-01-23 00:00:00.000000000 Z
11
+ date: 2022-03-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -16,60 +16,94 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '6.0'
19
+ version: '6'
20
20
  - - "<"
21
21
  - !ruby/object:Gem::Version
22
- version: '7.0'
22
+ version: '7.1'
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
27
  - - ">="
28
28
  - !ruby/object:Gem::Version
29
- version: '6.0'
29
+ version: '6'
30
30
  - - "<"
31
31
  - !ruby/object:Gem::Version
32
- version: '7.0'
32
+ version: '7.1'
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: actionview
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - ">="
38
38
  - !ruby/object:Gem::Version
39
- version: '6.0'
39
+ version: '6'
40
40
  - - "<"
41
41
  - !ruby/object:Gem::Version
42
- version: '7.0'
42
+ version: '7.1'
43
43
  type: :runtime
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
47
  - - ">="
48
48
  - !ruby/object:Gem::Version
49
- version: '6.0'
49
+ version: '6'
50
50
  - - "<"
51
51
  - !ruby/object:Gem::Version
52
- version: '7.0'
52
+ version: '7.1'
53
+ - !ruby/object:Gem::Dependency
54
+ name: appraisal
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - "~>"
58
+ - !ruby/object:Gem::Version
59
+ version: '2.2'
60
+ type: :development
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - "~>"
65
+ - !ruby/object:Gem::Version
66
+ version: '2.2'
53
67
  - !ruby/object:Gem::Dependency
54
68
  name: rails
55
69
  requirement: !ruby/object:Gem::Requirement
56
70
  requirements:
57
71
  - - ">="
58
72
  - !ruby/object:Gem::Version
59
- version: '6.0'
73
+ version: '6'
60
74
  - - "<"
61
75
  - !ruby/object:Gem::Version
62
- version: '7.0'
76
+ version: '7.1'
63
77
  type: :development
64
78
  prerelease: false
65
79
  version_requirements: !ruby/object:Gem::Requirement
66
80
  requirements:
67
81
  - - ">="
68
82
  - !ruby/object:Gem::Version
69
- version: '6.0'
83
+ version: '6'
70
84
  - - "<"
71
85
  - !ruby/object:Gem::Version
72
- version: '7.0'
86
+ version: '7.1'
87
+ - !ruby/object:Gem::Dependency
88
+ name: sprockets-rails
89
+ requirement: !ruby/object:Gem::Requirement
90
+ requirements:
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: '2'
94
+ - - "<"
95
+ - !ruby/object:Gem::Version
96
+ version: '4'
97
+ type: :development
98
+ prerelease: false
99
+ version_requirements: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '2'
104
+ - - "<"
105
+ - !ruby/object:Gem::Version
106
+ version: '4'
73
107
  - !ruby/object:Gem::Dependency
74
108
  name: rspec
75
109
  requirement: !ruby/object:Gem::Requirement
@@ -180,6 +214,20 @@ dependencies:
180
214
  - - ">="
181
215
  - !ruby/object:Gem::Version
182
216
  version: '0'
217
+ - !ruby/object:Gem::Dependency
218
+ name: puma
219
+ requirement: !ruby/object:Gem::Requirement
220
+ requirements:
221
+ - - ">="
222
+ - !ruby/object:Gem::Version
223
+ version: '0'
224
+ type: :development
225
+ prerelease: false
226
+ version_requirements: !ruby/object:Gem::Requirement
227
+ requirements:
228
+ - - ">="
229
+ - !ruby/object:Gem::Version
230
+ version: '0'
183
231
  - !ruby/object:Gem::Dependency
184
232
  name: memory_profiler
185
233
  requirement: !ruby/object:Gem::Requirement
@@ -201,9 +249,11 @@ executables: []
201
249
  extensions: []
202
250
  extra_rdoc_files: []
203
251
  files:
252
+ - ".github/workflows/main.yml"
204
253
  - ".gitignore"
205
254
  - ".rspec"
206
255
  - ".travis.yml"
256
+ - Appraisals
207
257
  - CODE_OF_CONDUCT.md
208
258
  - Dockerfile
209
259
  - Gemfile
@@ -214,7 +264,15 @@ files:
214
264
  - Rakefile
215
265
  - bin/console
216
266
  - bin/setup
267
+ - bin/test
217
268
  - docker-compose.yml
269
+ - gemfiles/.bundle/config
270
+ - gemfiles/rails_6_1.gemfile
271
+ - gemfiles/rails_6_1.gemfile.lock
272
+ - gemfiles/rails_7_0.gemfile
273
+ - gemfiles/rails_7_0.gemfile.lock
274
+ - gemfiles/rails_master.gemfile
275
+ - gemfiles/rails_master.gemfile.lock
218
276
  - lib/rbexy.rb
219
277
  - lib/rbexy/ast_transformer.rb
220
278
  - lib/rbexy/cache_component.rb
@@ -270,14 +328,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
270
328
  requirements:
271
329
  - - ">="
272
330
  - !ruby/object:Gem::Version
273
- version: 2.3.0
331
+ version: 2.7.0
274
332
  required_rubygems_version: !ruby/object:Gem::Requirement
275
333
  requirements:
276
334
  - - ">"
277
335
  - !ruby/object:Gem::Version
278
336
  version: 1.3.1
279
337
  requirements: []
280
- rubygems_version: 3.1.2
338
+ rubygems_version: 3.3.7
281
339
  signing_key:
282
340
  specification_version: 4
283
341
  summary: A Ruby template language inspired by JSX