Skip to content
This repository has been archived by the owner on Sep 28, 2021. It is now read-only.

Commit

Permalink
shuffle another heredoc out to a template
Browse files Browse the repository at this point in the history
  • Loading branch information
atmos committed Mar 16, 2009
1 parent 234ab3c commit 987b1d6
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 20 deletions.
28 changes: 8 additions & 20 deletions lib/sinatra/hancock/openid_server.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
module Sinatra
module Hancock
module OpenIDServer
def self.openid_server_template(file, suffix = 'erb')
template = File.expand_path(File.dirname(__FILE__)+'/views/openid_server')
File.read("#{template}/#{file}.#{suffix}")
end
module Helpers
def server
if @server.nil?
Expand All @@ -12,24 +16,6 @@ def server
return @server
end

def yadis
<<-ERB
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS
xmlns:xrds="xri://$xrds"
xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="0">
<% @types.each do |typ| %>
<Type><%= typ %></Type>
<% end %>
<URI><%= absolute_url('/sso') %></URI>
</Service>
</XRD>
</xrds:XRDS>
ERB
end

def url_for_user
absolute_url("/sso/users/#{session_user.id}")
end
Expand All @@ -53,18 +39,20 @@ def render_response(oidresp)
def self.registered(app)
app.send(:include, Sinatra::Hancock::OpenIDServer::Helpers)

app.template(:yadis) { openid_server_template('yadis') }

app.get '/sso/xrds' do
response.headers['Content-Type'] = 'application/xrds+xml'
@types = [ OpenID::OPENID_IDP_2_0_TYPE ]
erb yadis, :layout => false
erb :yadis, :layout => false
end

app.get '/sso/users/:id' do
@types = [ OpenID::OPENID_2_0_TYPE, OpenID::SREG_URI ]
response.headers['Content-Type'] = 'application/xrds+xml'
response.headers['X-XRDS-Location'] = absolute_url("/sso/users/#{params['id']}")

erb yadis, :layout => false
erb :yadis, :layout => false
end

[:get, :post].each do |meth|
Expand Down
13 changes: 13 additions & 0 deletions lib/sinatra/hancock/views/openid_server/yadis.erb
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<xrds:XRDS
xmlns:xrds="xri://$xrds"
xmlns="xri://$xrd*($v*2.0)">
<XRD>
<Service priority="0">
<% @types.each do |typ| %>
<Type><%= typ %></Type>
<% end %>
<URI><%= absolute_url('/sso') %></URI>
</Service>
</XRD>
</xrds:XRDS>

0 comments on commit 987b1d6

Please sign in to comment.