class OpenID::Extension

An interface for OpenID extensions.

Public Class Methods

new() click to toggle source
# File lib/openid/extension.rb, line 7
def initialize
  @ns_uri = nil
  @ns_alias = nil
end

Public Instance Methods

get_extension_args() click to toggle source

Get the string arguments that should be added to an OpenID message for this extension.

# File lib/openid/extension.rb, line 14
def get_extension_args
  raise NotImplementedError
end
to_message(message = nil) click to toggle source

Add the arguments from this extension to the provided message, or create a new message containing only those arguments. Returns the message with added extension args.

# File lib/openid/extension.rb, line 21
    def to_message(message = nil)
      if message.nil?
#         warnings.warn('Passing None to Extension.toMessage is deprecated. '
#                       'Creating a message assuming you want OpenID 2.',
#                       DeprecationWarning, stacklevel=2)
        Message.new(OPENID2_NS)
      end
      message = Message.new if message.nil?

      implicit = message.is_openid1()

      message.namespaces.add_alias(@ns_uri, @ns_alias, implicit)
      # XXX python ignores keyerror if m.ns.getAlias(uri) == alias

      message.update_args(@ns_uri, get_extension_args)
      return message
    end