class ActiveLdap::Schema

def entry(group, id_or_name)

def entry(group, id_or_name)
  return {} if group.empty? or id_or_name.empty?
  unless @entries.has_key?(group)
    raise ArgumentError, _("Unknown schema group: %s") % group
  end
  # Initialize anything that is required
  info, ids, aliases = ensure_schema_info(group)
  _ = info # for suppress a warning on Ruby 1.9.3
  id, name = determine_id_or_name(id_or_name, aliases)
  # Check already parsed options first
  return ids[id] if ids.has_key?(id)
  schemata = @entries[group] || []
  while schema = schemata.shift
    next unless /\A\s*\(\s*(#{OID_RE})\s*(.*)\s*\)\s*\z/ =~ schema
    schema_id = $1
    rest = $2
    if ids.has_key?(schema_id)
      attributes = ids[schema_id]
    else
      attributes = {}
      ids[schema_id] = attributes
    end
    parse_attributes(rest, attributes)
    (attributes["NAME"] || []).each do |v|
      normalized_name = normalize_schema_name(v)
      aliases[normalized_name] = schema_id
      id = schema_id if id.nil? and name == normalized_name
    end
    break if id == schema_id
  end
  ids[id || aliases[name]] || {}
end