treequel 1.0.4 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (53) hide show
  1. data/ChangeLog +130 -1
  2. data/Rakefile +8 -3
  3. data/Rakefile.local +2 -0
  4. data/bin/treeirb +6 -2
  5. data/bin/treequel +5 -4
  6. data/lib/treequel/branch.rb +133 -72
  7. data/lib/treequel/branchcollection.rb +16 -5
  8. data/lib/treequel/branchset.rb +37 -6
  9. data/lib/treequel/constants.rb +12 -0
  10. data/lib/treequel/directory.rb +96 -41
  11. data/lib/treequel/filter.rb +42 -1
  12. data/lib/treequel/model/objectclass.rb +111 -0
  13. data/lib/treequel/model.rb +363 -0
  14. data/lib/treequel/monkeypatches.rb +65 -0
  15. data/lib/treequel/schema/attributetype.rb +108 -18
  16. data/lib/treequel/schema/ldapsyntax.rb +15 -0
  17. data/lib/treequel/schema/matchingrule.rb +24 -0
  18. data/lib/treequel/schema/matchingruleuse.rb +24 -0
  19. data/lib/treequel/schema/objectclass.rb +70 -5
  20. data/lib/treequel/schema/table.rb +5 -15
  21. data/lib/treequel/schema.rb +64 -1
  22. data/lib/treequel.rb +5 -5
  23. data/rake/documentation.rb +27 -0
  24. data/rake/hg.rb +14 -2
  25. data/rake/manual.rb +1 -1
  26. data/spec/lib/constants.rb +9 -7
  27. data/spec/lib/control_behavior.rb +1 -0
  28. data/spec/lib/matchers.rb +1 -0
  29. data/spec/treequel/branch_spec.rb +229 -20
  30. data/spec/treequel/branchcollection_spec.rb +73 -39
  31. data/spec/treequel/branchset_spec.rb +59 -8
  32. data/spec/treequel/control_spec.rb +1 -0
  33. data/spec/treequel/controls/contentsync_spec.rb +1 -0
  34. data/spec/treequel/controls/pagedresults_spec.rb +1 -0
  35. data/spec/treequel/controls/sortedresults_spec.rb +1 -0
  36. data/spec/treequel/directory_spec.rb +46 -10
  37. data/spec/treequel/filter_spec.rb +28 -5
  38. data/spec/treequel/mixins_spec.rb +7 -14
  39. data/spec/treequel/model/objectclass_spec.rb +330 -0
  40. data/spec/treequel/model_spec.rb +433 -0
  41. data/spec/treequel/monkeypatches_spec.rb +118 -0
  42. data/spec/treequel/schema/attributetype_spec.rb +116 -0
  43. data/spec/treequel/schema/ldapsyntax_spec.rb +8 -0
  44. data/spec/treequel/schema/matchingrule_spec.rb +6 -1
  45. data/spec/treequel/schema/matchingruleuse_spec.rb +5 -0
  46. data/spec/treequel/schema/objectclass_spec.rb +41 -3
  47. data/spec/treequel/schema/table_spec.rb +31 -18
  48. data/spec/treequel/schema_spec.rb +13 -16
  49. data/spec/treequel_spec.rb +22 -0
  50. data.tar.gz.sig +1 -0
  51. metadata +40 -7
  52. metadata.gz.sig +0 -0
  53. data/spec/treequel/utils_spec.rb +0 -49
@@ -6,6 +6,7 @@ BEGIN {
6
6
 
7
7
  libdir = basedir + "lib"
8
8
 
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
9
10
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
11
  }
11
12
 
@@ -58,6 +59,9 @@ describe Treequel::Schema::LDAPSyntax do
58
59
  @syntax.desc.should == 'Boolean'
59
60
  end
60
61
 
62
+ it "can remake its own schema description" do
63
+ @syntax.to_s.should == BOOLEAN_SYNTAX
64
+ end
61
65
  end
62
66
 
63
67
 
@@ -75,6 +79,10 @@ describe Treequel::Schema::LDAPSyntax do
75
79
  it "knows that it doesn't have a DESC attribute" do
