rux-rails 1.2.2 → 1.4.0

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
2
  SHA256:
3
- metadata.gz: 71cd84c42747191f92518e982abfb2f631dc2d4238dfc377e58abdd168d9bf0a
4
- data.tar.gz: '098b4d8af3d352512a82143fae3ac3c8ac04b9d8f080906838017410c6d17324'
3
+ metadata.gz: 80c3381d7ae7854540067cd7267c5636961a7b30a538fad7c5fd063c5cb12a64
4
+ data.tar.gz: c4234d93e5b93109b612a5249f06b065cc53157999246cc04f12aea1bdc98cad
5
5
  SHA512:
6
- metadata.gz: b4a554cd0d719bbd78dc46d99aaaa801fedd83b10c8917242dae01f3e4bbe51f0aabe7f2f7eb626f25379fd0bbfce01e934c055ad98443a56d6f698af2210334
7
- data.tar.gz: 82e1d14c6083c55bdb653147e07fdf16f4416f000d4555c094ac7700fd98db0da989723d89adcee4df4e00524926f945004bce936cb84f7fcd1ab4c2734b976b
6
+ metadata.gz: 8b61ed880646e3a058c4bd525f6f7fe9e308fe066f40d76c53ea312a5c604874eb321405f9d41f3a026221df3a83b3049356c1146f897ca7c9c4cf96b5274443
7
+ data.tar.gz: 6aa7c072623ab565de33479b0428c096412377f9cf020c0c91751cf9b80e2f21fad1c2f8500a95b2b67dd5450a985ef8a5d0162ac72978d6cd1de04d706b64dc
data/CHANGELOG.md CHANGED
@@ -1,3 +1,10 @@
1
+ ## 1.4.0
2
+ * Make rux-rails safe to load in production.
3
+ - All the monkeypatches to `Kernel`, etc are now only loaded if `config.rux.transpile` is `true`.
4
+
5
+ ## 1.3.0
6
+ * Add support for view_component v3.0.
7
+
1
8
  ## 1.2.2
2
9
  * Fix calling private Zeitwerk method.
3
10
  * Check railties version in dummy app instead of rails.
data/Gemfile CHANGED
@@ -11,8 +11,12 @@ end
11
11
 
12
12
  group :development do
13
13
  gem 'appraisal'
14
+ gem 'benchmark-ips'
15
+ gem 'rails', '~> 7.0'
16
+ gem 'slim', '~> 5.0'
14
17
  end
15
18
 
16
19
  group :test do
17
20
  gem 'rspec-rails'
21
+ gem 'capybara', '~> 3.0'
18
22
  end
@@ -8,35 +8,37 @@ module RuxRails
8
8
  config.rux = ActiveSupport::OrderedOptions.new
9
9
 
10
10
  initializer 'rux-rails.initialize', before: :set_autoload_paths do |app|
11
- if Rails.respond_to?(:autoloaders) && Rails.autoloaders.zeitwerk_enabled?
12
- require 'rux-rails/core_ext/kernel_zeitwerk'
13
- require 'rux-rails/ext/zeitwerk/loader'
11
+ if config.rux.transpile.nil? && (Rails.env.development? || Rails.env.test?)
12
+ config.rux.transpile = true
13
+ end
14
+
15
+ RuxRails.transpile_on_load = -> () { config.rux.transpile }
14
16
 
15
- RuxRails.zeitwerk_mode = true
16
- else
17
- require 'rux-rails/core_ext/kernel'
18
- require 'rux-rails/ext/activesupport/dependencies'
17
+ if config.rux.transpile
18
+ if Rails.respond_to?(:autoloaders) && Rails.autoloaders.zeitwerk_enabled?
19
+ require 'rux-rails/core_ext/kernel_zeitwerk'
20
+ require 'rux-rails/ext/zeitwerk/loader'
19
21
 
20
- RuxRails.zeitwerk_mode = false
21
- end
22
+ RuxRails.zeitwerk_mode = true
23
+ else
24
+ require 'rux-rails/core_ext/kernel'
25
+ require 'rux-rails/ext/activesupport/dependencies'
26
+
27
+ RuxRails.zeitwerk_mode = false
28
+ end
22
29
 
23
- begin
24
- require 'bootsnap'
25
- rescue LoadError
26
- else
27
- require 'rux-rails/ext/bootsnap/autoload'
30
+ begin
31
+ require 'bootsnap'
32
+ rescue LoadError
33
+ else
34
+ require 'rux-rails/ext/bootsnap/autoload'
35
+ end
28
36
  end
29
37
 
30
38
  ActionView::Template.register_template_handler(
31
39
  :ruxt, RuxRails::TemplateHandler
32
40
  )
33
41
 
