類別 URI::LDAP
常數
公開類別方法
build(args) 按一下以切換來源
說明¶ ↑
從元件建立新的 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 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
new(*arg) 按一下以切換來源
說明¶ ↑
根據 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 108 def initialize(*arg) super(*arg) if @fragment raise InvalidURIError, 'bad LDAP URL' end parse_dn parse_query end
公開實例方法
attributes() 按一下以切換來源
傳回屬性。
# File lib/uri/ldap.rb, line 178 def attributes @attributes end
attributes=(val) 按一下以切換來源
設定值 val
的屬性。
# File lib/uri/ldap.rb, line 191 def attributes=(val) set_attributes(val) val end
dn() 按一下以切換來源
傳回 dn。
# File lib/uri/ldap.rb, line 159 def dn @dn end
dn=(val) 按一下以切換來源
設定值 val
的 dn。
# File lib/uri/ldap.rb, line 172 def dn=(val) set_dn(val) val end
extensions() 按一下以切換來源
傳回擴充功能。
# File lib/uri/ldap.rb, line 235 def extensions @extensions end
extensions=(val) 按一下以切換來源
設定值 val
的擴充功能。
# File lib/uri/ldap.rb, line 248 def extensions=(val) set_extensions(val) val end
filter() 按一下以切換來源
傳回篩選器。
# File lib/uri/ldap.rb, line 216 def filter @filter end
filter=(val) 按一下以切換來源
設定值 val
的篩選器。
# File lib/uri/ldap.rb, line 229 def filter=(val) set_filter(val) val end
hierarchical?() 按一下以切換來源
scope() 按一下以切換來源
傳回範圍。
# File lib/uri/ldap.rb, line 197 def scope @scope end
scope=(val) 按一下以切換來源
設定值 val
的範圍。
# File lib/uri/ldap.rb, line 210 def scope=(val) set_scope(val) val end
受保護實例方法
set_attributes(val) 按一下以切換來源
設定值 val
的私有設定值。
# File lib/uri/ldap.rb, line 183 def set_attributes(val) @attributes = val build_path_query @attributes end
set_dn(val) 按一下以切換來源
設定值 val
的私有設定值。
# File lib/uri/ldap.rb, line 164 def set_dn(val) @dn = val build_path_query @dn end
set_extensions(val) 按一下以切換來源
設定值 val
的私有設定值。
# File lib/uri/ldap.rb, line 240 def set_extensions(val) @extensions = val build_path_query @extensions end
set_filter(val) 按一下以切換來源
設定值 val
的私有設定值。
# File lib/uri/ldap.rb, line 221 def set_filter(val) @filter = val build_path_query @filter end
set_scope(val) 按一下以切換來源
val
範圍的私有設定器。
# File lib/uri/ldap.rb, line 202 def set_scope(val) @scope = val build_path_query @scope end
私有實例方法
build_path_query() 按一下以切換來源
從 attributes
、scope
、filter
和 extensions
組合 query
的私有方法。
# 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() 按一下以切換來源
從使用 path
組件屬性的 dn
清理的私有方法。
# File lib/uri/ldap.rb, line 120 def parse_dn raise InvalidURIError, 'bad LDAP URL' unless @path @dn = @path[1..-1] end
parse_query() 按一下以切換來源
從使用 query
組件屬性的 attributes
、scope
、filter
和 extensions
清理的私有方法。
# 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