76
80
  @syntax.desc.should be_nil()
77
81
  end
82
+
83
+ it "can remake its own schema description" do
84
+ @syntax.to_s.should == NODESC_SYNTAX
85
+ end
78
86
  end
79
87
 
80
88
  end
@@ -6,6 +6,7 @@ BEGIN {
6
6
 
7
7
  libdir = basedir + "lib"
8
8
 
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
9
10
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
11
  }
11
12
 
@@ -46,7 +47,8 @@ describe Treequel::Schema::MatchingRule do
46
47
 
47
48
  describe "parsed from the 'octetStringMatch' matchingRule" do
48
49
 
49
- OCTETSTRINGMATCH_RULE = %{( 2.5.13.17 NAME 'octetStringMatch' SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )}
50
+ OCTETSTRINGMATCH_RULE = %{( 2.5.13.17 NAME 'octetStringMatch' } +
51
+ %{SYNTAX 1.3.6.1.4.1.1466.115.121.1.40 )}
50
52
 
51
53
  before( :each ) do
52
54
  @rule = Treequel::Schema::MatchingRule.parse( @schema, OCTETSTRINGMATCH_RULE )
@@ -74,6 +76,9 @@ describe Treequel::Schema::MatchingRule do
74
76
  @rule.should_not be_obsolete()
75
77
  end
76
78
 
79
+ it "can remake its own schema description" do
80
+ @rule.to_s.should == OCTETSTRINGMATCH_RULE
81
+ end
77
82
  end
78
83
 
79
84
  describe "parsed from an matchingRule that has a DESC attribute" do
@@ -6,6 +6,7 @@ BEGIN {
6
6
 
7
7
  libdir = basedir + "lib"
8
8
 
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
9
10
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
11
  }
11
12
 
@@ -73,6 +74,10 @@ describe Treequel::Schema::MatchingRuleUse do
73
74
  and_return({ :uniqueMember => :a_attrtype_object })
74
75
  @ruleuse.attribute_types.should == [ :a_attrtype_object ]
75
76
  end
77
+
78
+ it "can remake its own schema description" do
79
+ @ruleuse.to_s.should == UNIQUE_MEMBER_MATCH_DESC
80
+ end
76
81
  end
77
82
 
78
83
 
@@ -6,6 +6,7 @@ BEGIN {
6
6
 
7
7
  libdir = basedir + "lib"
8
8
 
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
9
10
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
11
  }
11
12
 
@@ -53,7 +54,7 @@ describe Treequel::Schema::ObjectClass do
53
54
 
54
55
 
55
56
  before( :all ) do
56
- setup_logging( :debug )
57
+ setup_logging( :fatal )
57
58
  @datadir = Pathname( __FILE__ ).dirname.parent.parent + 'data'
58
59
  end
59
60
 
@@ -125,6 +126,9 @@ describe Treequel::Schema::ObjectClass do
125
126
  @oc.sup.should be_nil()
126
127
  end
127
128
 
129
+ it "can remake its own schema description" do
130
+ @oc.to_s.should == TOP_OBJECTCLASS
131
+ end
128
132
  end
129
133
 
130
134
 
@@ -180,6 +184,13 @@ describe Treequel::Schema::ObjectClass do
180
184
  :physicalDeliveryOfficeName, :ou, :st, :l )
181
185
  end
182
186
 
187
+ it "can remake its own schema description" do
188
+ @oc.to_s.should == ORGPERSON_OBJECTCLASS.squeeze(' ')
189
+ end
190
+
191
+ it "can fetch all of its ancestors" do
192
+ @oc.ancestors.should == @schema.object_classes.values_at( :orgPerson, :person, :top )
193
+ end
183
194
  end
184
195
 
185
196
 
@@ -195,11 +206,15 @@ describe Treequel::Schema::ObjectClass do
195
206
  @oc.should be_an_instance_of( Treequel::Schema::StructuralObjectClass )
196
207
  end
197
208
 
