class LinkHeaderParser::LinkHeadersCollection
Attributes
base[R]
headers[R]
Public Class Methods
new(*headers, base:)
click to toggle source
@param headers [Array<String>] @param base [String]
# File lib/link_header_parser/link_headers_collection.rb, line 13 def initialize(*headers, base:) @headers = headers.to_ary.flatten.map(&:to_str) @base = base.to_str distinct_headers.each { |header| push(LinkHeader.new(header, base: base)) } end
Public Instance Methods
group_by_relation_type()
click to toggle source
@return [Hash{Symbol => Array<LinkHeaderParser::LinkHeader>}]
# File lib/link_header_parser/link_headers_collection.rb, line 21 def group_by_relation_type relation_types.map do |relation_type| [relation_type, find_all { |member| member.relation_types.include?(relation_type) }] end.to_h.transform_keys(&:to_sym) end
inspect()
click to toggle source
# File lib/link_header_parser/link_headers_collection.rb, line 27 def inspect format(%(#<#{self.class.name}:%#0x headers: #{headers.inspect}, relation_types: #{relation_types.inspect}>), object_id) end
relation_types()
click to toggle source
@return [Array<String>]
# File lib/link_header_parser/link_headers_collection.rb, line 32 def relation_types @relation_types ||= flat_map(&:relation_types).uniq.sort end
Private Instance Methods
distinct_headers()
click to toggle source
# File lib/link_header_parser/link_headers_collection.rb, line 40 def distinct_headers @distinct_headers ||= headers.flat_map { |header| header.split(/,(?=[\s|<])/) }.map(&:strip) end
members()
click to toggle source
# File lib/link_header_parser/link_headers_collection.rb, line 44 def members @members ||= [] end