class IndieWeb::Endpoints::Services::ResponseParserService

Public Class Methods

parse_body(body, identifier, node = 'link') click to toggle source

@param body [Nokogiri::HTML::Document] @param identifier [Symbol] @return [Array<String>]

# File lib/indieweb/endpoints/services/response_parser_service.rb, line 8
def self.parse_body(body, identifier, node = 'link')
  # Reject endpoints that contain a fragment identifier
  body.css(%(#{node}[rel~="#{identifier}"][href]:not([href*="#"]))).map { |element| element['href'] }
end
parse_headers(headers, identifier) click to toggle source

@param headers [Hash{Symbol => Array<LinkHeaderParser::LinkHeader}] @param identifier [Symbol] @return [Array<String>, nil]

# File lib/indieweb/endpoints/services/response_parser_service.rb, line 16
def self.parse_headers(headers, identifier)
  return unless headers.key?(identifier)

  # Reject endpoints that contain a fragment identifier
  headers[identifier].reject { |header| Addressable::URI.parse(header.target_uri).fragment }.map(&:target_uri)
end