209
+ it "can remake its own schema description" do
210
+ # STRUCTURAL is implied...
211
+ @oc.to_s.sub( / STRUCTURAL/, '' ).should == KINDLESS_OBJECTCLASS
212
+ end
198
213
  end
199
214
 
200
215
  describe "parsed from an objectClass that has a list as the value of its NAME attribute" do
201
216
 
202
- MULTINAME_OBJECTCLASS = %{( 1.1.1.1 NAME ('firstname' 'secondname') )}
217
+ MULTINAME_OBJECTCLASS = %{( 1.1.1.1 NAME ( 'firstname' 'secondname' ) )}
203
218
 
204
219
  before( :each ) do
205
220
  @oc = Treequel::Schema::ObjectClass.parse( @schema, MULTINAME_OBJECTCLASS )
@@ -214,6 +229,10 @@ describe Treequel::Schema::ObjectClass do
214
229
  @oc.name.should == :firstname
215
230
  end
216
231
 
232
+ it "can remake its own schema description" do
233
+ # STRUCTURAL is implied...
234
+ @oc.to_s.sub( / STRUCTURAL/, '' ).should == MULTINAME_OBJECTCLASS
235
+ end
217
236
  end
218
237
 
219
238
  describe "parsed from an objectClass that has escaped characters in its DESC attribute" do
@@ -225,10 +244,14 @@ describe Treequel::Schema::ObjectClass do
225
244
  @oc = Treequel::Schema::ObjectClass.parse( @schema, ESCAPED_DESC_OBJECTCLASS )
226
245
  end
227
246
 
