treequel 1.11.0 → 1.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. checksums.yaml +5 -5
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/ChangeLog +135 -12
  5. data/{History.rdoc → History.md} +46 -34
  6. data/Manifest.txt +6 -5
  7. data/{README.rdoc → README.md} +58 -44
  8. data/Rakefile +40 -18
  9. data/examples/ldap-rack-auth.rb +1 -1
  10. data/examples/ldap_state.rb +5 -5
  11. data/lib/treequel.rb +10 -9
  12. data/lib/treequel/behavior/control.rb +7 -8
  13. data/lib/treequel/branch.rb +29 -28
  14. data/lib/treequel/branchcollection.rb +8 -7
  15. data/lib/treequel/branchset.rb +22 -21
  16. data/lib/treequel/constants.rb +23 -24
  17. data/lib/treequel/control.rb +15 -15
  18. data/lib/treequel/controls/contentsync.rb +17 -16
  19. data/lib/treequel/controls/pagedresults.rb +13 -12
  20. data/lib/treequel/controls/sortedresults.rb +11 -10
  21. data/lib/treequel/directory.rb +35 -34
  22. data/lib/treequel/exceptions.rb +2 -1
  23. data/lib/treequel/filter.rb +10 -9
  24. data/lib/treequel/mixins.rb +4 -4
  25. data/lib/treequel/model.rb +23 -13
  26. data/lib/treequel/model/errors.rb +10 -9
  27. data/lib/treequel/model/objectclass.rb +9 -8
  28. data/lib/treequel/model/schemavalidations.rb +5 -4
  29. data/lib/treequel/monkeypatches.rb +5 -4
  30. data/lib/treequel/schema.rb +19 -18
  31. data/lib/treequel/schema/attributetype.rb +9 -8
  32. data/lib/treequel/schema/ldapsyntax.rb +2 -1
  33. data/lib/treequel/schema/matchingrule.rb +2 -1
  34. data/lib/treequel/schema/matchingruleuse.rb +2 -1
  35. data/lib/treequel/schema/objectclass.rb +23 -22
  36. data/lib/treequel/schema/table.rb +3 -2
  37. data/lib/treequel/sequel_integration.rb +2 -1
  38. data/lib/treequel/utils.rb +183 -0
  39. data/misc/ruby-ldap-controlsfix.patch +50 -0
  40. data/spec/{lib/constants.rb → spec_constants.rb} +7 -6
  41. data/spec/{lib/helpers.rb → spec_helpers.rb} +31 -53
  42. data/spec/treequel/branch_spec.rb +196 -223
  43. data/spec/treequel/branchcollection_spec.rb +73 -113
  44. data/spec/treequel/branchset_spec.rb +102 -161
  45. data/spec/treequel/control_spec.rb +5 -21
  46. data/spec/treequel/controls/contentsync_spec.rb +3 -17
  47. data/spec/treequel/controls/pagedresults_spec.rb +40 -62
  48. data/spec/treequel/controls/sortedresults_spec.rb +37 -59
  49. data/spec/treequel/directory_spec.rb +171 -190
  50. data/spec/treequel/filter_spec.rb +106 -131
  51. data/spec/treequel/mixins_spec.rb +47 -81
  52. data/spec/treequel/model/errors_spec.rb +11 -35
  53. data/spec/treequel/model/objectclass_spec.rb +99 -131
  54. data/spec/treequel/model/schemavalidations_spec.rb +36 -60
  55. data/spec/treequel/model_spec.rb +164 -167
  56. data/spec/treequel/monkeypatches_spec.rb +20 -41
  57. data/spec/treequel/schema/attributetype_spec.rb +84 -107
  58. data/spec/treequel/schema/ldapsyntax_spec.rb +10 -36
  59. data/spec/treequel/schema/matchingrule_spec.rb +23 -47
  60. data/spec/treequel/schema/matchingruleuse_spec.rb +18 -42
  61. data/spec/treequel/schema/objectclass_spec.rb +73 -94
  62. data/spec/treequel/schema/table_spec.rb +58 -86
  63. data/spec/treequel/schema_spec.rb +47 -59
  64. data/spec/treequel_spec.rb +131 -156
  65. metadata +68 -42
  66. metadata.gz.sig +0 -0
  67. data/spec/lib/matchers.rb +0 -55
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treequel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.11.0
4
+ version: 1.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Granger
@@ -11,27 +11,32 @@ bindir: bin
11
11
  cert_chain:
12
12
  - |
13
13
  -----BEGIN CERTIFICATE-----
14
- MIIDbDCCAlSgAwIBAgIBATANBgkqhkiG9w0BAQUFADA+MQ8wDQYDVQQDDAZtYWhs
15
- b24xFzAVBgoJkiaJk/IsZAEZFgdtYXJ0aW5pMRIwEAYKCZImiZPyLGQBGRYCbnUw
16
- HhcNMTYwNjI5MjMzMzI2WhcNMTcwNjI5MjMzMzI2WjA+MQ8wDQYDVQQDDAZtYWhs
17
- b24xFzAVBgoJkiaJk/IsZAEZFgdtYXJ0aW5pMRIwEAYKCZImiZPyLGQBGRYCbnUw
18
- ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDpXGN0YbMVpYv4EoiCxpQw
19
- sxKdyhlkvpvENUkpEhbpnEuMKXgUfRHO4T/vBZf0h8eYgwnrHCRhAeIqesFKfoj9
20
- mpEJk5JUuADOAz18aT+v24UqAtJdiwBJLuqhslSNB6CFXZv3OOMny9bjoJegz0hI
21
- Fht9ppCuNmxJNd+L3zAX8lD01RUWNRC+8L5QLCjViJtjFDDCFfh9NCirs+XnTCzo
22
- AJgFbsZIzFJtSiXUtFgscKr4Ik8ruhRbPbYbmx9rf6W74aTMPxggq/d3gj0Eh32y
23
- WsXsQ5giVnmkbsRkBNu3QyZ8Xr5+7mvy5AWyqXKOrcW7lnYaob6Z9x/MGXGNeD6j
24
- AgMBAAGjdTBzMAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRY8ea6
25
- +6kAaW7ukKph2/4MTAD8/TAcBgNVHREEFTATgRFtYWhsb25AbWFydGluaS5udTAc
26
- BgNVHRIEFTATgRFtYWhsb25AbWFydGluaS5udTANBgkqhkiG9w0BAQUFAAOCAQEA
27
- EU39m2ZKYqAAu71bwjWl5zEAk0aE4ojMLIMWpWE6IwCr9FZVpC1B+LyEboWFljId
28
- R0udISkfM+kQ3FRzmnwwQLaYJyhDPEWbQ1O6P6wHCaUQ23A1P++dZf8PWuZkS6Dn
29
- C1q7Zq4EAZEBLUSK69iPP4jCLjIp3YBQ88D1/egA+hkrR/19m236PvhhaM9FTgQv
30
- LtL61M3ZtlTanoXiNbXRXwRnODzvjFpQRiiBiazCDBYj8oYDsNj+qNw/iZlZlzw5
31
- F6uYXeS4YCZP453ZcpgZkXo3F5RheTrkdf04DMwUpQPMKog9QmRSTlCxzH69kivQ
32
- IfRp+58YwWwtAIQPZoY6Rg==
14
+ MIIEbDCCAtSgAwIBAgIBATANBgkqhkiG9w0BAQsFADA+MQwwCgYDVQQDDANnZWQx
15
+ GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
16
+ HhcNMTYwODIwMTgxNzQyWhcNMTcwODIwMTgxNzQyWjA+MQwwCgYDVQQDDANnZWQx
17
+ GTAXBgoJkiaJk/IsZAEZFglGYWVyaWVNVUQxEzARBgoJkiaJk/IsZAEZFgNvcmcw
18
+ ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQC/JWGRHO+USzR97vXjkFgt
19
+ 83qeNf2KHkcvrRTSnR64i6um/ziin0I0oX23H7VYrDJC9A/uoUa5nGRJS5Zw/+wW
20
+ ENcvWVZS4iUzi4dsYJGY6yEOsXh2CcF46+QevV8iE+UmbkU75V7Dy1JCaUOyizEt
21
+ TH5UHsOtUU7k9TYARt/TgYZKuaoAMZZd5qyVqhF1vV+7/Qzmp89NGflXf2xYP26a
22
+ 4MAX2qqKX/FKXqmFO+AGsbwYTEds1mksBF3fGsFgsQWxftG8GfZQ9+Cyu2+l1eOw
23
+ cZ+lPcg834G9DrqW2zhqUoLr1MTly4pqxYGb7XoDhoR7dd1kFE2a067+DzWC/ADt
24
+ +QkcqWUm5oh1fN0eqr7NsZlVJDulFgdiiYPQiIN7UNsii4Wc9aZqBoGcYfBeQNPZ
25
+ soo/6za/bWajOKUmDhpqvaiRv9EDpVLzuj53uDoukMMwxCMfgb04+ckQ0t2G7wqc
26
+ /D+K9JW9DDs3Yjgv9k4h7YMhW5gftosd+NkNC/+Y2CkCAwEAAaN1MHMwCQYDVR0T
27
+ BAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFHKN/nkRusdqCJEuq3lgB3fJvyTg
28
+ MBwGA1UdEQQVMBOBEWdlZEBGYWVyaWVNVUQub3JnMBwGA1UdEgQVMBOBEWdlZEBG
29
+ YWVyaWVNVUQub3JnMA0GCSqGSIb3DQEBCwUAA4IBgQAPJzKiT0zBU7kpqe0aS2qb
30
+ FI0PJ4y5I8buU4IZGUD5NEt/N7pZNfOyBxkrZkXhS44Fp+xwBH5ebLbq/WY78Bqd
31
+ db0z6ZgW4LMYMpWFfbXsRbd9TU2f52L8oMAhxOvF7Of5qJMVWuFQ8FPagk2iHrdH
32
+ inYLQagqAF6goWTXgAJCdPd6SNeeSNqA6vlY7CV1Jh5kfNJJ6xu/CVij1GzCLu/5
33
+ DMOr26DBv+qLJRRC/2h34uX71q5QgeOyxvMg+7V3u/Q06DXyQ2VgeeqiwDFFpEH0
34
+ PFkdPO6ZqbTRcLfNH7mFgCBJjsfSjJrn0sPBlYyOXgCoByfZnZyrIMH/UY+lgQqS
35
+ 6Von1VDsfQm0eJh5zYZD64ZF86phSR7mUX3mXItwH04HrZwkWpvgd871DZVR3i1n
36
+ w8aNA5re5+Rt/Vvjxj5AcEnZnZiz5x959NaddQocX32Z1unHw44pzRNUur1GInfW
37
+ p4vpx2kUSFSAGjtCbDGTNV2AH8w9OU4xEmNz8c5lyoA=
33
38
  -----END CERTIFICATE-----
