Class: URI::LDAP
| Relationships & Source Files | |
| Extension / Inclusion / Inheritance Descendants | |
| Subclasses: | |
| Super Chains via Extension / Inclusion / Inheritance | |
| Class Chain: 
          self,
          Generic
         | |
| Instance Chain: | |
| Inherits: | URI::Generic 
 | 
| Defined in: | lib/uri/ldap.rb | 
Overview
LDAP URI SCHEMA (described in RFC2255) dn,
  :attributes,
  :scope,
  :filter,
  :extensions,
].freeze
  
  
A Default port of 389 for LDAP
389
  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
::URI - Included
DEFAULT_PARSER, Parser, REGEXP, RFC3986_PARSER
Generic - Inherited
Class Method Summary
- 
    
      .build(args)  
    
    Description. 
- 
    
      .new(*arg)  ⇒ LDAP 
    
    constructor
    Description. 
Generic - Inherited
| .build | Synopsis. | 
| .build2 | Synopsis. | 
| .component | Components of the ::URI in the order. | 
| .default_port | Returns default port. | 
| .new | Args. | 
Instance Attribute Summary
- 
    
      #attributes  
    
    rw
    returns attributes. 
- 
    
      #attributes=(val)  
    
    rw
    setter for attributes val
- 
    
      #dn  
    
    rw
    returns dn. 
- 
    
      #dn=(val)  
    
    rw
    setter for dn val
- 
    
      #extensions  
    
    rw
    returns extensions. 
- 
    
      #extensions=(val)  
    
    rw
    setter for extensions val
- 
    
      #filter  
    
    rw
    returns filter. 
- 
    
      #filter=(val)  
    
    rw
    setter for filter val
- 
    
      #scope  
    
    rw
    returns scope. 
- 
    
      #scope=(val)  
    
    rw
    setter for scope val
- 
    
      #hierarchical?  ⇒ Boolean 
    
    readonly
    Checks if ::URI has a path For LDAPthis will returnfalse
Generic - Inherited
| #fragment | returns the fragment component of the ::URI. | 
| #fragment= | check the fragment  | 
| #host | returns the host component of the ::URI. | 
| #host= | Args. | 
| #hostname | extract the host part of the ::URI and unwrap brackets for IPv6 addresses. | 
| #hostname= | set the host part of the ::URI as the argument with brackets for IPv6 addresses. | 
| #opaque | returns the opaque part of the ::URI. | 
| #opaque= | Args. | 
| #password | returns the password component. | 
| #password= | Args. | 
| #path | returns the path component of the ::URI. | 
| #path= | Args. | 
| #port | returns the port component of the ::URI. | 
| #port= | Args. | 
| #query | returns the query component of the ::URI. | 
| #query= | Args. | 
| #registry=, | |
| #scheme | returns the scheme component of the ::URI. | 
| #scheme= | Args. | 
| #user | returns the user component. | 
| #user= | Args. | 
| #userinfo | returns the userinfo, either as 'user' or 'user:password'. | 
| #userinfo= | Sets userinfo, argument is string like 'name:pass'. | 
| #absolute | Alias for Generic#absolute?. | 
| #hierarchical? | Checks if ::URI has a path. | 
| #relative? | Checks if ::URI is relative. | 
Instance Method Summary
- 
    
      #set_attributes(val)  
    
    protected
    private setter for attributes val
- 
    
      #set_dn(val)  
    
    protected
    private setter for dn val
- 
    
      #set_extensions(val)  
    
    protected
    private setter for extensions val
- 
    
      #set_filter(val)  
    
    protected
    private setter for filter val
- 
    
      #set_scope(val)  
    
    protected
    private setter for scope val
- 
    
      #build_path_query  
    
    private
    private method to assemble queryfrom #attributes, #scope, #filter and #extensions.
- 
    
      #parse_dn  
    
    private
    private method to cleanup #dn from using the pathcomponent attribute.
- 
    
      #parse_query  
    
    private
    private method to cleanup #attributes, #scope, #filter and #extensions, from using the querycomponent attribute.
