class Tychus::URIResolver
Attributes
doc[R]
open_graph_canonical_uri_property[R]
schema_org_canonical_uri_property[R]
Public Class Methods
new(uri, doc=nil)
click to toggle source
# File lib/tychus/uri_resolver.rb, line 14 def initialize(uri, doc=nil) @schema_org_canonical_uri_property = 'link[rel="canonical"]' @open_graph_canonical_uri_property = 'meta[property="og:url"]' @doc ||= Nokogiri::HTML(open(uri)) end
Public Instance Methods
canonical_uri(property)
click to toggle source
# File lib/tychus/uri_resolver.rb, line 30 def canonical_uri(property) case property when schema_org_canonical_uri_property doc.css(property).first['href'] when open_graph_canonical_uri_property doc.css(property).first['content'] end end
resolve_uri()
click to toggle source
# File lib/tychus/uri_resolver.rb, line 20 def resolve_uri # try to retrieve host from canonical uri in markup # else resort to given uri full_uri = canonical_uri(schema_org_canonical_uri_property).presence || \ canonical_uri(open_graph_canonical_uri_property).presence || \ uri Addressable::URI.parse(full_uri) end