class ServiceWorker::Route
Constants
- RouteMatch
Attributes
asset_pattern[R]
options[R]
path_pattern[R]
Public Class Methods
new(path_pattern, asset_pattern = nil, options = {})
click to toggle source
# File lib/serviceworker/route.rb, line 21 def initialize(path_pattern, asset_pattern = nil, options = {}) if asset_pattern.is_a?(Hash) options = asset_pattern asset_pattern = nil end @path_pattern = path_pattern @asset_pattern = if self.class.webpacker?(options) asset_pattern || options.fetch(:pack, path_pattern) else asset_pattern || options.fetch(:asset, path_pattern) end @options = options end
sprockets?(options)
click to toggle source
# File lib/serviceworker/route.rb, line 17 def self.sprockets?(options) options.key?(:asset) end
webpacker?(options)
click to toggle source
# File lib/serviceworker/route.rb, line 13 def self.webpacker?(options) options.key?(:pack) && Handlers.webpacker? end
Public Instance Methods
headers()
click to toggle source
# File lib/serviceworker/route.rb, line 44 def headers @options.fetch(:headers, {}) end
match(path)
click to toggle source
# File lib/serviceworker/route.rb, line 36 def match(path) raise ArgumentError, "path is required" if path.to_s.strip.empty? asset = resolver.call(path) or return nil RouteMatch.new(path, asset, headers, options) end
Private Instance Methods
resolver()
click to toggle source
# File lib/serviceworker/route.rb, line 50 def resolver @resolver ||= AssetResolver.new(path_pattern, asset_pattern) end