ruby-ldap 0.9.19 → 0.9.20

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
- ---
2
- SHA512:
3
- metadata.gz: fbdef63d5618e4f8a8500c7afff630ba9622436f23ef7b5a7e16717d44aaf175f6932e90ca95afc8c5a5e2ff4e1a028a8e1e8ca4909260a9f563d8e33b42dc1e
4
- data.tar.gz: 337ea5de70b3d724077e34700510f7c18f6bf574bdfa099c73507368a6883164ff25eecfa43cdc67c8340ad04229d1c2ec8fe1ea48ac7a7a0e60e9f0a300881a
5
- SHA1:
6
- metadata.gz: d7de5be007d5104fd3cfd75aeaee5170c5f8c5b4
7
- data.tar.gz: e0fcbbcfce4ec9a65a213550e6c7228eafd27b2b
1
+ ---
2
+ SHA1:
3
+ metadata.gz: d5badae0624830b9ac31009f196e4ed1887ec6fe
4
+ data.tar.gz: 2fc2844279fa77ca3fe2bfadd73c65a3bceff6eb
5
+ SHA512:
6
+ metadata.gz: e4f59c4377592ddc1dac85e2292fb2930003e4c759c877f5b8ffe4c25f85911a0c61b10fcc041dfc5756e063ee75e3bc38dfa0899da9e3e317a55bdb49223238
7
+ data.tar.gz: cc58c3fc9734d0fd52c5b6bbc7aa7c22ffa335bc9e6d7a562bbe24eab8f48e4572fe0e32dbbbc2898323004ff9e925be488eea5291dcdadaa97a7a161c4035d0
data/ChangeLog CHANGED
@@ -1,3 +1,7 @@
1
+ Wed Jul 11 21:58:38 UTC 2018 Alexey Chebotar <alexey.chebotar@gmail.com>
2
+ * Version 0.9.20
3
+ * Added support of LDAP_OPT_X_TLS_NEWCTX. Thanks to Kouhei Sutou.
4
+
1
5
  Mon Jun 20 14:30:52 UTC 2016 Alexey Chebotar <alexey.chebotar@gmail.com>
2
6
  * Version 0.9.19
3
7
  * Fixed parsing of LDIF with CR LF line separators (GH-38).
data/NOTES CHANGED
@@ -1,3 +1,9 @@
1
+ 0.9.20
2
+ -----
3
+ * Added support of LDAP_OPT_X_TLS_NEWCTX.
4
+ Thanks to Kouhei Sutou.
5
+
6
+
1
7
  0.9.19
2
8
  -----
3
9
  * Fixed parsing of LDIF with CR LF line separators (GH-38).
data/conn.c CHANGED
@@ -502,6 +502,9 @@ rb_ldap_conn_set_option (VALUE self, VALUE opt, VALUE data)
502
502
  #ifdef LDAP_OPT_X_TLS_REQUIRE_CERT
503
503
  case LDAP_OPT_X_TLS_REQUIRE_CERT:
504
504
  #endif
505
+ #ifdef LDAP_OPT_X_TLS_NEWCTX
506
+ case LDAP_OPT_X_TLS_NEWCTX:
507
+ #endif
505
508
  #endif
506
509
  idata = NUM2INT (data);
507
510
  optdata = &idata;
data/ldap.c CHANGED
@@ -496,6 +496,9 @@ Init_ldap ()
496
496
  #ifdef LDAP_OPT_X_TLS_RANDOM_FILE
497
497
  rb_ldap_define_opt (LDAP_OPT_X_TLS_RANDOM_FILE);
498
498
  #endif
499
+ #ifdef LDAP_OPT_X_TLS_NEWCTX
500
+ rb_ldap_define_opt (LDAP_OPT_X_TLS_NEWCTX);
501
+ #endif
499
502
  #ifdef LDAP_OPT_X_TLS_NEVER
500
503
  rb_ldap_define_opt (LDAP_OPT_X_TLS_NEVER);
501
504
  #endif
data/rbldap.h CHANGED
@@ -27,8 +27,8 @@
27
27
 
28
28
  #define RB_LDAP_MAJOR_VERSION 0
29
29
  #define RB_LDAP_MINOR_VERSION 9
