# File lib/active_ldap/adapter/base.rb, line 116 def schema(options={}) @schema ||= operation(options) do base = options[:base] attrs = options[:attributes] attrs ||= [ 'objectClasses', 'attributeTypes', 'matchingRules', 'matchingRuleUse', 'dITStructureRules', 'dITContentRules', 'nameForms', 'ldapSyntaxes', #'extendedAttributeInfo', # if we need RANGE-LOWER/UPPER. ] base ||= root_dse_values('subschemaSubentry', options)[0] base ||= 'cn=schema' dn, attributes = search(:base => base, :scope => :base, :filter => '(objectClass=subschema)', :attributes => attrs).first Schema.new(attributes) end end