Incompatible with view_component gem
Issue description
In a project using both view_component and wicked_pdf, trying to render a pdf throws a fatal error. I suspect the issue is related to this other issue: https://github.com/mileszs/wicked_pdf/issues/891
System specifications
wicked_pdf gem version (output of cat Gemfile.lock | grep wicked_pdf): 2.0.2
wkhtmltopdf version (output of wkhtmltopdf --version): 12.5
whtmltopdf provider gem and version if one is used: 0.12.5.4
platform/distribution and version (e.g. Windows 10 / Ubuntu 16.04 / Heroku cedar): MacOS Catalina
Stacktrace
fatal (exception reentered):
#<Thread:0x00007f8c36739348@puma threadpool 002 /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/thread_pool.rb:89 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
/Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:17:in `catch': exception reentered (fatal)
/Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:17:in `catch': can't modify frozen fatal: #<fatal: exception reentered> (FrozenError)
87: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/thread_pool.rb:134:in `block in spawn_thread'
86: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/server.rb:328:in `block in run'
85: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/server.rb:472:in `process_client'
84: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/server.rb:713:in `handle_request'
83: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/configuration.rb:228:in `call'
82: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/engine.rb:527:in `call'
81: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:57:in `call'
80: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/webpacker-4.2.2/lib/webpacker/dev_server_proxy.rb:23:in `perform_request'
79: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/host_authorization.rb:82:in `call'
78: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.2/lib/rack/sendfile.rb:110:in `call'
77: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/static.rb:126:in `call'
76: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
75: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
74: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.2/lib/rack/runtime.rb:22:in `call'
73: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.2/lib/rack/method_override.rb:24:in `call'
72: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
71: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
70: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call'
69: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/rack/logger.rb:26:in `call'
68: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/tagged_logging.rb:80:in `tagged'
67: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/tagged_logging.rb:28:in `tagged'
66: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/tagged_logging.rb:80:in `block in tagged'
65: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/rack/logger.rb:26:in `block in call'
64: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/rack/logger.rb:37:in `call_app'
63: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
62: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:17:in `call'
61: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:17:in `catch'
60: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:28:in `block in call'
59: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:132:in `call_app'
58: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_exceptions.rb:30:in `call'
57: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_exceptions.rb:43:in `rescue in call'
56: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_exceptions.rb:73:in `render_exception'
55: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_exceptions.rb:88:in `render_for_browser_request'
54: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_view.rb:50:in `render'
53: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger.rb:62:in `block (2 levels) in broadcast'
52: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger_silence.rb:36:in `silence'
51: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger.rb:64:in `block (3 levels) in broadcast'
50: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger_silence.rb:36:in `silence'
49: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_view.rb:50:in `block in render'
48: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/view_component-2.7.0/lib/view_component/render_monkey_patch.rb:9:in `render'
47: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/helpers/rendering_helper.rb:30:in `render'
46: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/base.rb:304:in `in_rendering_context'
45: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/helpers/rendering_helper.rb:34:in `block in render'
44: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/renderer.rb:22:in `render'
43: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/renderer.rb:29:in `render_to_object'
42: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
41: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:13:in `render'
40: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:56:in `render_template'
39: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:65:in `render_with_layout'
38: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:57:in `block in render_template'
37: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/abstract_renderer.rb:87:in `instrument'
36: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `instrument'
35: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
34: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `block in instrument'
33: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/abstract_renderer.rb:88:in `block in instrument'
32: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:58:in `block (2 levels) in render_template'
31: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/template.rb:183:in `render'
30: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/template.rb:385:in `instrument_render_template'
29: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:182:in `instrument'
28: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/template.rb:185:in `block in render'
27: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/base.rb:274:in `_run'
26: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb:37:in `___sers_woller__rbenv_versions_______lib_ruby_gems_______gems_actionpack_________lib_action_dispatch_middleware_templates_rescues_diagnostics_html_erb__2362815147925537974_25020'
25: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_view.rb:50:in `render'
24: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger.rb:62:in `block (2 levels) in broadcast'
23: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger_silence.rb:36:in `silence'
22: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger.rb:64:in `block (3 levels) in broadcast'
21: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/logger_silence.rb:36:in `silence'
20: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/debug_view.rb:50:in `block in render'
19: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/view_component-2.7.0/lib/view_component/render_monkey_patch.rb:9:in `render'
18: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/helpers/rendering_helper.rb:30:in `render'
17: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/base.rb:304:in `in_rendering_context'
16: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/helpers/rendering_helper.rb:34:in `block in render'
15: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/renderer.rb:22:in `render'
14: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/renderer.rb:29:in `render_to_object'
13: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/renderer.rb:61:in `render_template_to_object'
12: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:13:in `render'
11: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:56:in `render_template'
10: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:65:in `render_with_layout'
9: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:57:in `block in render_template'
8: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/abstract_renderer.rb:87:in `instrument'
7: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `instrument'
6: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications/instrumenter.rb:24:in `instrument'
5: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/notifications.rb:180:in `block in instrument'
4: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/abstract_renderer.rb:88:in `block in instrument'
3: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/renderer/template_renderer.rb:58:in `block (2 levels) in render_template'
2: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/template.rb:182:in `render'
1: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/template.rb:188:in `rescue in render'
/Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionview-6.0.3.1/lib/action_view/template.rb:354:in `handle_render_error': can't modify frozen fatal: #<fatal: exception reentered> (ActionView::Template::Error)
30: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/thread_pool.rb:134:in `block in spawn_thread'
29: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/server.rb:328:in `block in run'
28: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/server.rb:472:in `process_client'
27: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/server.rb:713:in `handle_request'
26: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/puma-4.3.5/lib/puma/configuration.rb:228:in `call'
25: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/engine.rb:527:in `call'
24: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-proxy-0.6.5/lib/rack/proxy.rb:57:in `call'
23: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/webpacker-4.2.2/lib/webpacker/dev_server_proxy.rb:23:in `perform_request'
22: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/host_authorization.rb:82:in `call'
21: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.2/lib/rack/sendfile.rb:110:in `call'
20: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/static.rb:126:in `call'
19: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/executor.rb:14:in `call'
18: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/cache/strategy/local_cache_middleware.rb:29:in `call'
17: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.2/lib/rack/runtime.rb:22:in `call'
16: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/rack-2.2.2/lib/rack/method_override.rb:24:in `call'
15: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/request_id.rb:27:in `call'
14: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/remote_ip.rb:81:in `call'
13: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/sprockets-rails-3.2.1/lib/sprockets/rails/quiet_assets.rb:13:in `call'
12: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/rack/logger.rb:26:in `call'
11: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/tagged_logging.rb:80:in `tagged'
10: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/tagged_logging.rb:28:in `tagged'
9: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/activesupport-6.0.3.1/lib/active_support/tagged_logging.rb:80:in `block in tagged'
8: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/rack/logger.rb:26:in `block in call'
7: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/railties-6.0.3.1/lib/rails/rack/logger.rb:37:in `call_app'
6: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/actionpack-6.0.3.1/lib/action_dispatch/middleware/show_exceptions.rb:33:in `call'
5: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:17:in `call'
4: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:17:in `catch'
3: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:28:in `block in call'
2: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:131:in `call_app'
1: from /Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:134:in `rescue in call_app'
/Users/woller/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/web-console-4.0.2/lib/web_console/middleware.rb:134:in `throw': uncaught throw :app_exception (UncaughtThrowError)
If it helps, I've tested @Okatawa's fix and it works with my render loop issue as well!
Hi, could we please look at getting this merged? Blocker for a lot of apps that use view_component
FYI this could be unrelated, but view_component implemented a fix: https://github.com/github/view_component/pull/358, both libraries were monkey patching render, and view_component has an option to disable its monkey patching now (config.view_component.render_monkey_patch_enabled = fase), but you'll need to call render_component instead of render when rendering view components. Rails >= 6.1 should just work without needing to disable anything.
Hey guys. Thanks for digging into this.
Would you be open to using the same approach with wicked_pdf? Have a switch somewhere to stop monkey patching the render method and use another render_pdf (or similar) method?
I could dive into the code and apply a similar patch to wicked_pdf if that's something you'd be open to @mileszs.
A bit of context:
I'm the author of https://github.com/avo-hq/avo and we have users that use Avo and wicked_pdf, and Avo together. Avo uses View Components so they raise an exception.
The reasoning behind having this option in wicked_pdf is that we offer the ability to break out of the DSL using regular Rails code on multiple levels, so this API becomes public. So a lot of users will expect to be able to use render with View Components. I think it will be less friction to change the wicked_pdf statements rather than the one for View Component.
TL;DR;
Are you open to adding a render_monkey_patch_enabled? helper to wicked_pdf that would remove the monkey patch?
Thanks!
Yes, I've long wanted to make it so that this library doesn't hook into render at all (by default), but would want to release an intermediate version to deprecate the old behavior and make the suggested code change easy before releasing the breaking change.
Something like this is my desired implementation:
def show
render wicked_pdf(options)
end
# or
def show
wicked_pdf(options)
end
I just haven't made the time to do it. Your help would be appreciated.