@@ -23,34 +23,40 @@ require_relative 'config/rack_attack'
2323use Rack ::Attack
2424
2525dev = ENV . fetch ( 'RACK_ENV' , nil ) == 'development'
26- app_requires = Dir [ 'app/**/*.rb' ]
27- route_requires = Dir [ 'routes/**/*.rb' ]
28- helper_requires = Dir [ 'helpers/**/*.rb' ]
2926
3027if dev
3128 require 'logger'
29+ require 'rack/unreloader'
30+
3231 logger = Logger . new ( $stdout)
32+ logger . level = Logger ::INFO
33+
34+ # Simple Unreloader configuration following official docs
35+ Unreloader = Rack ::Unreloader . new (
36+ subclasses : %w[ Roda Html2rss ] ,
37+ logger : logger ,
38+ reload : true
39+ ) do
40+ Html2rss ::Web ::App
41+ end
3342
34- require 'rack/unreloader'
35- Unreloader = Rack ::Unreloader . new ( subclasses : %w[ Roda Html2rss ] ,
36- logger :,
37- reload : dev ) do
38- Html2rss ::Web ::App
39- end
43+ # Load main app file
4044 Unreloader . require ( 'app.rb' ) { 'Html2rss::Web::App' }
4145
42- app_requires . each { |f | Unreloader . require ( f ) }
43- route_requires . each { |f | Unreloader . require ( f ) }
44- helper_requires . each { |f | Unreloader . require ( f ) }
46+ # Load all directories - Unreloader handles the rest
47+ Unreloader . require ( 'helpers' )
48+ Unreloader . require ( 'app' )
49+ Unreloader . require ( 'routes' )
4550
4651 run Unreloader
4752else
4853 use Rack ::Timeout
4954
55+ # Production: load everything upfront for better performance
5056 require_relative 'app'
51- app_requires . each { |f | require_relative f }
52- route_requires . each { |f | require_relative f }
53- helper_requires . each { |f | require_relative f }
57+ Dir [ 'app/**/*.rb' ] . each { |f | require_relative f }
58+ Dir [ 'routes/**/*.rb' ] . each { |f | require_relative f }
59+ Dir [ 'helpers/**/*.rb' ] . each { |f | require_relative f }
5460
5561 run ( Html2rss ::Web ::App . freeze . app )
5662end
0 commit comments