Class: URI::LDAP
Overview
LDAP URI SCHEMA (described in RFC2255) ldap://<host>/<dn>[?<attrs>[?<scope>[?<filter>]]]
Direct Known Subclasses
Constant Summary collapse
- DEFAULT_PORT =
A Default port of 389 for URI::LDAP
389
- COMPONENT =
An Array of the available components for URI::LDAP
[ :scheme, :host, :port, :dn, :attributes, :scope, :filter, :extensions, ].freeze
- SCOPE =
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 - subtress, all entries at all levels
-
[ SCOPE_ONE = 'one', SCOPE_SUB = 'sub', SCOPE_BASE = 'base', ].freeze
Constants inherited from Generic
Constants included from URI
DEFAULT_PARSER, HTML5ASCIIINCOMPAT, Parser, REGEXP, RFC3986_PARSER, TBLDECWWWCOMP_, TBLENCWWWCOMP_, VERSION, VERSION_CODE
Instance Attribute Summary
Attributes inherited from Generic
#fragment, #host, #opaque, #path, #port, #query, #scheme
Class Method Summary collapse
-
.build(args) ⇒ Object
Description.
Instance Method Summary collapse
-
#attributes ⇒ Object
returns attributes.
-
#attributes=(val) ⇒ Object
setter for attributes
val
. -
#dn ⇒ Object
returns dn.
-
#dn=(val) ⇒ Object
setter for dn
val
. -
#extensions ⇒ Object
returns extensions.
-
#extensions=(val) ⇒ Object
setter for extensions
val
. -
#filter ⇒ Object
returns filter.
-
#filter=(val) ⇒ Object
setter for filter
val
. -
#hierarchical? ⇒ Boolean
Checks if URI has a path For URI::LDAP this will return
false
. -
#initialize(*arg) ⇒ LDAP
constructor
Description.
-
#scope ⇒ Object
returns scope.
-
#scope=(val) ⇒ Object
setter for scope
val
.
Methods inherited from Generic
#==, #absolute?, build2, #coerce, component, #component, #default_port, default_port, #eql?, #find_proxy, #hash, #hostname, #hostname=, #inspect, #merge, #merge!, #normalize, #normalize!, #parser, #password, #password=, #registry, #registry=, #relative?, #route_from, #route_to, #select, #to_s, use_registry, #user, #user=, #userinfo, #userinfo=
Methods included from URI
decode_www_form, decode_www_form_component, encode_www_form, encode_www_form_component, extract, join, parse, regexp, scheme_list, split
Methods included from Escape
Constructor Details
#initialize(*arg) ⇒ LDAP
Description
Create 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,
"/dc=example;dc=com", "query", nil, nil, nil, nil)
See also URI::Generic.new
108 109 110 111 112 113 114 115 116 117 |
# File 'lib/uri/ldap.rb', line 108 def initialize(*arg) super(*arg) if @fragment raise InvalidURIError, 'bad LDAP URL' end parse_dn parse_query end |
Class Method Details
.build(args) ⇒ Object
Description
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:
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])
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 |
# File 'lib/uri/ldap.rb', line 73 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 |
Instance Method Details
#attributes ⇒ Object
returns attributes.
177 178 179 |
# File 'lib/uri/ldap.rb', line 177 def attributes @attributes end |
#attributes=(val) ⇒ Object
setter for attributes val
190 191 192 193 |
# File 'lib/uri/ldap.rb', line 190 def attributes=(val) set_attributes(val) val end |
#dn ⇒ Object
returns dn.
158 159 160 |
# File 'lib/uri/ldap.rb', line 158 def dn @dn end |
#dn=(val) ⇒ Object
setter for dn val
171 172 173 174 |
# File 'lib/uri/ldap.rb', line 171 def dn=(val) set_dn(val) val end |
#extensions ⇒ Object
returns extensions.
234 235 236 |
# File 'lib/uri/ldap.rb', line 234 def extensions @extensions end |
#extensions=(val) ⇒ Object
setter for extensions val
247 248 249 250 |
# File 'lib/uri/ldap.rb', line 247 def extensions=(val) set_extensions(val) val end |
#filter ⇒ Object
returns filter.
215 216 217 |
# File 'lib/uri/ldap.rb', line 215 def filter @filter end |
#filter=(val) ⇒ Object
setter for filter val
228 229 230 231 |
# File 'lib/uri/ldap.rb', line 228 def filter=(val) set_filter(val) val end |
#hierarchical? ⇒ Boolean
Checks if URI has a path For URI::LDAP this will return false
254 255 256 |
# File 'lib/uri/ldap.rb', line 254 def hierarchical? false end |
#scope ⇒ Object
returns scope.
196 197 198 |
# File 'lib/uri/ldap.rb', line 196 def scope @scope end |
#scope=(val) ⇒ Object
setter for scope val
209 210 211 212 |
# File 'lib/uri/ldap.rb', line 209 def scope=(val) set_scope(val) val end |