非常教程

Ruby 2.4参考手册

URI

URI::LDAP

Parent:URI::Generic

LDAP URI SCHEMA(在RFC2255中描述)

常量

COMPONENT

URI::LDAP的可用组件的数组

DEFAULT_PORT

URI::LDAP的默认端口为389

SCOPE

可用于起点的范围。

  • SCOPE_BASE - the Base DN
  • SCOPE_ONE - 基本DN下的一个级别,不包括基本DN和

不包括此项下的任何条目。

  • SCOPE_SUB - 子级,所有级别的所有条目

公共类别方法

build(args) Show source

描述

从组件创建一个新的URI::LDAP对象,并进行语法检查。

接受的组件是主机,端口,dn,属性,范围,过滤器和扩展。

这些组件应该以数组的形式提供,或者以组件名称前面用冒号形成的哈希形式提供。

如果使用数组,则必须按照host,port,dn,attributes,scope,filter,extensions的顺序传递组件。

示例:

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])

调用超类方法URI::Generic.build

# 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

new(*arg) Show source

描述

按照RFC 2396从通用URI组件创建一个新的URI::LDAP对象。不执行特定于LDAP的语法检查。

参数是schemeuserinfohostportregistrypathopaquequeryfragment按此顺序。

示例:

uri = URI::LDAP.new("ldap", nil, "ldap.example.com", nil,
  "/dc=example;dc=com", "query", nil, nil, nil, 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() Show source

返回属性。

# File lib/uri/ldap.rb, line 177
def attributes
  @attributes
end

attributes=(val) Show source

setter属性 val

# File lib/uri/ldap.rb, line 190
def attributes=(val)
  set_attributes(val)
  val
end

dn() Show source

返回dn。

# File lib/uri/ldap.rb, line 158
def dn
  @dn
end

dn=(val) Show source

为dn设置 val

# File lib/uri/ldap.rb, line 171
def dn=(val)
  set_dn(val)
  val
end

extensions() Show source

返回扩展名。

# File lib/uri/ldap.rb, line 234
def extensions
  @extensions
end

extensions=(val) Show source

setter用于扩展 val

# File lib/uri/ldap.rb, line 247
def extensions=(val)
  set_extensions(val)
  val
end

filter() Show source

返回过滤器。

# File lib/uri/ldap.rb, line 215
def filter
  @filter
end

filter=(val) Show source

设置为过滤器 val

# File lib/uri/ldap.rb, line 228
def filter=(val)
  set_filter(val)
  val
end

hierarchical?() Show source

检查URI是否有路径对于URI::LDAP,这将返回 false

# File lib/uri/ldap.rb, line 254
def hierarchical?
  false
end

scope() Show source

返回范围。

# File lib/uri/ldap.rb, line 196
def scope
  @scope
end

scope=(val) Show source

范围val的setter

# File lib/uri/ldap.rb, line 209
def scope=(val)
  set_scope(val)
  val
end

受保护的实例方法

set_attributes(val) Show source

私人二传手属性 val

# File lib/uri/ldap.rb, line 182
def set_attributes(val)
  @attributes = val
  build_path_query
  @attributes
end

set_dn(val) Show source

dnval私人二传手

# File lib/uri/ldap.rb, line 163
def set_dn(val)
  @dn = val
  build_path_query
  @dn
end

set_extensions(val) Show source

私人二传手 val

# File lib/uri/ldap.rb, line 239
def set_extensions(val)
  @extensions = val
  build_path_query
  @extensions
end

set_filter(val) Show source

私人二传手过滤器 val

# File lib/uri/ldap.rb, line 220
def set_filter(val)
  @filter = val
  build_path_query
  @filter
end

set_scope(val) Show source

范围私人二传手 val

# File lib/uri/ldap.rb, line 201
def set_scope(val)
  @scope = val
  build_path_query
  @scope
end

私有实例方法

build_path_query() Show source

私有方法组装queryattributesscopefilterextensions

# File lib/uri/ldap.rb, line 145
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() Show source

dn使用path组件属性进行清理的私有方法

# File lib/uri/ldap.rb, line 120
def parse_dn
  @dn = @path[1..-1]
end

parse_query() Show source

私有方法清理attributesscopefilterextensions,从使用该query部件属性

# File lib/uri/ldap.rb, line 127
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

Ruby 2.4

Ruby 是一种面向对象、命令式、函数式、动态的通用编程语言,是世界上最优美而巧妙的语言。

主页 https://www.ruby-lang.org/
源码 https://github.com/ruby/ruby
版本 2.4
发布版本 2.4.1

Ruby 2.4目录

1.缩略 | Abbrev
2.ARGF
3.数组 | Array
4.Base64
5.基本对象 | BasicObject
6.基准测试 | Benchmark
7.BigDecimal
8.绑定 | Binding
9.CGI
10.类 | Class
11.比较 | Comparable
12.负责 | Complex
13.计算续体 | Continuation
14.覆盖 | Coverage
15.CSV
16.日期 | Date
17.日期时间 | DateTime
18.DBM
19.代理 | Delegator
20.摘要 | Digest
21.Dir
22.DRb
23.编码 | Encoding
24.枚举 | Enumerable
25.枚举 | Enumerator
26.ENV
27.ERB
28.错误 | Errors
29.Etc
30.期望值 | Exception
31.错误类 | FalseClass
32.Fiber
33.Fiddle
34.文件 | File
35.文件实用程序 | FileUtils
36.查找 | Find
37.浮点 | Float
38.Forwardable
39.GC
40.GDBM
41.GetoptLong
42.Hash
43.Integer
44.IO
45.IPAddr
46.JSON
47.Kernel
48.语言 | 3Language
49.记录 | Logger
50.编排 | Marshal
51.MatchData
52.数学 | Math
53.矩阵 | Matrix
54.方法 | Method
55.模型 | Module
56.监控 | Monitor
57. 互斥 | Mutex
58.Net
59.Net::FTP
60.Net::HTTP
61.Net::IMAP
62.Net::SMTP
63.NilClass
64.数字 | Numeric
65.对象 | Object
66.ObjectSpace
67.Observable
68.Open3
69.OpenSSL
70.OpenStruct
71.OpenURI
72.OptionParser
73.路径名 | Pathname
74.完整输出 | PrettyPrint
75.Prime
76.Proc
77.过程 | Process
78.PStore
79.PTY
80.队列 | Queue
81.随机 | Random
82.范围 | Range
83.合理的 | Rational
84.Readline
85.Regexp
86.Resolv
87.Ripper
88.RubyVM
89.Scanf
90.SDBM
91.SecureRandom
92.Set
93.Shell
94.信号 | Signal
95.Singleton
96.套接字 | Socket
97.字符串 | String
98.StringIO
99.StringScanner
100.结构 | Struct