sorbet/rbi/gems/link_header@0.0.8.rbi
# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `link_header` gem.
# Please instead update this file by running `bin/tapioca gem link_header`.
# Represents an HTTP link header of the form described in the draft spec http://tools.ietf.org/id/draft-nottingham-http-link-header-06.txt.
# It is simply a list of LinkHeader::Link objects and some conversion functions.
#
# source://link_header//lib/link_header/version.rb#1
class LinkHeader
# Initialize from a collection of either LinkHeader::Link objects or data from which Link objects can be created.
#
# From a list of LinkHeader::Link objects:
#
# LinkHeader.new([
# LinkHeader::Link.new("http://example.com/foo", [["rel", "self"]]),
# LinkHeader::Link.new("http://example.com/", [["rel", "up"]])])
#
# From the equivalent JSON-friendly raw data:
#
# LinkHeader.new([
# ["http://example.com/foo", [["rel", "self"]]],
# ["http://example.com/", [["rel", "up"]]]]).to_s
#
# See also LinkHeader.parse
#
# @return [LinkHeader] a new instance of LinkHeader
#
# source://link_header//lib/link_header.rb#29
def initialize(links = T.unsafe(nil)); end
# source://link_header//lib/link_header.rb#37
def <<(link); end
# Find a member link that has the given attributes
#
# source://link_header//lib/link_header.rb#108
def find_link(*attr_pairs); end
# An array of Link objects
#
# source://link_header//lib/link_header.rb#10
def links; end
# Convert to a JSON-friendly array
#
# LinkHeader.parse('<http://example.com/foo>; rel="self", <http://example.com/>; rel = "up"').to_a
# #=> [["http://example.com/foo", [["rel", "self"]]],
# ["http://example.com/", [["rel", "up"]]]]
#
# source://link_header//lib/link_header.rb#49
def to_a; end
# Render as a list of HTML link elements
#
# source://link_header//lib/link_header.rb#119
def to_html(separator = T.unsafe(nil)); end
# Convert to string representation as per the link header spec
#
# LinkHeader.new([
# ["http://example.com/foo", [["rel", "self"]]],
# ["http://example.com/", [["rel", "up"]]]]).to_s
# #=> '<http://example.com/foo>; rel="self", <http://example.com/>; rel = "up"'
#
# source://link_header//lib/link_header.rb#61
def to_s; end
class << self
# Parse a link header, returning a new LinkHeader object
#
# LinkHeader.parse('<http://example.com/foo>; rel="self", <http://example.com/>; rel = "up"').to_a
# #=> [["http://example.com/foo", [["rel", "self"]]],
# ["http://example.com/", [["rel", "up"]]]]
#
# source://link_header//lib/link_header.rb#85
def parse(link_header); end
end
end
# source://link_header//lib/link_header.rb#74
LinkHeader::ATTR = T.let(T.unsafe(nil), Regexp)
# source://link_header//lib/link_header.rb#76
LinkHeader::COMMA = T.let(T.unsafe(nil), Regexp)
# Regexes for link header parsing. TOKEN and QUOTED in particular should conform to RFC2616.
#
# Acknowledgement: The QUOTED regexp is based on
# http://stackoverflow.com/questions/249791/regexp-for-quoted-string-with-escaping-quotes/249937#249937
#
# source://link_header//lib/link_header.rb#71
LinkHeader::HREF = T.let(T.unsafe(nil), Regexp)
# Represents a link - an href and a list of attributes (key value pairs)
#
# LinkHeader::Link.new("http://example.com/foo", [["rel", "self"]]).to_s
# => '<http://example.com/foo>; rel="self"'
#
# source://link_header//lib/link_header.rb#129
class LinkHeader::Link
# Initialize a Link from an href and attribute list
#
# LinkHeader::Link.new("http://example.com/foo", [["rel", "self"]]).to_s
# => '<http://example.com/foo>; rel="self"'
#
# @return [Link] a new instance of Link
#
# source://link_header//lib/link_header.rb#152
def initialize(href, attr_pairs); end
# Access #attrs by key
#
# source://link_header//lib/link_header.rb#171
def [](key); end
# The link's attributes, an array of key-value pairs
#
# LinkHeader::Link.new("http://example.com/foo", [["rel", "self"], ["rel", "canonical"]]).attr_pairs
# => [["rel", "self"], ["rel", "canonical"]]
#
# source://link_header//lib/link_header.rb#144
def attr_pairs; end
# Lazily convert the attribute list to a Hash
#
# Beware repeated attribute names (it's safer to use #attr_pairs if this is risk):
#
# LinkHeader::Link.new("http://example.com/foo", [["rel", "self"], ["rel", "canonical"]]).attrs
# => {"rel" =>"canonical"}
#
# source://link_header//lib/link_header.rb#164
def attrs; end
# The link's URI string
#
# LinkHeader::Link.new("http://example.com/foo", [["rel", "self"]]).href
# => 'http://example.com/foo>'
#
# source://link_header//lib/link_header.rb#136
def href; end
# Convert to a JSON-friendly Array
#
# LinkHeader::Link.new("http://example.com/foo", [["rel", "self"], ["rel", "canonical"]]).to_a
# => ["http://example.com/foo", [["rel", "self"], ["rel", "canonical"]]]
#
# source://link_header//lib/link_header.rb#181
def to_a; end
# Bonus! Render as an HTML link element
#
# LinkHeader::Link.new(["http://example.com/foo", [["rel", "self"]]]).to_html
# #=> '<link href="http://example.com/foo" rel="self">'
#
# source://link_header//lib/link_header.rb#203
def to_html; end
# Convert to string representation as per the link header spec. This includes backspace-escaping doublequote characters in
# quoted attribute values.
#
# Convert to string representation as per the link header spec
#
# LinkHeader::Link.new(["http://example.com/foo", [["rel", "self"]]]).to_s
# #=> '<http://example.com/foo>; rel="self"'
#
# source://link_header//lib/link_header.rb#194
def to_s; end
end
# source://link_header//lib/link_header.rb#73
LinkHeader::QUOTED = T.let(T.unsafe(nil), Regexp)
# source://link_header//lib/link_header.rb#75
LinkHeader::SEMI = T.let(T.unsafe(nil), Regexp)
# source://link_header//lib/link_header.rb#72
LinkHeader::TOKEN = T.let(T.unsafe(nil), Regexp)
# source://link_header//lib/link_header/version.rb#2
LinkHeader::VERSION = T.let(T.unsafe(nil), String)