Sha256: 1851ccaea8b987c9088a51e48e0576de73a6ac8c16560bb4030c88b2954456ed
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
# frozen_string_literal: true require "serviceworker/handlers/rack_handler" module ServiceWorker module Handlers extend self def build(handler) resolve_handler(handler) || default_handler end 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 def ===(other) other.respond_to?(:call) end 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 def resolve_handler(handler) case handler when Handlers handler when Symbol, String handler_for_name(handler) end end def webpacker_handler require "serviceworker/handlers/webpacker_handler" ServiceWorker::Handlers::WebpackerHandler.new end def sprockets_handler require "serviceworker/handlers/sprockets_handler" ServiceWorker::Handlers::SprocketsHandler.new end def rack_handler ServiceWorker::Handlers::RackHandler.new end def default_handler if sprockets? sprockets_handler else rack_handler end end def webpacker? defined?(::Webpacker) end def sprockets? defined?(::Rails) && ::Rails.configuration.assets end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
serviceworker-rails-0.6.0 | lib/serviceworker/handlers.rb |