34
- date: 2016-06-29 00:00:00.000000000 Z
39
+ date: 2017-06-15 00:00:00.000000000 Z
35
40
  dependencies:
36
41
  - !ruby/object:Gem::Dependency
37
42
  name: ruby-ldap
@@ -40,6 +45,9 @@ dependencies:
40
45
  - - "~>"
41
46
  - !ruby/object:Gem::Version
42
47
  version: '0.9'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 0.9.19
43
51
  type: :runtime
44
52
  prerelease: false
45
53
  version_requirements: !ruby/object:Gem::Requirement
@@ -47,6 +55,9 @@ dependencies:
47
55
  - - "~>"
48
56
  - !ruby/object:Gem::Version
49
57
  version: '0.9'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 0.9.19
50
61
  - !ruby/object:Gem::Dependency
51
62
  name: loggability
52
63
  requirement: !ruby/object:Gem::Requirement
@@ -76,33 +87,33 @@ dependencies:
76
87
  - !ruby/object:Gem::Version
77
88
  version: '1.4'
78
89
  - !ruby/object:Gem::Dependency
79
- name: hoe-highline
90
+ name: hoe-deveiate
80
91
  requirement: !ruby/object:Gem::Requirement
81
92
  requirements:
82
93
  - - "~>"
83
94
  - !ruby/object:Gem::Version