228
- it "unscapes the escaped characters" do
247
+ it "unescapes the escaped characters" do
229
248
  @oc.desc.should == %{This spec's example, which includes a \\ character.}
230
249
  end
231
250
 
251
+ it "can remake its own schema description" do
252
+ # STRUCTURAL is implied...
253
+ @oc.to_s.sub( / STRUCTURAL/, '' ).should == ESCAPED_DESC_OBJECTCLASS
254
+ end
232
255
  end
233
256
 
234
257
  describe "parsed from an objectClass that has the OBSOLETE attribute" do
@@ -243,6 +266,10 @@ describe Treequel::Schema::ObjectClass do
243
266
  @oc.should be_obsolete()
244
267
  end
245
268
 
269
+ it "can remake its own schema description" do
270
+ # STRUCTURAL is implied...
271
+ @oc.to_s.sub( / STRUCTURAL/, '' ).should == OBSOLETE_OBJECTCLASS
272
+ end
246
273
  end
247
274
 
248
275
  describe "parsed from an objectClass that has organizationalPerson as its SUP" do
@@ -250,6 +277,8 @@ describe Treequel::Schema::ObjectClass do
250
277
  SUB_OBJECTCLASS = %{( 1.1.1.1 SUP organizationalPerson )}
251
278
 
252
279
  before( :each ) do
280
+ @top = Treequel::Schema::ObjectClass.parse( @schema, TOP_OBJECTCLASS )
281
+ @op = Treequel::Schema::ObjectClass.parse( @schema, ORGPERSON_OBJECTCLASS )
253
282
  @oc = Treequel::Schema::ObjectClass.parse( @schema, SUB_OBJECTCLASS )
254
283
  end
255
284
 
@@ -259,6 +288,11 @@ describe Treequel::Schema::ObjectClass do
259
288
  @oc.sup.should == :organizationalPerson_objectclass
260
289
  end
261
290
 
291
+ it "can remake its own schema description" do
292
+ # STRUCTURAL is implied...
293
+ @oc.to_s.sub( / STRUCTURAL/, '' ).should == SUB_OBJECTCLASS
294
+ end
295
+
262
296
  end
263
297
 
264
298
  describe "parsed from an objectClass that has no explicit SUP" do
@@ -275,6 +309,10 @@ describe Treequel::Schema::ObjectClass do
275
309
  @oc.sup.should == :top_objectclass
276
310
  end
277
311
 
312
+ it "can remake its own schema description" do
313
+ # STRUCTURAL is implied...
314
+ @oc.to_s.sub( / STRUCTURAL/, '' ).should == ORPHAN_OBJECTCLASS
315
+ end
278
316
  end
279
317
 
280
318
  end
@@ -6,25 +6,18 @@ BEGIN {
6
6
 
7
7
  libdir = basedir + "lib"
8
8
 
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
9
10
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
11
  }
11
12
 
12
- begin
13
- require 'spec'
14
- require 'spec/lib/constants'
15
- require 'spec/lib/helpers'
16
-
17
- require 'yaml'
18
- require 'ldap'
19
- require 'ldap/schema'
20
- require 'treequel/schema'
21
- rescue LoadError
22
- unless Object.const_defined?( :Gem )
23
- require 'rubygems'
24
- retry
25
- end
26
- raise
27
- end
13
+ require 'spec'
14
+ require 'spec/lib/constants'
15
+ require 'spec/lib/helpers'
16
+
17
+ require 'yaml'
18
+ require 'ldap'
19
+ require 'ldap/schema'
20
+ require 'treequel/schema'
28
21
 
29
22
 
30
23
  include Treequel::TestConstants
@@ -119,8 +112,8 @@ describe Treequel::Schema::Table do
119
112
 
120
113
 
121
114
  it "provides a case-insensitive version of #values_at" do
122
- @table[:cn] = 'contra_rules'
123
- @table[:d] = 'ghosty'
115
+ @table[:cn] = 'contra_rules'
116
+ @table[:d] = 'ghosty'
124
117
  @table[:porntipsGuzzardo] = 'cha-ching'
125
118
 
126
119
  results = @table.values_at( :CN, 'PornTipsGuzzARDO' )
@@ -129,6 +122,26 @@ describe Treequel::Schema::Table do
129
122
  results.should_not include( 'ghosty' )
130
123
  end
131
124
 
125
+ it "can iterate over its members" do
126
+ @table[:cn] = 'contra_rules'
127
+ @table[:d] = 'ghosty'
128
+ @table[:porntipsGuzzardo] = 'cha-ching'
129
+
130
+ collection = []
131
+ @table.each {|k,v| collection << [k,v] }
132
+ collection.transpose[0].should include( :cn, :d, :porntipsguzzardo )
133
+ collection.transpose[1].should include( 'contra_rules', 'ghosty', 'cha-ching' )
134
+ end
135
+
136
+ it "is Enumerable" do
137
+ @table[:cn] = 'contra_rules'
138
+ @table[:d] = 'ghosty'
139
+ @table[:porntipsGuzzardo] = 'cha-ching'
140
+
141
+ collection = []
142
+ @table.any? {|k,v| v.index('o') }.should == true
143
+ end
144
+
132
145
  end
133
146
 
134
147
 
@@ -6,25 +6,18 @@ BEGIN {
6
6
 
7
7
  libdir = basedir + "lib"
8
8
 
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
9
10
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
11
  }
11
12
 
12
- begin
13
- require 'spec'
14
- require 'spec/lib/constants'
15
- require 'spec/lib/helpers'
16
-
17
- require 'yaml'
18
- require 'ldap'
19
- require 'ldap/schema'
20
- require 'treequel/schema'
21
- rescue LoadError
22
- unless Object.const_defined?( :Gem )
23
- require 'rubygems'
24
- retry
25
- end
26
- raise
27
- end
13
+ require 'spec'
14
+ require 'spec/lib/constants'
15
+ require 'spec/lib/helpers'
16
+
17
+ require 'yaml'
18
+ require 'ldap'
19
+ require 'ldap/schema'
20
+ require 'treequel/schema'
28
21
 
29
22
 
30
23
  include Treequel::TestConstants
@@ -62,6 +55,8 @@ describe Treequel::Schema do
62
55
  schema.matching_rules.should have( 72 ).members
63
56
  schema.matching_rule_uses.should have( 54 ).members
64
57
  schema.ldap_syntaxes.should have( 31 ).members
58
+
59
+ schema.operational_attribute_types.should have( 31 ).members
65
60
  end
66
61
 
67
62
 
@@ -82,6 +77,8 @@ describe Treequel::Schema do
82
77
  schema.matching_rules.should have( 72 ).members
83
78
  schema.matching_rule_uses.should have( 54 ).members
84
79
  schema.ldap_syntaxes.should have( 31 ).members
80
+
81
+ schema.operational_attribute_types.should have( 31 ).members
85
82
  end
86
83
 
87
84
 
@@ -6,6 +6,7 @@ BEGIN {
6
6
 
7
7
  libdir = basedir + "lib"
8
8
 
9
+ $LOAD_PATH.unshift( basedir ) unless $LOAD_PATH.include?( basedir )
9
10
  $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
11
  }
11
12
 
@@ -92,6 +93,11 @@ describe Treequel do
92
93
  { :base_dn => 'dc=example,dc=com', :port => 389 }
93
94
  end
94
95
 
96
+ it "uses the LDAPS port for ldaps:// URIs" do
97
+ Treequel.make_options_from_uri( 'ldaps:///dc=example,dc=com' ).should ==
98
+ { :base_dn => 'dc=example,dc=com', :connect_type => :ssl, :port => 636 }
99
+ end
100
+
95
101
  # [?<attrs>[?<scope>[?<filter>[?<extensions>]]]]
96
102
  it "can build an options hash from an LDAP URL with extra stuff" do
97
103
  uri = 'ldap:///dc=example,dc=com?uid=jrandom,ou=People?l?one?!bindname=cn=auth'
@@ -120,6 +126,12 @@ describe Treequel do
120
126
  Treequel.directory( uri, :bind_dn => user_dn, :pass => pass, :connect_type => :plain )
121
127
  end
122
128
 
129
+ it "raises an exception when ::directory is called with something other than a Hash, " +
130
+ "String, or URI" do
131
+ expect {
132
+ Treequel.directory( 2 )
133
+ }.to raise_exception( ArgumentError, /unknown directory option/i )
134
+ end
123
135
 
124
136
  it "provides a convenience method for creating directory objects from the system LDAP config" do
125
137
  Treequel.should_receive( :find_configfile ).and_return( :a_configfile_path )
@@ -344,6 +356,16 @@ describe Treequel do
344
356
  { :port => 636, :connect_type => :ssl }
345
357
  end
346
358
 
359
+ it "ignores nss-style 'ssl' option if it is set to something other than " +
360
+ "'on', 'off', or 'start_tls'" do
361
+ IO.should_receive( :foreach ).with( :a_configfile ).
362
+ and_yield( "\n# Use alien-invasion protocol\nssl aliens\n" )
363
+
364
+ expect {
365
+ Treequel.read_opts_from_config( :a_configfile )
366
+ }.to_not raise_exception()
367
+ end
368
+
347
369
  #
348
370
  # Environment
349
371
  #
data.tar.gz.sig ADDED
@@ -0,0 +1 @@
1
+ �c ��\EQ�}L�m��%L���4HL�jѱ���E��.C�c�fσ�a���Napv�2�Ku�4A�y�: ��j�;RHC�X��Š?���M���r�$7?�3�-���G�P����@�]�6KcP�%u�7�yND��X8���y� !�l��]=I�����������ڕ����Bo����9>A���/�O]������e��o��O���6��v7H?f6E�O#Oe�PN��14������=f��0���w/�
metadata CHANGED
@@ -1,29 +1,52 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: treequel
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 19
4
5
  prerelease: false
