module ServiceWorker::Handlers

Public Instance Methods

===(other) click to toggle source
# File lib/serviceworker/handlers.rb, line 21
def ===(other)
  other.respond_to?(:call)
end
build(handler) click to toggle source
# File lib/serviceworker/handlers.rb, line 9
def build(handler)
  resolve_handler(handler) || default_handler
end
default_handler() click to toggle source
# File lib/serviceworker/handlers.rb, line 58
def default_handler
  if sprockets?
    sprockets_handler
  else
    rack_handler
  end
end
handler_for_name(name) click to toggle source
# File lib/serviceworker/handlers.rb, line 25
def handler_for_name(name)
  available_handlers = %w[sprockets webpacker rack]
  if available_handlers.include?(name.to_s)
    send("#{name}_handler")
  else
    raise ServiceWorker::Error,
          "Unknown handler #{name.inspect}. Please use one of #{available_handlers.inspect}"
  end
end
handler_for_route_match(route_match) click to toggle source
# File lib/serviceworker/handlers.rb, line 13
def handler_for_route_match(route_match)
  options = route_match.options
  return webpacker_handler if Route.webpacker?(options)
  return sprockets_handler if Route.sprockets?(options)

  nil
end
rack_handler() click to toggle source
# File lib/serviceworker/handlers.rb, line 54
def rack_handler
  ServiceWorker::Handlers::RackHandler.new
end
resolve_handler(handler) click to toggle source
# File lib/serviceworker/handlers.rb, line 35
def resolve_handler(handler)
  case handler
  when Handlers
    handler
  when Symbol, String
    handler_for_name(handler)
  end
end
sprockets?() click to toggle source
# File lib/serviceworker/handlers.rb, line 70
def sprockets?
  defined?(::Rails) && ::Rails.configuration.assets
end
sprockets_handler() click to toggle source
# File lib/serviceworker/handlers.rb, line 49
def sprockets_handler
  require "serviceworker/handlers/sprockets_handler"
  ServiceWorker::Handlers::SprocketsHandler.new
end
webpacker?() click to toggle source
# File lib/serviceworker/handlers.rb, line 66
def webpacker?
  defined?(::Webpacker)
end
webpacker_handler() click to toggle source
# File lib/serviceworker/handlers.rb, line 44
def webpacker_handler
  require "serviceworker/handlers/webpacker_handler"
  ServiceWorker::Handlers::WebpackerHandler.new
end