rack-server-pages icon indicating copy to clipboard operation
rack-server-pages copied to clipboard

Involuntary inclusion of tilt gem causes dependency failure

Open aberkowitz opened this issue 1 year ago • 0 comments

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.

aberkowitz avatar May 27 '23 20:05 aberkowitz