# File lib/sprockets/rails/legacy_asset_url_helper.rb, line 66
      def compute_asset_host(source = "", options = {})
        request = self.request if respond_to?(:request)

        if defined? config
          host = config.asset_host
        elsif defined? ActionController::Base.asset_host
          host = ActionController::Base.asset_host
        end

        host ||= request.base_url if request && options[:protocol] == :request
        return unless host

        if host.respond_to?(:call)
          arity = host.respond_to?(:arity) ? host.arity : host.method(:call).arity
          args = [source]
          args << request if request && (arity > 1 || arity < 0)
          host = host.call(*args)
        elsif host =~ /%d/
          host = host % (Zlib.crc32(source) % 4)
        end

        if host =~ URI_REGEXP
          host
        else
          protocol = options[:protocol] || (request ? :request : :relative)
          case protocol
          when :relative
            "//#{host}"
          when :request
            "#{request.protocol}#{host}"
          else
            "#{protocol}://#{host}"
          end
        end
      end