Generic - Inherited
| #+ | Alias for Generic#merge. | 
| #- | Alias for Generic#route_from. | 
| #== | Compares to URI's. | 
| #absolute? | Checks if ::URI is an absolute one. | 
| #coerce | Args. | 
| #component | Components of the ::URI in the order. | 
| #default_port | Returns default port. | 
| #eql?, | |
| #find_proxy | returns a proxy ::URI. | 
| #hash, #inspect, | |
| #merge | Args. | 
| #merge! | Args. | 
| #normalize | Returns normalized ::URI. | 
| #normalize! | Destructive version of  | 
| #parser | returns the parser to be used. | 
| #route_from | Args. | 
| #route_to | Args. | 
| #select | Args. | 
| #to_s | Constructs String from ::URI. | 
| #component_ary | returns an Array of the components defined from the COMPONENT Array. | 
| #set_host | protected setter for the host component  | 
| #set_opaque | protected setter for the opaque component  | 
| #set_password | protected setter for the password component  | 
| #set_path | protected setter for the path component  | 
| #set_port | protected setter for the port component  | 
| #set_scheme | protected setter for the scheme component  | 
| #set_user | protected setter for the user component  | 
| #set_userinfo | protect setter for the  | 
| #check_host | check the host  | 
| #check_opaque | check the opaque  | 
| #check_password | check the password  | 
| #check_path | check the path  | 
| #check_port | check the port  | 
| #check_scheme | check the scheme  | 
| #check_user | check the user  | 
| #check_userinfo | check the  | 
| #escape_userpass | escapes 'user:password'  | 
| #merge_path | Merges a base path  | 
| #replace! | replace self by other ::URI object. | 
| #route_from0, | |
| #split_path | returns an Array of the path split on '/'. | 
| #split_userinfo | returns the userinfo  | 
Constructor Details
    .new(*arg)  ⇒ LDAP 
  
Description
Create a new 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 Generic.new
# 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
Class Method Details
.build(args)
Description
Create a new 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])# 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
Instance Attribute Details
#attributes (rw)
returns attributes.
# File 'lib/uri/ldap.rb', line 178
def attributes @attributes end
#attributes=(val) (rw)
setter for attributes val
# File 'lib/uri/ldap.rb', line 191
def attributes=(val) set_attributes(val) val end
#dn (rw)
returns dn.
# File 'lib/uri/ldap.rb', line 159
def dn @dn end
#dn=(val) (rw)
setter for dn val
# File 'lib/uri/ldap.rb', line 172
def dn=(val) set_dn(val) val end
#extensions (rw)
returns extensions.
# File 'lib/uri/ldap.rb', line 235
def extensions @extensions end
#extensions=(val) (rw)
setter for extensions val
# File 'lib/uri/ldap.rb', line 248
def extensions=(val) set_extensions(val) val end
#filter (rw)
returns filter.
# File 'lib/uri/ldap.rb', line 216
def filter @filter end
#filter=(val) (rw)
setter for filter val
# File 'lib/uri/ldap.rb', line 229
def filter=(val) set_filter(val) val end
    #hierarchical?  ⇒ Boolean  (readonly)
  
Checks if ::URI has a path For LDAP this will return false
# File 'lib/uri/ldap.rb', line 255
def hierarchical? false end
#scope (rw)
returns scope.
# File 'lib/uri/ldap.rb', line 197
def scope @scope end
#scope=(val) (rw)
setter for scope val
# File 'lib/uri/ldap.rb', line 210
def scope=(val) set_scope(val) val end
Instance Method Details
#build_path_query (private)
private method to assemble query from #attributes, #scope, #filter and #extensions.
# 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
#parse_dn (private)
private method to cleanup #dn from using the path component attribute
# File 'lib/uri/ldap.rb', line 121
def parse_dn @dn = @path[1..-1] end
#parse_query (private)
private method to cleanup #attributes, #scope, #filter and #extensions, from using the query 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
#set_attributes(val) (protected)
private setter for attributes val
# File 'lib/uri/ldap.rb', line 183
def set_attributes(val) @attributes = val build_path_query @attributes end
#set_dn(val) (protected)
private setter for dn val
# File 'lib/uri/ldap.rb', line 164
def set_dn(val) @dn = val build_path_query @dn end
#set_extensions(val) (protected)
private setter for extensions val
# File 'lib/uri/ldap.rb', line 240
def set_extensions(val) @extensions = val build_path_query @extensions end
#set_filter(val) (protected)
private setter for filter val
# File 'lib/uri/ldap.rb', line 221
def set_filter(val) @filter = val build_path_query @filter end
#set_scope(val) (protected)
private setter for scope val
# File 'lib/uri/ldap.rb', line 202
def set_scope(val) @scope = val build_path_query @scope end