5
6
  segments:
6
7
  - 1
8
+ - 1
7
9
  - 0
8
- - 4
9
- version: 1.0.4
10
+ version: 1.1.0
10
11
  platform: ruby
11
12
  authors:
12
13
  - Michael Granger, Mahlon E. Smith
13
14
  autorequire:
14
15
  bindir: bin
15
- cert_chain: []
16
+ cert_chain:
17
+ - |
18
+ -----BEGIN CERTIFICATE-----
19
+ MIIDLDCCAhSgAwIBAgIBADANBgkqhkiG9w0BAQUFADA8MQwwCgYDVQQDDANnZWQx
20
+ FzAVBgoJkiaJk/IsZAEZFgdfYWVyaWVfMRMwEQYKCZImiZPyLGQBGRYDb3JnMB4X
21
+ DTEwMDkxNjE0NDg1MVoXDTExMDkxNjE0NDg1MVowPDEMMAoGA1UEAwwDZ2VkMRcw
22
+ FQYKCZImiZPyLGQBGRYHX2FlcmllXzETMBEGCgmSJomT8ixkARkWA29yZzCCASIw
23
+ DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALy//BFxC1f/cPSnwtJBWoFiFrir
24
+ h7RicI+joq/ocVXQqI4TDWPyF/8tqkvt+rD99X9qs2YeR8CU/YiIpLWrQOYST70J
25
+ vDn7Uvhb2muFVqq6+vobeTkILBEO6pionWDG8jSbo3qKm1RjKJDwg9p4wNKhPuu8
26
+ KGue/BFb67KflqyApPmPeb3Vdd9clspzqeFqp7cUBMEpFS6LWxy4Gk+qvFFJBJLB
27
+ BUHE/LZVJMVzfpC5Uq+QmY7B+FH/QqNndn3tOHgsPadLTNimuB1sCuL1a4z3Pepd
28
+ TeLBEFmEao5Dk3K/Q8o8vlbIB/jBDTUx6Djbgxw77909x6gI9doU4LD5XMcCAwEA
29
+ AaM5MDcwCQYDVR0TBAIwADALBgNVHQ8EBAMCBLAwHQYDVR0OBBYEFJeoGkOr9l4B
30
+ +saMkW/ZXT4UeSvVMA0GCSqGSIb3DQEBBQUAA4IBAQBG2KObvYI2eHyyBUJSJ3jN
31
+ vEnU3d60znAXbrSd2qb3r1lY1EPDD3bcy0MggCfGdg3Xu54z21oqyIdk8uGtWBPL
32
+ HIa9EgfFGSUEgvcIvaYqiN4jTUtidfEFw+Ltjs8AP9gWgSIYS6Gr38V0WGFFNzIH
33
+ aOD2wmu9oo/RffW4hS/8GuvfMzcw7CQ355wFR4KB/nyze+EsZ1Y5DerCAagMVuDQ
34
+ U0BLmWDFzPGGWlPeQCrYHCr+AcJz+NRnaHCKLZdSKj/RHuTOt+gblRex8FAh8NeA
35
+ cmlhXe46pZNJgWKbxZah85jIjx95hR8vOI+NAM5iH9kOqK13DrxacTKPhqj5PjwF
36
+ -----END CERTIFICATE-----
16
37
 