30
- #define RB_LDAP_PATCH_VERSION 19
31
- #define RB_LDAP_VERSION "0.9.19"
30
+ #define RB_LDAP_PATCH_VERSION 20
31
+ #define RB_LDAP_VERSION "0.9.20"
32
32
 
33
33
  #define LDAP_GET_OPT_MAX_BUFFER_SIZE (1024) /* >= sizeof(LDAPAPIInfo) */
34
34
 
@@ -11,7 +11,7 @@ when /^OpenLDAP/i
11
11
  conn = LDAP::SSLConn.new($HOST, $SSLPORT, false)
12
12
  when /^Netscape/i
13
13
  conn = LDAP::SSLConn.new($HOST, $SSLPORT,
14
- false, File.expand_path("~/.netscape/cert7.db"))
14
+ false, File.expand_path("~/.netscape/cert7.db"))
15
15
  conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
16
16
  else
17
17
  raise(RuntimeError, "unknown vendor")
@@ -11,7 +11,7 @@ when /^OpenLDAP/i
11
11
  conn = LDAP::SSLConn.new($HOST, $PORT, true)
12
12
  when /^Netscape/i
13
13
  conn = LDAP::SSLConn.new($HOST, $SSLPORT,
14
- false, File.expand_path("~/.netscape/cert7.db"))
14
+ false, File.expand_path("~/.netscape/cert7.db"))
15
15
  conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
16
16
  else
17
17
  raise(RuntimeError, "unknown vendor")
@@ -20,7 +20,7 @@ conn.bind{
20
20
  info = nil
21
21
  end
22
22
  print("host = #{host}, proto = #{proto}\n",
23
- "info.protocol_version = #{info.protocol_version}\n")
23
+ "info.protocol_version = #{info.protocol_version}\n")
24
24
  end
25
25
  }
26
26
 
@@ -9,7 +9,7 @@ LDAP::Conn.new($HOST, $PORT).bind{|conn|
9
9
  conn.perror("bind")
10
10
  begin
11
11
  conn.compare("cn=Takaaki Tateishi, dc=localhost, dc=localdomain",
12
- "cn", "Takaaki Tateishi")
12
+ "cn", "Takaaki Tateishi")
13
13
  rescue LDAP::ResultError
14
14
  exit(0)
15
15
  end
