class URI::LDAP
常量
公共类方法
源代码
# 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::build
源代码
# 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::new
公共实例方法
源代码
# File lib/uri/ldap.rb, line 191 def attributes=(val) set_attributes(val) val end
attributes 的 setter,值为 val
。
源代码
# File lib/uri/ldap.rb, line 248 def extensions=(val) set_extensions(val) val end
extensions 的 setter,值为 val
。
源代码
# File lib/uri/ldap.rb, line 229 def filter=(val) set_filter(val) val end
filter 的 setter,值为 val
。
源代码
源代码
# File lib/uri/ldap.rb, line 210 def scope=(val) set_scope(val) val end
scope 的 setter,值为 val
。
受保护的实例方法
源代码
# File lib/uri/ldap.rb, line 183 def set_attributes(val) @attributes = val build_path_query @attributes end
attributes 的私有 setter,值为 val
。
源代码
# File lib/uri/ldap.rb, line 164 def set_dn(val) @dn = val build_path_query @dn end
dn 的私有 setter,值为 val
。
源代码
# File lib/uri/ldap.rb, line 240 def set_extensions(val) @extensions = val build_path_query @extensions end
extensions 的私有 setter,值为 val
。
源代码
# File lib/uri/ldap.rb, line 221 def set_filter(val) @filter = val build_path_query @filter end
filter 的私有 setter,值为 val
。
源代码
# File lib/uri/ldap.rb, line 202 def set_scope(val) @scope = val build_path_query @scope end
scope 的私有 setter,值为 val
。
私有实例方法
源代码
# 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
的私有方法。
源代码
# File lib/uri/ldap.rb, line 120 def parse_dn raise InvalidURIError, 'bad LDAP URL' unless @path @dn = @path[1..-1] end
从使用 path
组件属性清理 dn
的私有方法。
源代码
# 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
从使用 query
组件属性清理 attributes
、scope
、filter
和 extensions
的私有方法。