17
- date: 2010-07-07 00:00:00 -07:00
38
+ date: 2010-09-20 00:00:00 -07:00
18
39
  default_executable:
19
40
  dependencies:
20
41
  - !ruby/object:Gem::Dependency
21
42
  name: ruby-ldap
22
43
  prerelease: false
23
44
  requirement: &id001 !ruby/object:Gem::Requirement
45
+ none: false
24
46
  requirements:
25
47
  - - ">="
26
48
  - !ruby/object:Gem::Version
49
+ hash: 41
27
50
  segments:
28
51
  - 0
29
52
  - 9
@@ -62,6 +85,9 @@ files:
62
85
  - spec/treequel/directory_spec.rb
63
86
  - spec/treequel/filter_spec.rb
64
87
  - spec/treequel/mixins_spec.rb
88
+ - spec/treequel/model/objectclass_spec.rb
89
+ - spec/treequel/model_spec.rb
90
+ - spec/treequel/monkeypatches_spec.rb
65
91
  - spec/treequel/schema/attributetype_spec.rb
66
92
  - spec/treequel/schema/ldapsyntax_spec.rb
67
93
  - spec/treequel/schema/matchingrule_spec.rb
@@ -69,7 +95,6 @@ files:
69
95
  - spec/treequel/schema/objectclass_spec.rb
