class OpenID::SReg::Response

Represents the data returned in a simple registration response inside of an OpenID id_res response. This object will be created by the OpenID server, added to the id_res response object, and then extracted from the id_res message by the Consumer.

Attributes

data[R]
ns_uri[R]

Public Class Methods

extract_response(request, data) click to toggle source

Take a Request and a hash of simple registration values and create a Response object containing that data.

# File lib/openid/extensions/sreg.rb, line 235
def self.extract_response(request, data)
  arf = request.all_requested_fields
  resp_data = data.reject{|k,v| !arf.member?(k) || v.nil? }
  new(resp_data, request.ns_uri)
end
from_success_response(success_response, signed_only = true) click to toggle source

Create an Response object from an OpenID::Consumer::SuccessResponse from consumer.complete If you set the signed_only parameter to false, unsigned data from the id_res message from the server will be processed.

# File lib/openid/extensions/sreg.rb, line 245
def self.from_success_response(success_response, signed_only = true)
  ns_uri = OpenID::get_sreg_ns(success_response.message)
  if signed_only
    args = success_response.get_signed_ns(ns_uri)
    return nil if args.nil? # No signed args, so fail
  else
    args = success_response.message.get_args(ns_uri)
  end
  args.reject!{|k,v| !DATA_FIELDS.member?(k) }
  new(args, ns_uri)
end
new(data = {}, ns_uri=NS_URI) click to toggle source
# File lib/openid/extensions/sreg.rb, line 227
def initialize(data = {}, ns_uri=NS_URI)
  @ns_alias = 'sreg'
  @data = data
  @ns_uri = ns_uri
end

Public Instance Methods

[](field_name) click to toggle source

Read-only hashlike interface. Raises an exception if the field name is bad

# File lib/openid/extensions/sreg.rb, line 265
def [](field_name)
  OpenID::check_sreg_field_name(field_name)
  data[field_name]
end
empty?() click to toggle source
# File lib/openid/extensions/sreg.rb, line 270
def empty?
  @data.empty?
end
get_extension_args() click to toggle source

Get the fields to put in the simple registration namespace when adding them to an id_res message.

# File lib/openid/extensions/sreg.rb, line 259
def get_extension_args
  return @data
end