rack-server-pages
rack-server-pages copied to clipboard
Involuntary inclusion of tilt gem causes dependency failure
I am working on a project that relies upon both rack-server-pages, and sidekiq-scheduler. sidekiq-scheduler
has tilt
as a dependency, which triggers rack-server-pages
to attempt to utilize tilt
, which I have not explicitly required or autoloaded.
Stack Trace:
Puma caught this error: undefined method `[]' for Tilt:Module
@tilt ||= Tilt[@file]
^^^^^^^ (NoMethodError)
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/rack-server-pages-0.1.0/lib/rack/server_pages.rb:232:in `find_template'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/rack-server-pages-0.1.0/lib/rack/server_pages.rb:185:in `[]'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/rack-server-pages-0.1.0/lib/rack/server_pages.rb:45:in `serving'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/rack-server-pages-0.1.0/lib/rack/server_pages.rb:36:in `call'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/rack-rewrite-1.5.1/lib/rack/rewrite.rb:24:in `call'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/rack-cors-1.1.1/lib/rack/cors.rb:100:in `call'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/otr-activerecord-2.1.2/lib/otr-activerecord/middleware/connection_management.rb:14:in `call'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/puma-5.6.4/lib/puma/configuration.rb:252:in `call'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/puma-5.6.4/lib/puma/request.rb:77:in `block in handle_request'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/puma-5.6.4/lib/puma/thread_pool.rb:340:in `with_force_shutdown'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/puma-5.6.4/lib/puma/request.rb:76:in `handle_request'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/puma-5.6.4/lib/puma/server.rb:441:in `process_client'
/Users/aberkowitz/.rvm/gems/ruby-3.1.1/gems/puma-5.6.4/lib/puma/thread_pool.rb:147:in `block in spawn_thread'
Engineering Notes
Require tilt
in the TiltTemplate
class would match the behavior of the ERBTemplate class within Rack::ServerPages::Template
. The Readme suggests a solution, but that solution would be an unnecessary burden if -like in my case- I was unaware that tilt
was included in one of my dependencies.