Sha256: 192c85df88d83d0cd1a41386024c4f9b7c3b74746c89443e6f677c9b105a58a7

Contents?: true

Size: 721 Bytes

Versions: 1

Compression:

Stored size: 721 Bytes

Contents

require "rack/file"

module ServiceWorker
  module Rails
    class Handler
      def call(env)
        path_info = env.fetch("serviceworker.asset_name")

        if config.compile
          sprockets_server.call(env.merge("PATH_INFO" => path_info))
        else
          file_server.call(env.merge("PATH_INFO" => asset_path(path_info)))
        end
      end

    private

      def sprockets_server
        ::Rails.application.assets
      end

      def file_server
        @file_server ||= ::Rack::File.new(::Rails.public_path)
      end

      def config
        ::Rails.configuration.assets
      end

      def asset_path(path)
        ::ActionController::Base.helpers.asset_path(path)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
serviceworker-rails-0.4.0 lib/serviceworker/rails/handler.rb