class URI::LDAP
Constants
Public Class Methods
Source
# 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
描述
使用组件创建一个新的 URI::LDAP 对象,并进行语法检查。
可接受的组件是 host、port、dn、attributes、scope、filter 和 extensions。
组件应以 Array 的形式提供,或者以 Hash 的形式提供,其中键通过在组件名称前加上冒号形成。
如果使用 Array,则必须按 [host, port, dn, attributes, scope, filter, extensions] 的顺序传递组件。
示例
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])
调用超类方法
URI::Generic::buildSource
# 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
描述
根据 RFC 2396 中的通用 URI 组件创建一个新的 URI::LDAP 对象。不执行特定于 LDAP 的语法检查。
参数按顺序为 scheme、userinfo、host、port、registry、path、opaque、query 和 fragment。
示例
uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil, nil, "/dc=example;dc=com", nil, "query", nil)
另请参阅 URI::Generic.new。
调用超类方法
URI::Generic::newPublic Instance Methods
Source
# File lib/uri/ldap.rb, line 191 def attributes=(val) set_attributes(val) val end
attributes val 的设置器。
Source
# File lib/uri/ldap.rb, line 248 def extensions=(val) set_extensions(val) val end
extensions val 的设置器。
Source
# File lib/uri/ldap.rb, line 229 def filter=(val) set_filter(val) val end
filter val 的设置器。
Source
# File lib/uri/ldap.rb, line 255 def hierarchical? false end
Source
# File lib/uri/ldap.rb, line 210 def scope=(val) set_scope(val) val end
scope val 的设置器。
Protected Instance Methods
Source
# File lib/uri/ldap.rb, line 183 def set_attributes(val) @attributes = val build_path_query @attributes end
attributes val 的私有设置器。
Source
# File lib/uri/ldap.rb, line 164 def set_dn(val) @dn = val build_path_query @dn end
dn val 的私有设置器。
Source
# File lib/uri/ldap.rb, line 240 def set_extensions(val) @extensions = val build_path_query @extensions end
extensions val 的私有设置器。
Source
# File lib/uri/ldap.rb, line 221 def set_filter(val) @filter = val build_path_query @filter end
filter val 的私有设置器。
Source
# File lib/uri/ldap.rb, line 202 def set_scope(val) @scope = val build_path_query @scope end
scope val 的私有设置器。
私有实例方法
Source
# 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
私有方法,用于从 attributes、scope、filter 和 extensions 组装 query。
Source
# File lib/uri/ldap.rb, line 120 def parse_dn raise InvalidURIError, 'bad LDAP URL' unless @path @dn = @path[1..-1] end
私有方法,用于清理 dn,使其不使用 path 组件属性。
Source
# 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 和 extensions,使其不使用 query 组件属性。