class URI::LDAP
LDAP URI SCHEMA (described in RFC2255) An Array of the available components for URI::LDAP A Default port of 389 for URI::LDAP 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 SCOPE_SUB - subtress, all entries at all levels Create 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 [host, port, dn, attributes, scope, filter, extensions]. Example: Create a new URI::LDAP object from generic URI components as per RFC 2396. No LDAP-specific syntax checking is performed. Arguments are Example: See also URI::Generic.new returns attributes. setter for attributes returns dn. setter for dn returns extensions. setter for extensions returns filter. setter for filter returns scope. setter for scope private setter for attributes private setter for dn private setter for extensions private setter for filter private setter for scope private method to assemble private method to cleanup private method to cleanup Constants
not including any entries under this.
Public Class Methods
# File lib/uri/ldap.rb, line 74
def self.build(args)
tmp = Util::make_components_hash(self, args)
if tmp[:dn]
tmp[:path] = tmp[:dn]
end
query = []
[:extensions, :filter, :scope, :attributes].collect do |x|
next if !tmp[x] && query.size == 0
query.unshift(tmp[x])
end
tmp[:query] = query.join('?')
return super(tmp)
end
Description
newuri = URI::LDAP.build({:host => 'ldap.example.com',
:dn> => '/dc=example'})
newuri = URI::LDAP.build(["ldap.example.com", nil,
"/dc=example;dc=com", "query", nil, nil, nil])
# File lib/uri/ldap.rb, line 109
def initialize(*arg)
super(*arg)
if @fragment
raise InvalidURIError, 'bad LDAP URL'
end
parse_dn
parse_query
end
Description
scheme
, userinfo
, host
, port
, registry
, path
, opaque
, query
and fragment
, in that order.uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil,
"/dc=example;dc=com", "query", nil, nil, nil, nil)
Public Instance Methods
# File lib/uri/ldap.rb, line 178
def attributes
@attributes
end
# File lib/uri/ldap.rb, line 191
def attributes=(val)
set_attributes(val)
val
end
val
# File lib/uri/ldap.rb, line 159
def dn
@dn
end
# File lib/uri/ldap.rb, line 172
def dn=(val)
set_dn(val)
val
end
val
# File lib/uri/ldap.rb, line 235
def extensions
@extensions
end
# File lib/uri/ldap.rb, line 248
def extensions=(val)
set_extensions(val)
val
end
val
# File lib/uri/ldap.rb, line 216
def filter
@filter
end
# File lib/uri/ldap.rb, line 229
def filter=(val)
set_filter(val)
val
end
val
# File lib/uri/ldap.rb, line 197
def scope
@scope
end
# File lib/uri/ldap.rb, line 210
def scope=(val)
set_scope(val)
val
end
val
Protected Instance Methods
# File lib/uri/ldap.rb, line 183
def set_attributes(val)
@attributes = val
build_path_query
@attributes
end
val
# File lib/uri/ldap.rb, line 164
def set_dn(val)
@dn = val
build_path_query
@dn
end
val
# File lib/uri/ldap.rb, line 240
def set_extensions(val)
@extensions = val
build_path_query
@extensions
end
val
# File lib/uri/ldap.rb, line 221
def set_filter(val)
@filter = val
build_path_query
@filter
end
val
# File lib/uri/ldap.rb, line 202
def set_scope(val)
@scope = val
build_path_query
@scope
end
val
Private Instance Methods
# File lib/uri/ldap.rb, line 146
def build_path_query
@path = '/' + @dn
query = []
[@extensions, @filter, @scope, @attributes].each do |x|
next if !x && query.size == 0
query.unshift(x)
end
@query = query.join('?')
end
query
from attributes
, scope
, filter
and extensions
.# File lib/uri/ldap.rb, line 121
def parse_dn
@dn = @path[1..-1]
end
dn
from using the path
component attribute# File lib/uri/ldap.rb, line 128
def parse_query
@attributes = nil
@scope = nil
@filter = nil
@extensions = nil
if @query
attrs, scope, filter, extensions = @query.split('?')
@attributes = attrs if attrs && attrs.size > 0
@scope = scope if scope && scope.size > 0
@filter = filter if filter && filter.size > 0
@extensions = extensions if extensions && extensions.size > 0
end
end
attributes
, scope
, filter
and extensions
, from using the query
component attribute
Ruby Core © 1993–2017 Yukihiro Matsumoto
Licensed under the Ruby License.
Ruby Standard Library © contributors
Licensed under their own licenses.