Class: ServiceWorker::Handlers::RackHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/serviceworker/handlers/rack_handler.rb

Instance Method Summary collapse

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_serverObject



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_classObject



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