Flowdock
method

send_preload_links_header

Importance_0
v7.0.0 - Show latest stable - 0 notes - Class: ActionView::Helpers::AssetTagHelper
send_preload_links_header(preload_links, max_header_size: MAX_HEADER_SIZE) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# File actionview/lib/action_view/helpers/asset_tag_helper.rb, line 543
        def send_preload_links_header(preload_links, max_header_size: MAX_HEADER_SIZE)
          return if preload_links.empty?
          return if respond_to?(:response) && response.sending?

          if respond_to?(:request) && request
            request.send_early_hints("Link" => preload_links.join("\n"))
          end

          if respond_to?(:response) && response
            header = response.headers["Link"]
            header = header ? header.dup : +""

            # rindex count characters not bytes, but we assume non-ascii characters
            # are rare in urls, and we have a 192 bytes margin.
            last_line_offset = header.rindex("\n")
            last_line_size = if last_line_offset
              header.bytesize - last_line_offset
            else
              header.bytesize
            end

            preload_links.each do |link|
              if link.bytesize + last_line_size + 1 < max_header_size
                unless header.empty?
                  header << ","
                  last_line_size += 1
                end
              else
                header << "\n"
                last_line_size = 0
              end
              header << link
              last_line_size += link.bytesize
            end

            response.headers["Link"] = header
          end
        end
Register or log in to add new notes.