70
96
  - spec/treequel/schema/table_spec.rb
71
97
  - spec/treequel/schema_spec.rb
72
- - spec/treequel/utils_spec.rb
73
98
  - spec/treequel_spec.rb
74
99
  - spec/lib/constants.rb
75
100
  - spec/lib/control_behavior.rb
@@ -89,6 +114,8 @@ files:
89
114
  - lib/treequel/exceptions.rb
90
115
  - lib/treequel/filter.rb
91
116
  - lib/treequel/mixins.rb
117
+ - lib/treequel/model/objectclass.rb
118
+ - lib/treequel/model.rb
92
119
  - lib/treequel/monkeypatches.rb
93
120
  - lib/treequel/schema/attributetype.rb
94
121
  - lib/treequel/schema/ldapsyntax.rb
@@ -137,23 +164,27 @@ rdoc_options:
137
164
  require_paths:
138
165
  - lib
139
166
  required_ruby_version: !ruby/object:Gem::Requirement
167
+ none: false
140
168
  requirements:
141
169
  - - ">="
142
170
  - !ruby/object:Gem::Version
171
+ hash: 3
143
172
  segments:
144
173
  - 0
145
174
  version: "0"
146
175
  required_rubygems_version: !ruby/object:Gem::Requirement
176
+ none: false
147
177
  requirements:
148
178
  - - ">="
149
179
  - !ruby/object:Gem::Version
180
+ hash: 3
150
181
  segments:
151
182
  - 0
152
183
  version: "0"
153
184
  requirements:
154
185
  - ldap >=0
155
186
  rubyforge_project:
156
- rubygems_version: 1.3.6
187
+ rubygems_version: 1.3.7
157
188
  signing_key:
158
189
  specification_version: 3
159
190
  summary: An honest LDAP library
@@ -168,6 +199,9 @@ test_files:
168
199
  - spec/treequel/directory_spec.rb
169
200
  - spec/treequel/filter_spec.rb
170
201
  - spec/treequel/mixins_spec.rb
202
+ - spec/treequel/model/objectclass_spec.rb
203
+ - spec/treequel/model_spec.rb
204
+ - spec/treequel/monkeypatches_spec.rb
171
205
  - spec/treequel/schema/attributetype_spec.rb
172
206
  - spec/treequel/schema/ldapsyntax_spec.rb
173
207
  - spec/treequel/schema/matchingrule_spec.rb
@@ -175,7 +209,6 @@ test_files:
175
209
  - spec/treequel/schema/objectclass_spec.rb
176
210
  - spec/treequel/schema/table_spec.rb
177
211
  - spec/treequel/schema_spec.rb
178
- - spec/treequel/utils_spec.rb
179
212
  - spec/treequel_spec.rb
180
213
  - spec/lib/constants.rb
181
214
  - spec/lib/control_behavior.rb
metadata.gz.sig ADDED
Binary file
@@ -1,49 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- BEGIN {
4
- require 'pathname'
5
- basedir = Pathname.new( __FILE__ ).dirname.parent.parent
6
-
7
- libdir = basedir + "lib"
8
-
9
- $LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
10
- }
11
-
12
- begin
13
- require 'spec'
14
- require 'spec/lib/constants'
15
- require 'spec/lib/helpers'
16
-
17
- require 'treequel'
18
- require 'treequel/utils'
19
- rescue LoadError
20
- unless Object.const_defined?( :Gem )
21
- require 'rubygems'
22
- retry
23
- end
24
- raise
25
- end
26
-
27
-
28
- include Treequel::TestConstants
29
- # include Treequel::Constants
30
-
31
- #####################################################################
32
- ### C O N T E X T S
33
- #####################################################################
34
-
35
- describe Treequel, "utilities" do
36
- include Treequel::SpecHelpers
37
-
38
- before( :all ) do
39
- setup_logging( :fatal )
40
- end
41
-
42
- after( :all ) do
43
- reset_logging()
44
- end
45
-
46
- end
47
-
48
-
49
- # vim: set nosta noet ts=4 sw=4: