treequel 1.6.0 → 1.7.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.
@@ -16,7 +16,6 @@ module Treequel::Model::ObjectClass
16
16
 
17
17
 
18
18
  ### Extension callback -- add data structures to the extending +mod+.
19
- ### @param [Module] mod the mixin module to be extended
20
19
  def self::extended( mod )
21
20
  mod.instance_variable_set( :@model_class, Treequel::Model )
22
21
  mod.instance_variable_set( :@model_objectclasses, [] )
@@ -65,11 +64,8 @@ module Treequel::Model::ObjectClass
65
64
 
66
65
 
67
66
  ### Set or get objectClasses that the mixin requires. Also registers the mixin with
68
- ### Treequel::Model.
69
- ###
70
- ### @param [Array<#to_sym>] objectclasses the objectClasses the mixin will apply to, as an
71
- ### array of Symbols (or objects that respond to #to_sym)
72
- ### @return [Array<Symbol>] the objectClasses that the module requires
67
+ ### Treequel::Model. If +objectclasses+ are given, they are set as the objectClasses the
68
+ ### mixin will apply to, as an array of Symbols (or objects that respond to #to_sym).
73
69
  def model_objectclasses( *objectclasses )
74
70
  unless objectclasses.empty?
75
71
  @model_objectclasses = objectclasses.map( &:to_sym )
@@ -90,21 +86,18 @@ module Treequel::Model::ObjectClass
90
86
  end
91
87
 
92
88
 
93
- ### @overload create( dn, entryhash={} )
94
- ### Create a new instance of the mixin's model_class in the model_class's default
95
- ### directory with the given +dn+ and the objectclasses specified by the mixin. If the
96
- ### optional +entryhash+ is given, it will be used as the initial attributes of the
97
- ### new entry.
98
- ### @param [#to_s] dn the DN of the new model object
99
- ### @param [Hash] entryhash attributes to set on the new entry
100
- ### @overload create( directory, dn, entryhash={} )
101
- ### Create a new instance of the mixin's model_class in the specified +directory+
102
- ### with the given +dn+ and the objectclasses specified by the mixin. If the
103
- ### optional +entryhash+ is given, it will be used as the initial attributes of the
104
- ### new entry.
105
- ### @param [Treequel::Directory] directory the directory to create the entry in (optional)
106
- ### @param [#to_s] dn the DN of the new model object
107
- ### @param [Hash] entryhash attributes to set on the new entry
89
+ ### :call-seq:
90
+ ### ObjectClassModule.create( dn, entryhash={} )
91
+ ### ObjectClassModule.create( directory, dn, entryhash={} )
92
+ ###
93
+ ### In the first form, creates a new instance of the mixin's model_class in the model_class's
94
+ ### default directory with the given +dn+ and the objectclasses specified by the mixin.
95
+ ###
96
+ ### In the second form, creates a new instance of the mixin's model_class in the specified
97
+ ### +directory+ with the given +dn+ and the objectclasses specified by the mixin.
98
+ ###
99
+ ### If the optional +entryhash+ is given (in either form), it will be used as the initial
100
+ ### attributes of the new entry.
108
101
  def create( directory, dn=nil, entryhash={} )
109
102
 
110
103
  # Shift the arguments if the first one isn't a directory
@@ -136,11 +129,6 @@ module Treequel::Model::ObjectClass
136
129
  ### Return a Branchset (or BranchCollection if the receiver has more than one
137
130
  ### base) that can be used to search the given +directory+ for entries to which
138
131
  ### the receiver applies.
139
- ###
140
- ### @param [Treequel::Directory] directory the directory to search; if not given, this defaults
141
- ### to the directory associated with the module's
142
- ### model_class.
143
- ### @return [Treequel::Branchset, Treequel::BranchCollection] the encapsulated search
144
132
  def search( directory=nil )
145
133
  directory ||= self.model_class.directory
146
134
  bases = self.model_bases
@@ -81,7 +81,6 @@ class Treequel::Model < Treequel::Branch
81
81
  ### Return the Treequel::Directory the Model will use for searches, creating it if it
82
82
  ### hasn't been created already. The default Directory will be created by calling
83
83
  ### Treequel.directory_from_config.
84
- ### @return [Treequel::Directory] the default directory
85
84
  def self::directory
86
85
  self.directory = Treequel.directory_from_config unless @directory
87
86
  return @directory
@@ -90,7 +89,6 @@ class Treequel::Model < Treequel::Branch
90
89
 
91
90
  ### Set the Treequel::Directory that should be used for searches. The receiving class will also
92
91
  ### be set as the #results_class of the +newdirectory+.
93
- ### @param [Treequel::Directory] newdirectory
94
92
  def self::directory=( newdirectory )
95
93
  @directory = newdirectory
96
94
  @directory.results_class = self if @directory
@@ -98,7 +96,6 @@ class Treequel::Model < Treequel::Branch
98
96
 
99
97
 
100
98
  ### Inheritance callback -- add a class-specific objectclass registry to inheriting classes.
101
- ### @param [Class] subclass the inheriting class
102
99
  def self::inherited( subclass )
103
100
  super
104
101
  subclass.instance_variable_set( :@objectclass_registry, SET_HASH.dup )
@@ -107,10 +104,8 @@ class Treequel::Model < Treequel::Branch
107
104
 
108
105
 
109
106
  ### Register the given +mixin+ for the specified +objectclasses+. Instances that
110
- ### have all the specified +objectclasses+ will be extended with the +mixin+.
111
- ###
112
- ### @param [Module] mixin the mixin to be applied; it should be extended with
113
- ### Treequel::Model::ObjectClass.
107
+ ### have all the specified +objectclasses+ will be extended with the +mixin+, which should be
108
+ ### a Module extended with Treequel::Model::ObjectClass.
114
109
  def self::register_mixin( mixin )
115
110
  objectclasses = mixin.model_objectclasses
116
111
  bases = mixin.model_bases
@@ -132,7 +127,6 @@ class Treequel::Model < Treequel::Branch
132
127
 
133
128
 
134
129
  ### Unregister the given +mixin+ for the specified +objectclasses+.
135
- ### @param [Module] mixin the mixin that should no longer be applied
136
130
  def self::unregister_mixin( mixin )
137
131
  objectclasses = mixin.model_objectclasses
138
132
  bases = mixin.model_bases
@@ -154,8 +148,6 @@ class Treequel::Model < Treequel::Branch
154
148
 
155
149
 
156
150
  ### Return the mixins that should be applied to an entry with the given +objectclasses+.
157
- ### @param [Array<Symbol>] objectclasses the objectclasses from the entry
158
- ### @return [Set<Module>] the Set of mixin modules which apply
159
151
  def self::mixins_for_objectclasses( *objectclasses )
160
152
  return self.objectclass_registry[:top] if objectclasses.empty?
161
153
  ocsymbols = objectclasses.flatten.collect {|oc| oc.untaint.to_sym }
@@ -174,8 +166,6 @@ class Treequel::Model < Treequel::Branch
174
166
 
175
167
 
176
168
  ### Return the mixins that should be applied to an entry with the given +dn+.
177
- ### @param [String] dn the DN of the entry
178
- ### @return [Set<Module>] the Set of mixin modules which apply
179
169
  def self::mixins_for_dn( dn )
180
170
  dn_tuples = dn.downcase.split( /\s*,\s*/ )
181
171
  dn_keys = dn_tuples.reverse.inject(['']) do |keys, dnpair|
@@ -199,8 +189,6 @@ class Treequel::Model < Treequel::Branch
199
189
  ### Create a new Treequel::Model object with the given +entry+ hash from the
200
190
  ### specified +directory+. Overrides Treequel::Branch.new_from_entry to pass the
201
191
  ### +from_directory+ flag to mark it as unmodified.
202
- ###
203
- ### @see Treequel::Branch.new_from_entry
204
192
  def self::new_from_entry( entry, directory )
205
193
  entry = Treequel::HashUtilities.stringify_keys( entry )
206
194
  dnvals = entry.delete( 'dn' ) or
@@ -269,17 +257,18 @@ class Treequel::Model < Treequel::Branch
269
257
 
270
258
  ### Index set operator -- set attribute +attrname+ to a new +value+.
271
259
  ### Overridden to make Model objects defer writing changes until
272
- ### {Treequel::Model#save} is called.
273
- ###
274
- ### @param [Symbol, String] attrname attribute name
275
- ### @param [Object] value the attribute value
260
+ ### Treequel::Model#save is called.
276
261
  def []=( attrname, value )
277
262
  attrtype = self.find_attribute_type( attrname.to_sym ) or
278
263
  raise ArgumentError, "unknown attribute %p" % [ attrname ]
279
264
  value = Array( value ) unless attrtype.single?
280
265
 
281
266
  self.mark_dirty
282
- @values[ attrtype.name.to_sym ] = value
267
+ if value
268
+ @values[ attrtype.name.to_sym ] = value
269
+ else
270
+ @values.delete( attrtype.name.to_sym )
271
+ end
283
272
 
284
273
  # If the objectClasses change, we (may) need to re-apply mixins
285
274
  if attrname.to_s.downcase == 'objectclass'
@@ -295,10 +284,7 @@ class Treequel::Model < Treequel::Branch
295
284
 
296
285
  ### Make the changes to the object specified by the given +attributes+.
297
286
  ### Overridden to make Model objects defer writing changes until
298
- ### {Treequel::Model#save} is called.
299
- ###
300
- ### @param attributes (see Treequel::Directory#modify)
301
- ### @return [TrueClass] if the merge succeeded
287
+ ### Treequel::Model#save is called.
302
288
  def merge( attributes )
303
289
  attributes.each do |attrname, value|
304
290
  self[ attrname ] = value
@@ -308,9 +294,7 @@ class Treequel::Model < Treequel::Branch
308
294
 
309
295
  ### Delete the specified attributes.
310
296
  ### Overridden to make Model objects defer writing changes until
311
- ### {Treequel::Model#save} is called.
312
- ###
313
- ### @see Treequel::Branch#delete
297
+ ### Treequel::Model#save is called.
314
298
  def delete( *attributes )
315
299
  return super if attributes.empty?
316
300
 
@@ -344,7 +328,6 @@ class Treequel::Model < Treequel::Branch
344
328
 
345
329
 
346
330
  ### Returns the validation errors associated with this object.
347
- ### @see Treequel::Model::Errors.
348
331
  def errors
349
332
  return @errors ||= Treequel::Model::Errors.new
350
333
  end
@@ -360,8 +343,6 @@ class Treequel::Model < Treequel::Branch
360
343
 
361
344
  ### Validate the object with the specified +options+. Appending validation errors onto
362
345
  ### the #errors object.
363
- ### @param [Hash] options options for validation.
364
- ### @option options [Boolean] :with_schema whether or not to run the schema validations
365
346
  def validate( options={} )
366
347
  options = DEFAULT_VALIDATION_OPTIONS.merge( options )
367
348
 
@@ -377,10 +358,11 @@ class Treequel::Model < Treequel::Branch
377
358
  end
378
359
 
379
360
 
380
- ### Write any pending changes in the model object to the directory.
381
- ### @param [Hash] opts save options
382
- ### @option opts [Boolean] :raise_on_failure (true) raise a Treequel::ValidationFailed or
383
- ### Treequel::BeforeHookFailed if either the validations or before_{save,create}
361
+ ### Write any pending changes in the model object to the directory. The valid +opts+ are:
362
+ ###
363
+ ### [+:raise_on_failure+]
364
+ ### raise a Treequel::ValidationFailed or Treequel::BeforeHookFailed if either the
365
+ ### validations or before_{save,create}.
384
366
  def save( opts={} )
385
367
  opts = DEFAULT_SAVE_OPTIONS.merge( opts )
386
368
 
@@ -418,8 +400,7 @@ class Treequel::Model < Treequel::Branch
418
400
  end
419
401
 
420
402
 
421
- ### Return any pending changes in the model object.
422
- ### @return [Array<LDAP::Mod>] the changes as LDAP modifications
403
+ ### Return any pending changes in the model object as an Array of LDAP::Mod objects.
423
404
  def modifications
424
405
  return unless self.modified?
425
406
  self.log.debug "Gathering modifications..."
@@ -508,8 +489,6 @@ class Treequel::Model < Treequel::Branch
508
489
 
509
490
 
510
491
  ### Returns +true+ if the receiver responds to the given method.
511
- ### @param [Symbol,String] sym the name of the method to test for
512
- ### @return [Boolean]
513
492
  def respond_to?( sym, include_priv=false )
514
493
  return super if caller(1).first =~ %r{/r?spec/} &&
515
494
  caller(1).first !~ /respond_to/ # RSpec workaround
@@ -520,7 +499,6 @@ class Treequel::Model < Treequel::Branch
520
499
 
521
500
 
522
501
  ### Return the Treequel::Model::ObjectClass mixins that have been applied to the receiver.
523
- ### @return [Array<Module>]
524
502
  def extensions
525
503
  eigenclass = ( class << self; self; end )
526
504
  return eigenclass.included_modules.find_all do |mod|
@@ -554,7 +532,6 @@ class Treequel::Model < Treequel::Branch
554
532
 
555
533
 
556
534
  ### Update the object's entry with the specified +mods+.
557
- ### @param [Array<LDAP::Mod>] mods the modifications to make
558
535
  def update( mods )
559
536
  self.log.debug " entry already exists: updating..."
560
537
  self.before_update( mods ) or
@@ -565,7 +542,6 @@ class Treequel::Model < Treequel::Branch
565
542
 
566
543
 
567
544
  ### Create the entry for the object, using the specified +mods+ to set the attributes.
568
- ### @param [Array<LDAP::Mod>] mods the modifications to set attributes
569
545
  def create( mods )
570
546
  self.log.debug " entry doesn't exist: creating..."
571
547
  self.before_create( mods ) or
@@ -576,7 +552,6 @@ class Treequel::Model < Treequel::Branch
576
552
 
577
553
 
578
554
  ### Delete specific key/value +pairs+ from the entry.
579
- ### @param [Hash] pairs key/value pairs to delete from the entry.
580
555
  def delete_specific_values( pairs )
581
556
  self.log.debug " hash-delete..."
582
557
 
@@ -592,10 +567,6 @@ class Treequel::Model < Treequel::Branch
592
567
 
593
568
 
594
569
  ### Search for the Treequel::Schema::AttributeType associated with +sym+.
595
- ###
596
- ### @param [Symbol,String] name the name of the attribute to find
597
- ### @return [Treequel::Schema::AttributeType,nil] the associated attributeType, or nil
598
- ### if there isn't one
599
570
  def find_attribute_type( name )
600
571
  attrtype = nil
601
572
 
@@ -627,17 +598,15 @@ class Treequel::Model < Treequel::Branch
627
598
  return meth.call( *args ) if meth
628
599
  end
629
600
 
630
- self.log.debug " checking to see if it's a traversal call"
601
+ # self.log.debug " checking to see if it's a traversal call"
602
+
631
603
  # Next, super to rdn-traversal if it looks like a reader but has arguments
632
604
  plainsym, methodtype = attribute_from_method( sym )
633
- self.log.debug " method looks like a %p" % [ methodtype ]
634
605
  return super if methodtype == :reader && !args.empty?
635
- self.log.debug " ...but it doesn't have any arguments. Finding attr type."
636
606
 
637
607
  # Now make a method body for a new method based on what attributeType it is if
638
608
  # it's a valid attribute