@@ -11,9 +11,9 @@ conn.bind('cn=root, dc=localhost, dc=localdomain','secret'){
11
11
  begin
12
12
  (1..200).each{|i|
13
13
  entry = {
14
- 'objectclass' => ['top', 'person'],
15
- 'cn' => ["User #{i}"],
16
- 'sn' => ["user#{i}"],
14
+ 'objectclass' => ['top', 'person'],
15
+ 'cn' => ["User #{i}"],
16
+ 'sn' => ["user#{i}"],
17
17
  }
18
18
  conn.add("cn=User #{i}, dc=localhost, dc=localdomain", entry)
19
19
  }
@@ -30,12 +30,12 @@ conn.bind('cn=root, dc=localhost, dc=localdomain','secret'){
30
30
  users = []
31
31
  begin
32
32
  conn.search_ext("dc=localhost, dc=localdomain",
33
- LDAP::LDAP_SCOPE_SUBTREE,
34
- "(&(objectclass=*)(cn=User*))",
35
- nil, false, # attrs, attrsonly
36
- nil, nil, # serverctrls, clientctrls
37
- 0, 0, # sec, usec
38
- 100){|e| # sizelimit
33
+ LDAP::LDAP_SCOPE_SUBTREE,
34
+ "(&(objectclass=*)(cn=User*))",
35
+ nil, false, # attrs, attrsonly
36
+ nil, nil, # serverctrls, clientctrls
37
+ 0, 0, # sec, usec
38
+ 100){|e| # sizelimit
39
39
  users.push(e.vals("sn"))
40
40
  }
41
41
  rescue LDAP::ResultError
@@ -14,8 +14,8 @@ rescue LDAP::ResultError => e
14
14
  conn.bind('cn=root, dc=localhost, dc=localdomain','secret'){
15
15
  conn.perror("bind")
16
16
  conn.modrdn("cn=Takaaki Tateishi, dc=localhost, dc=localdomain",
17
- "cn=Takaaki-Tateishi",
18
- true)
17
+ "cn=Takaaki-Tateishi",
18
+ true)
19
19
  conn.perror("modrdn")
20
20
  }
21
21
  exit(0)
@@ -6,8 +6,8 @@ require 'optparse'
6
6
  require 'pp'
7
7
 
8
8
  options = {
9
- :host => 'localhost',
10
- :port => '389',
9
+ :host => 'localhost',
10
+ :port => '389',
11
11
  :scope => 'base',
12
12
  :filter => '(objectclass=*)',
13
13
  :key_pw => ''
@@ -15,44 +15,44 @@ options = {
15
15
 
16
16
  optparse = OptionParser.new do |opts|
17
17
  opts.on("-P", "--certpath [CERTFILE]", "cert8 path") do |cp|
18
- options[:cp] = cp
18
+ options[:cp] = cp
19
19
  end
20
20
 
21
21
  opts.on("-N", "--certname [CERTNAME]", "certificate name") do |opt|
22
- options[:cn] = opt
22
+ options[:cn] = opt
23
23
  end
24
24
 
25
25
  opts.on("-W", "--keypassword PASSWORD", "key password") do |opt|
26
- options[:key_pw] = opt
26
+ options[:key_pw] = opt
27
27
  end
28
28
 
29
29
  opts.on("-h", "--host HOST", "server hostname") do |host|
30
- options[:host] = host
30
+ options[:host] = host
31
31
  end
32
32
 
33
33
  opts.on("-p", "--port PORT", "server port") do |opt|
34
- options[:port] = opt
34
+ options[:port] = opt
35
35
  end
36
36
 
37
37
  opts.on("-b", "--base [BASE]", "search base") do |opt|
38
- options[:base] = opt
38
+ options[:base] = opt
39
39
  end
40
40
 
41
41
  opts.on("-s", "--scope SCOPE", "search scope") do |opt|
42
- options[:scope] = opt
42
+ options[:scope] = opt
43
43
  end
44
44
 
45
45
  opts.on("-f", "--filter FILTER", "search filter") do |opt|
46
- options[:filter] = opt
46
+ options[:filter] = opt
47
47
  end
48
48
 
49
49
  opts.on("-a", "--attributes ATTRS", "attrs to return") do |opt|
50
- options[:attrs] = opt.split(/ *, */)
50
+ options[:attrs] = opt.split(/ *, */)
51
51
  end
52
52
 
53
53
  opts.on("--help") do |opt|
54
- puts opts
55
- exit 0
54
+ puts opts
55
+ exit 0
56
56
  end
57
57
  end
58
58
 
@@ -80,7 +80,7 @@ raise ArgumentError.new("cert file's missing") unless (File.exists? options[:cp]
80
80
 
81
81
  # Connect
82
82
  conn = LDAP::SSLAuthConn.new(options[:host], options[:port].to_i, true,
83
- File.expand_path(options[:cp]), options[:cn], options[:key_pw])
83
+ File.expand_path(options[:cp]), options[:cn], options[:key_pw])
84
84
  conn.set_option(LDAP::LDAP_OPT_PROTOCOL_VERSION, 3)
85
85
 
86
86
 
@@ -93,7 +93,7 @@ begin
93
93
 
94
94
  results = {}
95
95
  conn.search(options[:base], options[:scope], options[:filter], options[:attrs], false, 10) do |entry|
96
- results[entry.dn] = entry.to_hash
96
+ results[entry.dn] = entry.to_hash
97
97
  end
98
98
 
99
99
  pp results
@@ -9,8 +9,8 @@ LDAP::Conn.new($HOST, $PORT).bind{|conn|
9
9
  conn.perror("bind")
10
10
  begin
11
11
  conn.search("dc=localhost, dc=localdomain",
12
- LDAP::LDAP_SCOPE_SUBTREE,
13
- "(objectclass=*)"){|e|
12
+ LDAP::LDAP_SCOPE_SUBTREE,
13
+ "(objectclass=*)"){|e|
14
14
  p e.vals("cn")
15
15
  p e.to_hash()
16
16
  }
@@ -14,7 +14,7 @@ LDAP::Conn.new($HOST, $PORT).bind{|conn|
14
14
  conn.perror("bind")
15
15
  sub = nil
16
16
  conn.search("dc=localhost, dc=localdomain", LDAP::LDAP_SCOPE_SUBTREE,
17
- "(objectclass=*)", nil, false, 0, 0, "sn", sorter){|e|
17
+ "(objectclass=*)", nil, false, 0, 0, "sn", sorter){|e|
18
18
  dn = e.dn
19
19
  print("# #{LDAP.dn2ufn(dn)}\n")
20
20
  print("dn: #{dn}\n")
@@ -29,6 +29,6 @@ LDAP::Conn.new($HOST, $PORT).bind{|conn|
29
29
  sub.dn
30
30
  rescue LDAP::InvalidEntryError => e
31
31
  $stderr.print("#{e.to_s}.\n",
32
- "This exception is expected.\n")
32
+ "This exception is expected.\n")
33
33
  end
34
34
  }
@@ -13,7 +13,7 @@ conn.bind{
13
13
  # search2 returns an array of hash
14
14
  print("search2 without a block:\n")
15
15
  conn.search2("dc=localhost, dc=localdomain", LDAP::LDAP_SCOPE_SUBTREE,
16
- "(objectclass=*)", nil, false, 0, 0).each{|ent|
16
+ "(objectclass=*)", nil, false, 0, 0).each{|ent|
17
17
  ent.each{|attr,vals|
18
18
  print("#{attr}: #{vals.join(', ')}\n")
19
19
  }
@@ -18,9 +18,9 @@ class TC_LDAPTest < Test::Unit::TestCase
18
18
  if line =~ /^host\s+(\S+)$/
19
19
  @@host = $1
20
20
  break
21
- elsif line =~ /^base\s+(\S+)$/
22
- @@base = $1
23
- break
21
+ elsif line =~ /^base\s+(\S+)$/
22
+ @@base = $1
23
+ break
24
24
  end
25
25
  end
26
26
  end
@@ -120,5 +120,4 @@ class TC_ConnectionTest < TC_LDAPTest
120
120
  @@conn = nil
121
121
  end
122
122
 
123
-
124
123
  end
@@ -86,7 +86,7 @@ class TC_LDIFTest < Test::Unit::TestCase
86
86
  ldif = File.open( 'data/ldif12.txt' ) { |f| f.readlines }
87
87
  entry = LDAP::LDIF.parse_entry( ldif )
88
88
  assert( entry.mods.keys.include?( LDAP::LDAP_MOD_REPLACE |
89
- LDAP::LDAP_MOD_BVALUES ) )
89
+ LDAP::LDAP_MOD_BVALUES ) )
90
90
  end
91
91
 
92
92
  def test_change_record_control
@@ -109,9 +109,9 @@ class TC_LDIFTest < Test::Unit::TestCase
109
109
 
110
110
  def test_mod_to_ldif
111
111
  mod = LDAP.mod( LDAP::LDAP_MOD_ADD | LDAP::LDAP_MOD_BVALUES,
112
- 'mailRoutingAddress', ['a', 'b'] )
112
+ 'mailRoutingAddress', ['a', 'b'] )
113
113
  assert_instance_of( LDAP::LDIF::Mod,
114
- mod.to_ldif( 'uid=foo,dc=example,dc=com' ) )
114
+ mod.to_ldif( 'uid=foo,dc=example,dc=com' ) )
115
115
  assert_equal( <<LDIF, mod.to_ldif( 'uid=foo,dc=example,dc=com' ) )
116
116
  dn: uid=foo,dc=example,dc=com
117
117
  changetype: add
@@ -120,7 +120,7 @@ mailRoutingAddress: b
120
120
  LDIF
121
121
 
122
122
  mod = LDAP.mod( LDAP::LDAP_MOD_REPLACE | LDAP::LDAP_MOD_BVALUES,
123
- 'mailRoutingAddress', ['a', 'b'] )
123
+ 'mailRoutingAddress', ['a', 'b'] )
124
124
  assert_equal( <<LDIF, mod.to_ldif( 'uid=foo,dc=example,dc=com' ) )
125
125
  dn: uid=foo,dc=example,dc=com
126
126
  changetype: modify
@@ -16,17 +16,17 @@ class TC_SearchTest < TC_LDAPTest
16
16
  def test_attrs
17
17
  assert_raise( TypeError ) do
18
18
  @@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
19
- '(objectClass=*)', false )
19
+ '(objectClass=*)', false )
20
20
  end
