Module: ServiceWorker::Handlers

Extended by:
Handlers
Included in:
Handlers
Defined in:
lib/serviceworker/handlers.rb,
lib/serviceworker/handlers/rack_handler.rb,
lib/serviceworker/handlers/sprockets_handler.rb

Defined Under Namespace

Classes: RackHandler, SprocketsHandler

Instance Method Summary collapse

Instance Method Details

#===(other) ⇒ Object



20
21
22
# File 'lib/serviceworker/handlers.rb', line 20

def ===(other)
  other.respond_to?(:call)
end

#build(handler) ⇒ Object



9
10
11
# File 'lib/serviceworker/handlers.rb', line 9

def build(handler)
  resolve_handler(handler) || default_handler
end

#default_handlerObject



52
53
54
55
56
57
58
# File 'lib/serviceworker/handlers.rb', line 52

def default_handler
  if sprockets?
    sprockets_handler
  else
    rack_handler
  end
end

#handler_for_name(name) ⇒ Object



24
25
26
27
28
29
30
31
32
# File 'lib/serviceworker/handlers.rb', line 24

def handler_for_name(name)
  available_handlers = %w[sprockets 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) ⇒ Object



13
14
15
16
17
18
# File 'lib/serviceworker/handlers.rb', line 13

def handler_for_route_match(route_match)
  options = route_match.options
  return sprockets_handler if Route.sprockets?(options)

  nil
end

#rack_handlerObject



48
49
50
# File 'lib/serviceworker/handlers.rb', line 48

def rack_handler
  ServiceWorker::Handlers::RackHandler.new
end

#resolve_handler(handler) ⇒ Object



34
35
36
37
38
39
40
41
# File 'lib/serviceworker/handlers.rb', line 34

def resolve_handler(handler)
  case handler
  when Handlers
    handler
  when Symbol, String
    handler_for_name(handler)
  end
end

#sprockets?Boolean

Returns:

  • (Boolean)


60
61
62
# File 'lib/serviceworker/handlers.rb', line 60

def sprockets?
  defined?(::Rails) && ::Rails.configuration.assets
end

#sprockets_handlerObject



43
44
45
46
# File 'lib/serviceworker/handlers.rb', line 43

def sprockets_handler
  require "serviceworker/handlers/sprockets_handler"
  ServiceWorker::Handlers::SprocketsHandler.new
end