639
609
  attrtype = self.find_attribute_type( plainsym ) or return super
640
- self.log.debug " attrtype is: %p" % [ attrtype ]
641
610
  methodbody = case methodtype
642
611
  when :writer
643
612
  self.make_writer( attrtype )
@@ -655,10 +624,6 @@ class Treequel::Model < Treequel::Branch
655
624
 
656
625
 
657
626
  ### Make a reader method body for the given +attrtype+.
658
- ###
659
- ### @param [Treequel::Mode::AttributeType] attrtype the attributeType to create the reader
660
- ### for.
661
- ### @return [Proc] the body of the reader method.
662
627
  def make_reader( attrtype )
663
628
  self.log.debug "Generating an attribute reader for %p" % [ attrtype ]
664
629
  attrname = attrtype.name
@@ -673,10 +638,6 @@ class Treequel::Model < Treequel::Branch
673
638
 
674
639
 
675
640
  ### Make a writer method body for the given +attrtype+.
676
- ###
677
- ### @param [Treequel::Mode::AttributeType] attrtype the attributeType to create the accessor
678
- ### for.
679
- ### @return [Proc] the body of the writer method.
680
641
  def make_writer( attrtype )
681
642
  self.log.debug "Generating an attribute writer for %p" % [ attrtype ]
682
643
  attrname = attrtype.name
@@ -691,10 +652,6 @@ class Treequel::Model < Treequel::Branch
691
652
 
692
653
 
693
654
  ### Make a predicate method body for the given +attrtype+.
694
- ###
695
- ### @param [Treequel::Mode::AttributeType] attrtype the attributeType to create the method
696
- ### for.
697
- ### @return [Proc] the body of the predicate method.
698
655
  def make_predicate( attrtype )
699
656
  self.log.debug "Generating an attribute predicate for %p" % [ attrtype ]
700
657
  attrname = attrtype.name
@@ -710,7 +667,6 @@ class Treequel::Model < Treequel::Branch
710
667
 
711
668
  ### Overridden to apply applicable mixins to lazily-loaded objects once their entry
712
669
  ### has been looked up.
713
- ### @return [LDAP::Entry] the fetched entry object
714
670
  def lookup_entry
715
671
  if entryhash = super
716
672
  self.apply_applicable_mixins( self.dn, entryhash )
@@ -754,8 +710,6 @@ class Treequel::Model < Treequel::Branch
754
710
 
755
711
  ### Given the symbol from an attribute accessor or predicate, return the
756
712
  ### name of the corresponding LDAP attribute/
757
- ### @param [Symbol] methodname the method being called
758
- ### @return [Symbol] the attribute name that corresponds to the method
759
713
  def attribute_from_method( methodname )
760
714
 
761
715
  case methodname.to_s
@@ -25,7 +25,6 @@ end # module Treequel::LDAPControlExtensions
25
25
 
26
26
 
27
27
  # Include Treequel-specific extensions as a mixin.
28
- # @private
29
28
  class LDAP::Control
30
29
  include Treequel::LDAPControlExtensions
31
30
  end
@@ -46,7 +45,6 @@ end # module Treequel::LDAPModExtensions
46
45
 
47
46
 
48
47
  # Include Treequel-specific extensions as a mixin.
49
- # @private
50
48
  class LDAP::Mod
51
49
  include Treequel::LDAPModExtensions
52
50
 
@@ -71,7 +69,8 @@ class LDAP::Mod
71
69
 
72
70
  ### Override the initializer to keep the +attribute+ around while the object
73
71
  ### is alive to prevent the underlying C String pointer from going away.
74
- ### @see line 151 of mod.c.
72
+ ###
73
+ ### See line 151 of mod.c.
75
74
  def initialize( op, attribute, vals )
76
75
  @attribute = attribute
77
76
  _initialize_ext( op, attribute, vals )
@@ -330,7 +330,6 @@ class Treequel::Schema::AttributeType
330
330
  # attributes.
331
331
 
332
332
  ### Test whether or not the attrinbute is a user applications attribute.