21
21
 
22
22
  @@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
23
- '(objectClass=*)', [], true ) do |x|
23
+ '(objectClass=*)', [], true ) do |x|
24
24
  assert_nil( x['objectClass'] )
25
25
  break
26
26
  end
27
27
 
28
28
  @@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
29
- '(objectClass=*)', 'objectClass' ) do |x|
29
+ '(objectClass=*)', 'objectClass' ) do |x|
30
30
  x = x.to_hash
31
31
  x.delete( 'dn' )
32
32
  assert( x.to_hash.keys == [ 'objectClass' ] )
@@ -39,14 +39,14 @@ class TC_SearchTest < TC_LDAPTest
39
39
  def test_sort_attr
40
40
  ou = []
41
41
  @@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
42
- '(ou=*)' ) do |x|
42
+ '(ou=*)' ) do |x|
43
43
  ou << x['ou']
44
44
  end
45
45
  ou.flatten!
46
46
 
47
47
  sorted_ou = []
48
48
  @@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
49
- '(ou=*)', nil, nil, 0, 0, 'ou' ) do |x|
49
+ '(ou=*)', nil, nil, 0, 0, 'ou' ) do |x|
50
50
  sorted_ou << x['ou']
51
51
  end
52
52
  sorted_ou.flatten!
@@ -60,7 +60,7 @@ class TC_SearchTest < TC_LDAPTest
60
60
  def test_sort_proc
