Class: ServiceWorker::Handlers::RackHandler
- Inherits:
-
Object
- Object
- ServiceWorker::Handlers::RackHandler
- Defined in:
- lib/serviceworker/handlers/rack_handler.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
- #file_path(path_info) ⇒ Object
- #file_server ⇒ Object
-
#initialize(root = Dir.getwd) ⇒ RackHandler
constructor
A new instance of RackHandler.
- #rack_files_class ⇒ Object
Constructor Details
#initialize(root = Dir.getwd) ⇒ RackHandler
Returns a new instance of RackHandler.
6 7 8 |
# File 'lib/serviceworker/handlers/rack_handler.rb', line 6 def initialize(root = Dir.getwd) @root = root end |
Instance Method Details
#call(env) ⇒ Object
10 11 12 13 14 |
# File 'lib/serviceworker/handlers/rack_handler.rb', line 10 def call(env) path_info = env.fetch("serviceworker.asset_name") file_server.call(env.merge("PATH_INFO" => path_info)) end |
#file_path(path_info) ⇒ Object
16 17 18 |
# File 'lib/serviceworker/handlers/rack_handler.rb', line 16 def file_path(path_info) @root.join(path_info) end |
#file_server ⇒ Object
20 21 22 |
# File 'lib/serviceworker/handlers/rack_handler.rb', line 20 def file_server @file_server ||= rack_files_class.new(@root) end |
#rack_files_class ⇒ Object
24 25 26 27 28 29 30 31 32 |
# File 'lib/serviceworker/handlers/rack_handler.rb', line 24 def rack_files_class @rack_files_class ||= begin require "rack/files" ::Rack::Files rescue LoadError require "rack/file" ::Rack::File end end |