File Manager
# URI is a module providing classes to handle Uniform Resource Identifiers
# ([RFC2396](http://tools.ietf.org/html/rfc2396)).
#
# ## Features
#
# * Uniform way of handling URIs.
# * Flexibility to introduce custom URI schemes.
# * Flexibility to have an alternate URI::Parser (or just different patterns
# and regexp's).
#
#
# ## Basic example
#
# require 'uri'
#
# uri = URI("http://foo.com/posts?id=30&limit=5#time=1305298413")
# #=> #<URI::HTTP http://foo.com/posts?id=30&limit=5#time=1305298413>
#
# uri.scheme #=> "http"
# uri.host #=> "foo.com"
# uri.path #=> "/posts"
# uri.query #=> "id=30&limit=5"
# uri.fragment #=> "time=1305298413"
#
# uri.to_s #=> "http://foo.com/posts?id=30&limit=5#time=1305298413"
#
# ## Adding custom URIs
#
# module URI
# class RSYNC < Generic
# DEFAULT_PORT = 873
# end
# @@schemes['RSYNC'] = RSYNC
# end
# #=> URI::RSYNC
#
# URI.scheme_list
# #=> {"FILE"=>URI::File, "FTP"=>URI::FTP, "HTTP"=>URI::HTTP,
# # "HTTPS"=>URI::HTTPS, "LDAP"=>URI::LDAP, "LDAPS"=>URI::LDAPS,
# # "MAILTO"=>URI::MailTo, "RSYNC"=>URI::RSYNC}
#
# uri = URI("rsync://rsync.foo.com")
# #=> #<URI::RSYNC rsync://rsync.foo.com>
#
# ## RFC References
#
# A good place to view an RFC spec is http://www.ietf.org/rfc.html.
#
# Here is a list of all related RFC's:
# * [RFC822](http://tools.ietf.org/html/rfc822)
# * [RFC1738](http://tools.ietf.org/html/rfc1738)
# * [RFC2255](http://tools.ietf.org/html/rfc2255)
# * [RFC2368](http://tools.ietf.org/html/rfc2368)
# * [RFC2373](http://tools.ietf.org/html/rfc2373)
# * [RFC2396](http://tools.ietf.org/html/rfc2396)
# * [RFC2732](http://tools.ietf.org/html/rfc2732)
# * [RFC3986](http://tools.ietf.org/html/rfc3986)
#
#
# ## Class tree
#
# * URI::Generic (in uri/generic.rb)
# * URI::File - (in uri/file.rb)
# * URI::FTP - (in uri/ftp.rb)
# * URI::HTTP - (in uri/http.rb)
# * URI::HTTPS - (in uri/https.rb)
#
# * URI::LDAP - (in uri/ldap.rb)
# * URI::LDAPS - (in uri/ldaps.rb)
#
# * URI::MailTo - (in uri/mailto.rb)
#
# * URI::Parser - (in uri/common.rb)
# * URI::REGEXP - (in uri/common.rb)
# * URI::REGEXP::PATTERN - (in uri/common.rb)
#
# * URI::Util - (in uri/common.rb)
# * URI::Escape - (in uri/common.rb)
# * URI::Error - (in uri/common.rb)
# * URI::InvalidURIError - (in uri/common.rb)
# * URI::InvalidComponentError - (in uri/common.rb)
# * URI::BadURIError - (in uri/common.rb)
#
#
#
# ## Copyright Info
#
# Author
# : Akira Yamada <akira@ruby-lang.org>
# Documentation
# : Akira Yamada <akira@ruby-lang.org> Dmitry V. Sabanin <sdmitry@lrn.ru>
# Vincent Batts <vbatts@hashbangbash.com>
# License
# : Copyright (c) 2001 akira yamada <akira@ruby-lang.org> You can redistribute
# it and/or modify it under the same term as Ruby.
# Revision
# : $Id$
#
#
module URI
#
# LDAP URI SCHEMA (described in RFC2255).
# -
# ldap://<host>/<dn>[?<attrs>[?<scope>[?<filter>[?<extensions>]]]]
# +
class LDAP < Generic
# A Default port of 389 for URI::LDAP.
DEFAULT_PORT: Integer
# An Array of the available components for URI::LDAP.
COMPONENT: Array[Symbol]
# Scopes available for the starting point.
#
# * SCOPE_BASE - the Base DN
# * SCOPE_ONE - one level under the Base DN, not including the base DN and
# not including any entries under this
# * SCOPE_SUB - subtrees, all entries at all levels
#
SCOPE: Array[String]
#
# == Description
#
# Creates a new URI::LDAP object from components, with syntax checking.
#
# The components accepted are host, port, dn, attributes,
# scope, filter, and extensions.
#
# The components should be provided either as an Array, or as a Hash
# with keys formed by preceding the component names with a colon.
#
# If an Array is used, the components must be passed in the
# order <code>[host, port, dn, attributes, scope, filter, extensions]</code>.
#
# Example:
#
# uri = URI::LDAP.build({:host => 'ldap.example.com',
# :dn => '/dc=example'})
#
# uri = URI::LDAP.build(["ldap.example.com", nil,
# "/dc=example;dc=com", "query", nil, nil, nil])
#
def self.build: (Array[nil | String | Integer] args) -> URI::LDAP
| ({ host: String, port: Integer?, dn: String, attributes: String?, scope: String?, filter: String?, extensions: String? }) -> URI::LDAP
#
# == Description
#
# Creates a new URI::LDAP object from generic URI components as per
# RFC 2396. No LDAP-specific syntax checking is performed.
#
# Arguments are +scheme+, +userinfo+, +host+, +port+, +registry+, +path+,
# +opaque+, +query+, and +fragment+, in that order.
#
# Example:
#
# uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil, nil,
# "/dc=example;dc=com", nil, "query", nil)
#
# See also URI::Generic.new.
#
def initialize: (String schema, String? userinfo, String host, Integer? port, String? registry, String? path, String? opaque, String query, String? fragment) -> URI::LDAP
# Private method to cleanup +dn+ from using the +path+ component attribute.
def parse_dn: () -> nil
# Private method to cleanup +attributes+, +scope+, +filter+, and +extensions+
# from using the +query+ component attribute.
def parse_query: () -> nil
# Private method to assemble +query+ from +attributes+, +scope+, +filter+, and +extensions+.
def build_path_query: () -> String
# Returns dn.
def dn: () -> String
# Private setter for dn +val+.
def set_dn: (String val) -> String
# Setter for dn +val+.
def dn=: (String val) -> String
# Returns attributes.
def attributes: () -> String
# Private setter for attributes +val+.
def set_attributes: (String val) -> String
# Setter for attributes +val+.
def attributes=: (String val) -> String
# Returns scope.
def scope: () -> String
# Private setter for scope +val+.
def set_scope: (String val) -> String
# Setter for scope +val+.
def scope=: (String val) -> String
# Returns filter.
def filter: () -> String
# Private setter for filter +val+.
def set_filter: (String val) -> String
# Setter for filter +val+.
def filter=: (String val) -> String
# Returns extensions.
def extensions: () -> untyped
# Private setter for extensions +val+.
def set_extensions: (String val) -> String
# Setter for extensions +val+.
def extensions=: (String val) -> String
# Checks if URI has a path.
# For URI::LDAP this will return +false+.
def hierarchical?: () -> ::FalseClass
end
end
File Manager Version 1.0, Coded By Lucas
Email: hehe@yahoo.com