class SAML2::Attribute::X500

def self.recognizes?(name_or_node)

Parameters:
  • name_or_node (String, Nokogiri::XML::Element) --
def self.recognizes?(name_or_node)
  if name_or_node.is_a?(Nokogiri::XML::Element)
    !!name_or_node.at_xpath("@x500:Encoding", Namespaces::ALL) ||
        name_or_node['NameFormat'] == NameFormats::URI && OIDS.include?(name_or_node['Name'])
  else
    FRIENDLY_NAMES.include?(name_or_node) || OIDS.include?(name_or_node)
  end
end

def build(builder)

(see Base#build)
def build(builder)
  super
  attr = builder.parent.last_element_child
  attr.add_namespace_definition('x500', Namespaces::X500)
  attr['x500:Encoding'] = 'LDAP'
end

def from_xml(node)

(see Base.from_xml)
def from_xml(node)
  super
  # infer the friendly name if not provided
  self.friendly_name ||= OIDS[name]
  self
end

def initialize(name = nil, value = nil)

Parameters:
  • value () -- optional [Object, nil]
  • name (String) --
def initialize(name = nil, value = nil)
  # if they pass an OID, infer the friendly name
  friendly_name = OIDS[name]
  unless friendly_name
    # if they pass a friendly name, infer the OID
    proper_name = FRIENDLY_NAMES[name]
    if proper_name
      name, friendly_name = proper_name, name
    end
  end
  super(name, value, friendly_name, NameFormats::URI)
end