34
- if config.rux.transpile.nil? && (Rails.env.development? || Rails.env.test?)
35
- config.rux.transpile = true
36
- end
37
-
38
- RuxRails.transpile_on_load = -> () { config.rux.transpile }
39
-
40
42
  Rux.library_paths.each do |library_path|
41
43
  app.config.eager_load_paths << library_path
42
44
  app.config.autoload_paths << library_path
@@ -1,3 +1,3 @@
1
1
  module RuxRails
2
- VERSION = '1.2.2'
2
+ VERSION = '1.4.0'
3
3
  end
data/lib/rux-rails.rb CHANGED
@@ -28,6 +28,9 @@ end
28
28
 
29
29
  require 'rux'
30
30
  require 'rux-rails/railtie'
31
+
32
+ # require both of these to support multiple versions of view_component
33
+ require 'view_component'
31
34
  require 'view_component/engine'
32
35
 
33
36
  ViewComponent::Base.send(:include, RuxRails::Components)
data/rux-rails.gemspec CHANGED
@@ -12,7 +12,7 @@ Gem::Specification.new do |s|
12
12
 
13
13
  s.add_dependency 'rux', '~> 1.0'
14
14
  s.add_dependency 'railties', '>= 5.0'
15
- s.add_dependency 'view_component', '~> 2.0'
15
+ s.add_dependency 'view_component', '>= 2', '< 4'
16
16
 
17
17
  s.require_path = 'lib'
18
18
 
@@ -4,7 +4,11 @@ describe HomeController, type: :request do
4
4
  describe '#index' do
5
5
  it 'works' do
6
6
  get '/'
7
+
7
8
  expect(response).to have_http_status(:ok)
9
+ expect(response.body).to(
10
+ have_selector("div.container img[src='/images/cat.png'] + button", text: "Click Me!")
11
+ )
8
12
  end
9
13
  end
10
14
  end
@@ -2,13 +2,10 @@ class HomeComponent < ViewComponent::Base
2
2
  def call
3
3
  Rux.tag("div", { class: "container" }) {
4
4
  Rux.create_buffer.tap { |_rux_buf_|
5
- _rux_buf_ << " "
6
5
  _rux_buf_ << render(Image.new(src: "cat.png", size: "40"))
7
- _rux_buf_ << " "
8
6
  _rux_buf_ << render(Button.new(outline: true, disabled: "true", size: :large)) {
9
- " Click Me! "
7
+ "Click Me!"
10
8
  }
11
- _rux_buf_ << " "
12
9
  }.to_s
13
10
  }
14
11
  end
@@ -160,3 +160,60 @@ Processing by HomeController#index as HTML
160
160
  Rendered home/index.html.ruxt within layouts/application (Duration: 77.5ms | Allocations: 43481)
161
161
  Rendered layout layouts/application.html.erb (Duration: 78.0ms | Allocations: 43712)
162
162
  Completed 200 OK in 89ms (Views: 83.2ms | Allocations: 49251)
