Sha256: f7a4838a79bea394ae0936e7b1a6dc4b20f4c8a367a79440f173793905b215e7
Contents?: true
Size: 1.37 KB
Versions: 2
Compression:
Stored size: 1.37 KB
Contents
class String # normalizes an OpenID according to http://openid.net/specs/openid-authentication-2_0.html#normalization def normalize_identifier # clean up whitespace identifier = self.dup.strip # if an XRI has a prefix, strip it. identifier.gsub!(/xri:\/\//i, '') # dodge XRIs -- TODO: validate, don't just skip. unless ['=', '@', '+', '$', '!', '('].include?(identifier.at(0)) # does it begin with http? if not, add it. identifier = "http://#{identifier}" unless identifier =~ /^http/i # strip any fragments identifier.gsub!(/\#(.*)$/, '') begin uri = URI.parse(identifier) uri.scheme = uri.scheme.downcase # URI should do this identifier = uri.normalize.to_s rescue URI::InvalidURIError raise InvalidOpenId.new("#{identifier} is not an OpenID identifier") end end return identifier end end class Hash def recursively_symbolize_keys! self.symbolize_keys! self.values.each do |v| if v.is_a? Hash v.recursively_symbolize_keys! elsif v.is_a? Array v.recursively_symbolize_keys! end end self end end class Array def recursively_symbolize_keys! self.each do |item| if item.is_a? Hash item.recursively_symbolize_keys! elsif item.is_a? Array item.recursively_symbolize_keys! end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
authlogic-connect-0.0.3.4 | lib/authlogic_connect/common/ext.rb |
authlogic-connect-0.0.3.3 | lib/authlogic_connect/common/ext.rb |