333
- ### @return [Boolean] true if the attribute's USAGE is 'userApplications' (or nil)
334
333
  def is_user?
335
334
  return !self.is_operational?
336
335
  end
@@ -338,7 +337,6 @@ class Treequel::Schema::AttributeType
338
337
 
339
338
 
340
339
  ### Test whether or not the attribute is an operational attribute.
341
- ### @return [Boolean] true if the attribute's usage is one of the OPERATIONAL_ATTRIBUTE_USAGES
342
340
  def is_operational?
343
341
  usage_type = self.usage || DEFAULT_USAGE_TYPE
344
342
  return OPERATIONAL_ATTRIBUTE_USAGES.map( &:downcase ).include?( usage_type.downcase )
@@ -347,7 +345,6 @@ class Treequel::Schema::AttributeType
347
345
 
348
346
 
349
347
  ### Test whether or not the attribute is a directory operational attribute.
350
- ### @return [Boolean] true if the attribute's usage is 'directoryOperation'
351
348
  def is_directory_operational?
352
349
  usage_type = self.usage || DEFAULT_USAGE_TYPE
353
350
  return usage_type == 'directoryOperation'
@@ -356,7 +353,6 @@ class Treequel::Schema::AttributeType
356
353
 
357
354
 
358
355
  ### Test whether or not the attribute is a distributed operational attribute.
359
- ### @return [Boolean] true if the attribute's usage is 'distributedOperation'
360
356
  def is_distributed_operational?
361
357
  usage_type = self.usage || DEFAULT_USAGE_TYPE
362
358
  return usage_type == 'distributedOperation'
@@ -365,7 +361,6 @@ class Treequel::Schema::AttributeType
365
361
 
366
362
 
367
363
  ### Test whether or not the attribute is a DSA-specific operational attribute.
368
- ### @return [Boolean] true if the attribute's usage is 'dSAOperation'
369
364
  def is_dsa_operational?
370
365
  usage_type = self.usage || DEFAULT_USAGE_TYPE
371
366
  return usage_type == 'dSAOperation'
@@ -52,10 +52,8 @@ class Treequel::Schema
52
52
  end
53
53
 
54
54
 
55
- ### Parse an ObjectClass entry from a objectClass +description+ from a +schema+.
56
- ### @param [String] description the RFC4512-format objectClass description
57
- ### @param [Treequel::Schema] schema the schema object the objectClass belongs to
58
- ### @return [Treequel::Schema::ObjectClass] the resulting objectclass
55
+ ### Parse an ObjectClass entry from a RFC4512-format objectClass +description+ from a
56
+ ### +schema+.
59
57
  def self::parse( schema, description )
60
58
  oid, names, desc, obsolete, sup, kind, must, may, extensions = nil
61
59
 
@@ -166,10 +164,8 @@ class Treequel::Schema
166
164
 
167
165
 
168
166
  ### Return the objectClass's MUST OIDs as Symbols (for symbolic OIDs) or Strings (for
169
- ### dotted-numeric OIDs).
170
- ### @param [Boolean] include_sup (true) include MUST OIDs inherited from the
171
- ### objectClass's SUP, if it has one.
172
- ### @return [Array<Symbol,String>] the objectClass's MUST OIDs
167
+ ### dotted-numeric OIDs). If include_sup is true, include MUST OIDs inherited from the
168
+ ### objectClass's SUP, if it has one.
173
169
  def must_oids( include_sup=true )
174
170
  oids = @must_oids.dup
175
171
 
@@ -193,10 +189,8 @@ class Treequel::Schema
193
189
 
194
190
 
195
191
  ### Return the objectClass's MAY OIDs as Symbols (for symbolic OIDs) or Strings (for
196
- ### dotted-numeric OIDs).
197
- ### @param [Boolean] include_sup (true) include MAY OIDs inherited from the
198
- ### objectClass's SUP, if it has one.
199
- ### @return [Array<Symbol,String>] the objectClass's MAY OIDs
192
+ ### dotted-numeric OIDs). If include_sup is true, include MAY OIDs inherited from the
193
+ ### objectClass's SUP, if it has one.
200
194
  def may_oids( include_sup=true )