84
- version: '0.2'
95
+ version: '0.9'
85
96
  type: :development
86
97
  prerelease: false
87
98
  version_requirements: !ruby/object:Gem::Requirement
88
99
  requirements:
89
100
  - - "~>"
90
101
  - !ruby/object:Gem::Version
91
- version: '0.2'
102
+ version: '0.9'
92
103
  - !ruby/object:Gem::Dependency
93
- name: rdoc
104
+ name: hoe-highline
94
105
  requirement: !ruby/object:Gem::Requirement
95
106
  requirements:
96
107
  - - "~>"
97
108
  - !ruby/object:Gem::Version
98
- version: '4.0'
109
+ version: '0.2'
99
110
  type: :development
100
111
  prerelease: false
101
112
  version_requirements: !ruby/object:Gem::Requirement
102
113
  requirements:
103
114
  - - "~>"
104
115
  - !ruby/object:Gem::Version
105
- version: '4.0'
116
+ version: '0.2'
106
117
  - !ruby/object:Gem::Dependency
107
118
  name: rspec
108
119
  requirement: !ruby/object:Gem::Requirement
@@ -131,43 +142,59 @@ dependencies:
131
142
  - - ">="
132
143
  - !ruby/object:Gem::Version
133
144
  version: '3.38'
145
+ - !ruby/object:Gem::Dependency
146
+ name: rdoc
147
+ requirement: !ruby/object:Gem::Requirement
148
+ requirements:
149
+ - - "~>"
150
+ - !ruby/object:Gem::Version
151
+ version: '4.0'
152
+ type: :development
153
+ prerelease: false
154
+ version_requirements: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - "~>"
157
+ - !ruby/object:Gem::Version
158
+ version: '4.0'
134
159
  - !ruby/object:Gem::Dependency
135
160
  name: hoe
136
161
  requirement: !ruby/object:Gem::Requirement
137
162
  requirements:
138
163
  - - "~>"
139
164
  - !ruby/object:Gem::Version
140
- version: '3.15'
165
+ version: '3.16'
141
166
  type: :development
142
167
  prerelease: false
143
168
  version_requirements: !ruby/object:Gem::Requirement
144
169
  requirements:
145
170
  - - "~>"
146
171
  - !ruby/object:Gem::Version
147
- version: '3.15'
172
+ version: '3.16'
148
173
  description: |-
149
174
  Treequel is an LDAP toolkit for Ruby. It is intended to allow quick, easy
150
175
  access to LDAP directories in a manner consistent with LDAP's hierarchical,
151
176
  free-form nature.
152
177
 
153
- It's inspired by and modeled after {Sequel}[http://sequel.rubyforge.org/], a
178
+ It's inspired by and modeled after [Sequel][sequel], a
154
179
  kick-ass database library.
180
+
181
+ For more information on how to use it, check out the [manual](manual/index_md.html).
155
182
  email:
156
183
  - ged@FaerieMUD.org
157
184
  - mahlon@martini.nu
158
185
  executables: []
159
186
  extensions: []
160
187
  extra_rdoc_files:
161
- - History.rdoc
188
+ - History.md
162
189
  - Manifest.txt
163
- - README.rdoc
190
+ - README.md
164
191
  files:
165
192
  - ".gemtest"
166
193
  - ChangeLog
167
- - History.rdoc
194
+ - History.md
168
195
  - LICENSE
169
196
  - Manifest.txt
170
- - README.rdoc
197
+ - README.md
171
198
  - Rakefile
172
199
  - examples/company-directory.rb
173
200
  - examples/ldap-rack-auth.rb
@@ -200,14 +227,15 @@ files:
200
227
  - lib/treequel/schema/objectclass.rb
201
228
  - lib/treequel/schema/table.rb
202
229
  - lib/treequel/sequel_integration.rb
230
+ - lib/treequel/utils.rb
231
+ - misc/ruby-ldap-controlsfix.patch
203
232
  - spec/data/ad_schema.yml
204
233
  - spec/data/objectClasses.yml
205
234
  - spec/data/opends.yml
206
235
  - spec/data/schema.yml
207
236
  - spec/data/ticket11.yml
208
- - spec/lib/constants.rb
209
- - spec/lib/helpers.rb
210
- - spec/lib/matchers.rb
237
+ - spec/spec_constants.rb
238
+ - spec/spec_helpers.rb
211
239
  - spec/treequel/branch_spec.rb
212
240
  - spec/treequel/branchcollection_spec.rb
213
241
  - spec/treequel/branchset_spec.rb
@@ -239,10 +267,8 @@ post_install_message: "---------------------------------------------------------
239
267
  The Treequel command-line tools are no longer distributed \nwith the Treequel gem;
240
268
  to get the tools, install the 'treequel-shell' \ngem. Thanks!\n------------------------------------------------------------------------"
241
269
  rdoc_options:
242
- - "-f"
243
- - fivefish
244
- - "-t"
245
- - Treequel
270
+ - "--main"
271
+ - README.md
246
272
  require_paths:
247
273
  - lib
248
274
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -257,7 +283,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
257
283
  version: '0'
258
284
  requirements: []
259
285
  rubyforge_project:
260
- rubygems_version: 2.5.1
286
+ rubygems_version: 2.6.12
261
287
  signing_key:
262
288
  specification_version: 4
263
289
  summary: Treequel is an LDAP toolkit for Ruby
metadata.gz.sig CHANGED
Binary file
@@ -1,55 +0,0 @@
1
- #!/usr/bin/ruby
2
- # coding: utf-8
3
-
4
- BEGIN {
5
- require 'pathname'
6
- basedir = Pathname.new( __FILE__ ).dirname.parent
7
-
8
- libdir = basedir + "lib"
9
-
10
- $LOAD_PATH.unshift( libdir.to_s ) unless $LOAD_PATH.include?( libdir.to_s )
11
- }
12
-
13
- require 'rspec'
14
-
15
- require 'yaml'
16
- require 'treequel'
17
-
18
- require 'spec/lib/constants'
19
-
20
- ### RSpec matchers
21
- module Treequel::Matchers
22
-
23
- ### A matcher for unordered array contents
24
- class ArrayIncludingMatcher
25
- def initialize( expected )
26
- @expected = expected
27
- end
28
-
29
- def ==( actual )
30
- @expected.each do |value|
31
- return false unless actual.include?( value )
32
- end
33
- true
34
- rescue NoMethodError => ex
35
- return false
36
- end
37
-
38
- def description
39
- "array_including(#{ @expected.inspect.sub(/^\[|\]$/,"") })"
40
- end
41
- end
42
-
43
-
44
- ###############
45
- module_function
46
- ###############
47
-
48
- ### Return true if the actual value includes the specified +objects+.
49
- def array_including( *objects )
50
- ArrayIncludingMatcher.new( objects )
51
- end
52
-
53
-
54
- end # module Treequel::Matchers
55
-