61
61
  ct = []
62
62
  @@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
63
- '(objectClass=*)', [ 'createTimestamp' ] ) do |x|
63
+ '(objectClass=*)', [ 'createTimestamp' ] ) do |x|
64
64
  ct << x['createTimestamp']
65
65
  end
66
66
  ct.flatten!
@@ -68,8 +68,8 @@ class TC_SearchTest < TC_LDAPTest
68
68
  sorted_ct = []
69
69
  s_proc = proc { |a,b| b <=> a }
70
70
  @@conn.search( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
71
- '(objectClass=*)', [ 'createTimestamp' ], nil, 0, 0,
72
- 'createTimestamp', s_proc ) do |x|
71
+ '(objectClass=*)', [ 'createTimestamp' ], nil, 0, 0,
72
+ 'createTimestamp', s_proc ) do |x|
73
73
  sorted_ct << x['createTimestamp']
74
74
  end
75
75
  sorted_ct.flatten!
@@ -88,20 +88,20 @@ class TC_SearchTest < TC_LDAPTest
88
88
  loop do
89
89
  ber_string = LDAP::Control.encode( page_size, cookie )
90
90
  ctrl = LDAP::Control.new( LDAP::LDAP_CONTROL_PAGEDRESULTS,
91
- ber_string,
92
- true )
91
+ ber_string,
92
+ true )
93
93
  @@conn.set_option( LDAP::LDAP_OPT_SERVER_CONTROLS, [ ctrl ] )
94
94
 
95
95
  this_page = nil
96
96
  assert_nothing_raised do
97
- begin
97
+ begin
98
98
  this_page = @@conn.search2( @@naming_context,
99
- LDAP::LDAP_SCOPE_ONELEVEL,
100
- '(objectclass=*)' )
101
- rescue LDAP::ResultError
102
- @@conn = nil
103
- raise
104
- end
99
+ LDAP::LDAP_SCOPE_ONELEVEL,
100
+ '(objectclass=*)' )
101
+ rescue LDAP::ResultError
102
+ @@conn = nil
103
+ raise
104
+ end
105
105
  end
106
106
  total += this_page.size
107
107
  assert_equal( page_size, this_page.size )
@@ -126,7 +126,7 @@ class TC_SearchTest < TC_LDAPTest
126
126
  setup
127
127
 
128
128
  unpaged = @@conn.search2( @@naming_context, LDAP::LDAP_SCOPE_ONELEVEL,
129
- '(objectclass=*)' )
129
+ '(objectclass=*)' )
130
130
 
131
131
  # Does the total number of results match the equivalent unpaged search?
132
132
  # This has a race condition, but we assume the number of top-level OUs is
metadata CHANGED
@@ -1,38 +1,45 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: ruby-ldap
3
- version: !ruby/object:Gem::Version
4
- version: 0.9.19
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.20
5
5
  platform: ruby
6
- authors:
6
+ authors:
7
7
  - Alexey Chebotar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
-
12
- date: 2016-06-20 00:00:00 Z
11
+ date: 2018-07-11 00:00:00.000000000 Z
13
12
  dependencies: []
13
+ description: 'It provides the interface to some LDAP libraries (e.g. OpenLDAP, Netscape
14
+ SDK and Active Directory). The common API for application development is described
15
+ in RFC1823 and is supported by Ruby/LDAP.
14
16
 
15
- description: |
16
- It provides the interface to some LDAP libraries (e.g. OpenLDAP, Netscape SDK and Active Directory). The common API for application development is described in RFC1823 and is supported by Ruby/LDAP.
17
-
17
+ '
18
18
  email: alexey.chebotar@gmail.com
19
19
  executables: []
20
-
21
- extensions:
20
+ extensions:
22
21
  - extconf.rb
23
22
  extra_rdoc_files: []
24
-
25
- files:
26
- - ChangeLog
23
+ files:
27
24
  - COPYING
25
+ - ChangeLog
28
26
  - FAQ
29
27
  - NOTES
30
28
  - README
31
29
  - TODO
30
+ - clientauth.c
31
+ - conn.c
32
+ - entry.c
32
33
  - extconf.rb
34
+ - ldap.c
33
35
  - lib/ldap/control.rb
34
36
  - lib/ldap/ldif.rb
35
37
  - lib/ldap/schema.rb
38
+ - misc.c
39
+ - mod.c
40
+ - rbldap.h
41
+ - saslconn.c
42
+ - sslconn.c
36
43
  - test/add.rb
37
44
  - test/add2.rb
38
45
  - test/add3.rb
@@ -58,55 +65,30 @@ files:
58
65
  - test/tc_schema.rb
59
66
  - test/tc_search.rb
60
67
  - test/ts_ldap.rb
61
- - rbldap.h
62
- - test/openldap_tests/progs/slapd-common.h
63
68
  - win/winlber.h
64
69
  - win/winldap.h
65
- - clientauth.c
66
- - conn.c
67
- - entry.c
68
- - ldap.c
69
- - misc.c
70
- - mod.c
71
- - saslconn.c
72
- - sslconn.c
73
- - test/openldap_tests/progs/ldif-filter.c
74
- - test/openldap_tests/progs/slapd-addel.c
75
- - test/openldap_tests/progs/slapd-auth.c
76
- - test/openldap_tests/progs/slapd-bind.c
77
- - test/openldap_tests/progs/slapd-common.c
78
- - test/openldap_tests/progs/slapd-modify.c
79
- - test/openldap_tests/progs/slapd-modrdn.c
80
- - test/openldap_tests/progs/slapd-mtread.c
81
- - test/openldap_tests/progs/slapd-read.c
82
- - test/openldap_tests/progs/slapd-search.c
83
- - test/openldap_tests/progs/slapd-tester.c
84
70
  - win/wldap32.def
85
71
  homepage: http://ruby-ldap.sourceforge.net/
86
72
  licenses: []
87
-
88
73
  metadata: {}
89
-
90
74
  post_install_message:
91
75
  rdoc_options: []
92
-
93
- require_paths:
76
+ require_paths:
94
77
  - lib
95
- required_ruby_version: !ruby/object:Gem::Requirement
96
- requirements:
97
- - &id001
98
- - ">="
99
- - !ruby/object:Gem::Version
100
- version: "0"
101
- required_rubygems_version: !ruby/object:Gem::Requirement
102
- requirements:
103
- - *id001
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ required_rubygems_version: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
104
88
  requirements: []
105
-
106
89
  rubyforge_project: ruby-ldap
107
- rubygems_version: 2.0.17
90
+ rubygems_version: 2.6.14
108
91
  signing_key:
109
92
  specification_version: 4
110
93
  summary: Ruby/LDAP is an extension module for Ruby
111
94
  test_files: []
112
-