163
+ Started GET "/" for 127.0.0.1 at 2023-05-28 13:52:10 -0700
164
+ Processing by HomeController#index as HTML
165
+ Rendering layout layouts/application.html.erb
166
+ Rendering home/index.html.ruxt within layouts/application
167
+ Rendered home/index.html.ruxt within layouts/application (Duration: 76.5ms | Allocations: 42477)
168
+ Rendered layout layouts/application.html.erb (Duration: 77.6ms | Allocations: 42711)
169
+ Completed 200 OK in 90ms (Views: 82.8ms | Allocations: 49992)
170
+ Started GET "/" for 127.0.0.1 at 2023-05-28 13:52:23 -0700
171
+ Processing by HomeController#index as HTML
172
+ Rendering layout layouts/application.html.erb
173
+ Rendering home/index.html.ruxt within layouts/application
174
+ Rendered home/index.html.ruxt within layouts/application (Duration: 71.3ms | Allocations: 42478)
175
+ Rendered layout layouts/application.html.erb (Duration: 71.8ms | Allocations: 42712)
176
+ Completed 200 OK in 87ms (Views: 78.2ms | Allocations: 49993)
177
+ Started GET "/" for 127.0.0.1 at 2023-05-28 13:54:28 -0700
178
+ Processing by HomeController#index as HTML
179
+ Rendering layout layouts/application.html.erb
180
+ Rendering home/index.html.ruxt within layouts/application
181
+ Rendered home/index.html.ruxt within layouts/application (Duration: 61.9ms | Allocations: 42478)
182
+ Rendered layout layouts/application.html.erb (Duration: 62.3ms | Allocations: 42712)
183
+ Completed 200 OK in 73ms (Views: 67.1ms | Allocations: 49993)
184
+ Started GET "/" for 127.0.0.1 at 2023-05-28 13:58:00 -0700
185
+ Processing by HomeController#index as HTML
186
+ Rendering layout layouts/application.html.erb
187
+ Rendering home/index.html.ruxt within layouts/application
188
+ Rendered home/index.html.ruxt within layouts/application (Duration: 113.6ms | Allocations: 43896)
189
+ Rendered layout layouts/application.html.erb (Duration: 114.4ms | Allocations: 44131)
190
+ Completed 200 OK in 128ms (Views: 120.0ms | Allocations: 51788)
191
+ Started GET "/" for 127.0.0.1 at 2023-05-28 14:27:01 -0700
192
+ Processing by HomeController#index as HTML
193
+ Rendering home/index.html.ruxt within layouts/application
194
+ Rendered home/index.html.ruxt within layouts/application (95.1ms)
195
+ Completed 200 OK in 106ms (Views: 105.4ms)
196
+ Started GET "/" for 127.0.0.1 at 2023-06-07 20:52:52 -0700
197
+ Processing by HomeController#index as HTML
198
+ Rendering home/index.html.ruxt within layouts/application
199
+ Rendered home/index.html.ruxt within layouts/application (88.7ms)
200
+ Completed 200 OK in 100ms (Views: 98.6ms)
201
+ Started GET "/" for 127.0.0.1 at 2023-06-07 20:52:58 -0700
202
+ Processing by HomeController#index as HTML
203
+ Rendering home/index.html.ruxt within layouts/application
204
+ Rendered home/index.html.ruxt within layouts/application (Duration: 75.5ms | Allocations: 45236)
205
+ Completed 200 OK in 88ms (Views: 82.7ms | Allocations: 52067)
206
+ Started GET "/" for 127.0.0.1 at 2023-06-07 20:53:04 -0700
207
+ Processing by HomeController#index as HTML
208
+ Rendering layout layouts/application.html.erb
209
+ Rendering home/index.html.ruxt within layouts/application
210
+ Rendered home/index.html.ruxt within layouts/application (Duration: 85.3ms | Allocations: 44654)
211
+ Rendered layout layouts/application.html.erb (Duration: 85.8ms | Allocations: 44800)
212
+ Completed 200 OK in 100ms (Views: 93.6ms | Allocations: 50960)
213
+ Started GET "/" for 127.0.0.1 at 2023-06-07 20:53:10 -0700
214
+ Processing by HomeController#index as HTML
215
+ Rendering layout layouts/application.html.erb
216
+ Rendering home/index.html.ruxt within layouts/application
217
+ Rendered home/index.html.ruxt within layouts/application (Duration: 84.7ms | Allocations: 44260)
218
+ Rendered layout layouts/application.html.erb (Duration: 85.3ms | Allocations: 44407)
219
+ Completed 200 OK in 108ms (Views: 94.0ms | Allocations: 52425)
data/spec/spec_helper.rb CHANGED
@@ -22,4 +22,5 @@ end
22
22
 
23
23
  RSpec.configure do |config|
24
24
  config.include(SpecHelpers)
25
+ config.include(Capybara::RSpecMatchers, type: :request)
25
26
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rux-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Cameron Dutro
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-04-25 00:00:00.000000000 Z
11
+ date: 2023-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rux
@@ -42,16 +42,22 @@ dependencies:
42
42
  name: view_component
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '2'
48
+ - - "<"
46
49
  - !ruby/object:Gem::Version
47
- version: '2.0'
50
+ version: '4'
48
51
  type: :runtime
49
52
  prerelease: false
50
53
  version_requirements: !ruby/object:Gem::Requirement
51
54
  requirements:
52
- - - "~>"
55
+ - - ">="
56
+ - !ruby/object:Gem::Version
57
+ version: '2'
58
+ - - "<"
53
59
  - !ruby/object:Gem::Version
54
- version: '2.0'
60
+ version: '4'
55
61
  description: Rux view components on Rails.
56
62
  email:
57
63
  - camertron@gmail.com
@@ -101,7 +107,7 @@ files:
101
107
  homepage: http://github.com/camertron/rux-rails
102
108
  licenses: []
103
109
  metadata: {}
104
- post_install_message:
110
+ post_install_message:
105
111
  rdoc_options: []
106
112
  require_paths:
107
113
  - lib
@@ -116,8 +122,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
116
122
  - !ruby/object:Gem::Version
117
123
  version: '0'
118
124
  requirements: []
119
- rubygems_version: 3.4.5
120
- signing_key:
125
+ rubygems_version: 3.1.6
126
+ signing_key:
121
127
  specification_version: 4
122
128
  summary: Rux view components on Rails.
123
129
  test_files: []