201
195
  oids = @may_oids.dup
202
196
 
@@ -258,15 +252,6 @@ class Treequel::Schema
258
252
  return "( %s )" % [ parts.join(' ') ]
259
253
  end
260
254
 
261
- # @oid = oid
262
- # @names = names
263
- # @desc = desc
264
- # @obsolete = obsolete ? true : false
265
- # @sup_oid = sup
266
- # @must_oids = must_oids
267
- # @may_oids = may_oids
268
- # @extensions = extensions
269
-
270
255
 
271
256
  ### Return a human-readable representation of the object suitable for debugging
272
257
  def inspect
@@ -295,9 +280,7 @@ class Treequel::Schema
295
280
 
296
281
 
297
282
  ### Return the SUP chain for the receiver up to 'top', including the receiver
298
- ### itself.
299
- ### @return [Array<Treequel::Schema::ObjectClass>] the array of ObjectClass objects
300
- ### the receiver inherits from.
283
+ ### itself, as an Array of Treequel::Schema::ObjectClass objects.
301
284
  def ancestors
302
285
  rval = [ self ]
303
286
 
@@ -309,9 +292,8 @@ class Treequel::Schema
309
292
  end
310
293
 
311
294
 
312
- ### Return the string that represents the kind of objectClass
313
- ### the receiver represents.
314
- ### @return [String] one of: 'ABSTRACT', 'STRUCTURAL', 'AUXILIARY'
295
+ ### Return the string that represents the kind of objectClass the receiver represents.
296
+ ### It will be one of: 'ABSTRACT', 'STRUCTURAL', 'AUXILIARY'
315
297
  def kind
316
298
  return Treequel::Schema::OBJECTCLASS_TYPES.invert[ self.class ]
317
299
  end
@@ -42,14 +42,12 @@ class Treequel::Schema
42
42
  ### Set the strict-parsing +flag+. Setting this to a +true+ value causes schema-parsing
43
43
  ### errors to be propagated to the caller instead of handled by the constructor, which is
44
44
  ### the default behavior.
45
- ### @param [boolean] flag the new flag value
46
45
  def self::strict_parse_mode=( newval )
47
46
  @strict_parse_mode = newval ? true : false
48
47
  end
49
48
 
50
49
 
51
50
  ### Test whether or not strict-parsing mode is in effect.
52
- ### @return [boolean] false if parse errors will be caught
53
51
  def self::strict_parse_mode?
54
52
  return @strict_parse_mode ? true : false
55
53
  end
@@ -125,8 +123,6 @@ class Treequel::Schema
125
123
 
126
124
  ### Return a description of the given +descriptors+ suitable for inclusion in
127
125
  ### an RFC4512-style schema description entry.
128
- ### @param [Array<String>] descriptors an Array of descriptors
129
- ### @return [String] the 'qdescrs' text
130
126
  def self::qdescrs( *descriptors )
131
127
  descriptors.flatten!
132
128
  if descriptors.length > 1
@@ -149,8 +145,6 @@ class Treequel::Schema
149
145
 
150
146
  ### Escape and quote the specified +string+ according to the rules in
151
147
  ### RFC4512/2252.
152
- ### @param [String] string the unescaped UTF8 string
153
- ### @return [String] the string after quoting and escaping
154
148
  def self::qdstring( string )
