diff options
Diffstat (limited to 'users/lib/webfinger/host_meta_presenter.rb')
| -rw-r--r-- | users/lib/webfinger/host_meta_presenter.rb | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/users/lib/webfinger/host_meta_presenter.rb b/users/lib/webfinger/host_meta_presenter.rb new file mode 100644 index 0000000..84ab7a9 --- /dev/null +++ b/users/lib/webfinger/host_meta_presenter.rb @@ -0,0 +1,30 @@ +require 'uri' + +class Webfinger::HostMetaPresenter +  def initialize(request) +    @request = request +  end + +  def to_json(options = {}) +    { +      subject: subject, +      links: links +    }.to_json(options) +  end + +  def subject +    url = URI.parse(@request.url) +    url.path = '' +    url.to_s +  end + +  def links +    { lrdd: { type: 'application/xrd+xml', template: webfinger_template } } +  end + +  protected + +  def webfinger_template(path = 'webfinger', query_param='q') +    "#{subject}/#{path}?#{query_param}={uri}" +  end +end  | 
