Class: XriResolver::URIAuthorityResolver

Inherits:
AuthorityResolver show all
Defined in:
lib/xri_resolver.rb

Instance Attribute Summary

Attributes inherited from AuthorityResolver

#client, #req, #resolved, #status_code, #xrd_array, #xri

Instance Method Summary collapse

Methods inherited from AuthorityResolver

#doappend, #last_xrd, #last_xrd_doc, #last_xrd_to_pretty, #last_xrd_to_s, resolve, #to_pretty, #to_urilist

Constructor Details

#initialize(xri, req, uri, stack) ⇒ URIAuthorityResolver

Returns a new instance of URIAuthorityResolver.



1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
# File 'lib/xri_resolver.rb', line 1097

def initialize(xri, req, uri, stack)
  if uri = (URI.parse(uri) rescue nil) and %w{http https}.include?(uri.scheme)
    @xri = xri
    @req = req
    @uri = uri
    @stack = stack || Array.new
    @client = HTTPClient.new
    uriget = fetch_uri(uri)
    urixml = uriget.content.unpack("C*").pack("U*")
    uridoc = REXML::Document.new(urixml).root
    @xrd_array = REXML::XPath.match(uridoc, "*", XRDNS)

    serverstatus!
    completeuris!
    canonical!
    references!
    redirects!
    services!
  end
end

Instance Method Details

#resolved_successfully?Boolean

Returns:

  • (Boolean)


1130
1131
1132
# File 'lib/xri_resolver.rb', line 1130

def resolved_successfully?
  true
end

#to_sObject



1118
1119
1120
# File 'lib/xri_resolver.rb', line 1118

def to_s
  self.to_xrds.to_s
end

#to_xrdsObject



1122
1123
1124
1125
1126
1127
1128
# File 'lib/xri_resolver.rb', line 1122

def to_xrds
  xrds = REXML::Element.new('XRDS')
  xrds.add_namespace('xri://$xrds')
  xrds.add_attribute('redirect', @uri)
  @xrd_array.each { |ele| xrds << ele }
  xrds
end