155
149
  return "'%s'" % [ string.to_s.gsub(/\\/, '\\\\5c').gsub(/'/, '\\\\27') ]
156
150
  end
@@ -158,8 +152,6 @@ class Treequel::Schema
158
152
 
159
153
  ### Return a description of the given +oids+ suitable for inclusion in
160
154
  ### an RFC4512-style schema description entry.
161
- ### @param [Array<String>] oids an Array of numeric or symbolic OIDs
162
- ### @return [String] the oid list text
163
155
  def self::oids( *oids )
164
156
  oids.flatten!
165
157
  if oids.length > 1
@@ -194,34 +186,28 @@ class Treequel::Schema
194
186
 
195
187
  # The table of Treequel::Schema::ObjectClass objects, keyed by OID and any associated NAME
196
188
  # attributes (as Symbols), that describes the objectClasses in the directory's schema.
197
- # @return [Treequel::Schema::Table]
198
189
  attr_reader :object_classes
199
190
 
200
191
  # The hash of Treequel::Schema::AttributeType objects, keyed by OID and any associated NAME
201
192
  # attributes (as Symbols), that describe the attributeTypes in the directory's schema.
202
- # @return [Treequel::Schema::Table]
203
193
  attr_reader :attribute_types
204
194
 
205
195
  # The hash of Treequel::Schema::LDAPSyntax objects, keyed by OID, that describe the
206
196
  # syntaxes in the directory's schema.
207
- # @return [Treequel::Schema::Table]
208
197
  attr_reader :ldap_syntaxes
209
198
 
210
199
  # The hash of Treequel::Schema::MatchingRule objects, keyed by OID and any associated NAME
211
200
  # attributes (as Symbols), that describe the matchingRules int he directory's schema.
212
- # @return [Treequel::Schema::Table]
213
201
  attr_reader :matching_rules
214
202
 
215
203
  # The hash of Treequel::Schema::MatchingRuleUse objects, keyed by OID and any associated NAME
216
204
  # attributes (as Symbols), that describe the attributes to which a matchingRule can be applied.
217
- # @return [Treequel::Schema::Table]
218
205
  attr_reader :matching_rule_uses
219
206
  alias_method :matching_rule_use, :matching_rule_uses
220
207
 
221
208
 
222
209
  ### Return the Treequel::Schema::AttributeType objects that correspond to the
223
210
  ### operational attributes that are supported by the directory.
224
- ### @return [Array<Treequel::Schema::AttributeType>] the operational attributes
225
211
  def operational_attribute_types
226
212
  return self.attribute_types.values.find_all {|attrtype| attrtype.operational? }.uniq
227
213
  end
@@ -236,7 +222,6 @@ class Treequel::Schema
236
222
 
237
223
 
238
224
  ### Return a human-readable representation of the object suitable for debugging.
239
- ### @return [String]
240
225
  def inspect
241
226
  return %{#<%s:0x%0x %s>} % [
242
227
  self.class.name,
@@ -361,9 +346,7 @@ class Treequel::Schema
361
346
  end
362
347
 
363
348
 
364
- ### Return descriptions of the schema's artifacts.
365
- ### @return [Array<String>] the descriptions of the schema's artifacts, and how many of each
366
- ### it has.
349
+ ### Return descriptions of the schema's artifacts, and how many of each it has.
367
350
  def ivar_descriptions
368
351
  self.instance_variables.sort.collect do |ivar|
369
352
  len = self.instance_variable_get( ivar ).length
@@ -12,7 +12,6 @@ require 'treequel/mixins'
12
12
  module Treequel
13
13
 
14
14
  # A alternate formatter for Logger instances.
15
- # @private
16
15
  class LogFormatter < Logger::Formatter
17
16
 
18
17
  # The format to output unless debugging is turned on
@@ -68,7 +67,6 @@ module Treequel
68
67
 
69
68
 
70
69
  # A ANSI-colorized formatter for Logger instances.
71
- # @private
72
70
  class ColorLogFormatter < Logger::Formatter
73
71
  extend Treequel::ANSIColorUtilities
74
72
 
@@ -122,7 +120,6 @@ module Treequel
122
120
 
123
121
  # An alternate formatter for Logger instances that outputs +div+ HTML
124
122
  # fragments.
125
- # @private
126
123
  class HtmlLogFormatter < Logger::Formatter
127
124
  include ERB::Util # for html_escape()
128
125