treequel 1.8.1 → 1.8.2

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.
data/ChangeLog CHANGED
@@ -1,8 +1,133 @@
1
+ 2011-12-19 Michael Granger <ged@FaerieMUD.org>
2
+
3
+ * .rspec-tm, .tm_properties, lib/treequel/model.rb,
4
+ spec/treequel/model_spec.rb:
5
+ Combining ADD and DELETE mods
6
+ [6697b95ce945] [github/master, tip]
7
+
8
+ 2011-12-15 Michael Granger <ged@FaerieMUD.org>
9
+
10
+ * lib/treequel/schema.rb:
11
+ Don't include non-lengthable ivars in
12
+ Treequel::Schema#ivar_descriptions (thanks to Ben Bleything for
13
+ reporting this).
14
+ [5738015684e7]
15
+
16
+ * .hgignore:
17
+ Adding .rbx directory to the ignorefile
18
+ [919ed9227138]
19
+
20
+ * History.rdoc:
21
+ Whitespace fix for the History file
22
+ [d568255e82eb]
23
+
24
+ 2011-12-05 Michael Granger <ged@FaerieMUD.org>
25
+
26
+ * .hgtags:
27
+ Added tag v1.8.1 for changeset 07b44d5fd4bb
28
+ [035e391ccb4b]
29
+
30
+ * .hgsigs:
31
+ Added signature for changeset 507d14777c50
32
+ [07b44d5fd4bb] [v1.8.1]
33
+
34
+ * History.rdoc, lib/treequel.rb:
35
+ Bumped patch version, updated history.
36
+ [507d14777c50]
37
+
38
+ * lib/treequel/branch.rb, spec/treequel/branch_spec.rb:
39
+ Fixed #eql? implementation by using the hash-value instead of just
40
+ comparing DNs.
41
+ [7871d9c35a87]
42
+
43
+ * .hgtags:
44
+ Added tag v1.8.0 for changeset 0f8e4ce2a212
45
+ [48553b84ad54]
46
+
47
+ * .hgsigs:
48
+ Added signature for changeset fa0d500e2dee
49
+ [0f8e4ce2a212] [v1.8.0]
50
+
51
+ * History.rdoc, lib/treequel.rb:
52
+ Bumped minor version, updated History.
53
+ [fa0d500e2dee]
54
+
55
+ * lib/treequel/branch.rb, spec/treequel/branch_spec.rb:
56
+ Implemented #eql? for Treequel::Branch for correct behavior in
57
+ Array#-, Hash#[], etc.
58
+ [e73641e1fa16]
59
+
60
+ 2011-11-30 Michael Granger <ged@FaerieMUD.org>
61
+
62
+ * .hgtags:
63
+ Added tag v1.7.2 for changeset af0b6ddd247c
64
+ [f713aa551e39]
65
+
66
+ * .hgsigs:
67
+ Added signature for changeset a8a3bca987c3
68
+ [af0b6ddd247c] [v1.7.2]
69
+
70
+ * History.rdoc, lib/treequel.rb:
71
+ Bumped patch version, updated history.
72
+ [a8a3bca987c3]
73
+
74
+ 2011-11-29 Michael Granger <ged@FaerieMUD.org>
75
+
76
+ * lib/treequel/model.rb, spec/treequel/model_spec.rb:
77
+ Add a workaround for Time objects used in generalizedTime fields,
78
+ since Time has a #to_ary.
79
+ [dc2d14ae5880]
80
+
81
+ * bin/treewhat:
82
+ Columns down in treewhat output instead of columns across
83
+ [194f63cb6a77]
84
+
85
+ * lib/treequel/branch.rb, spec/treequel/branch_spec.rb:
86
+ Fix inheritance of syntax for datatype conversion
87
+ [e316b9a3b910]
88
+
89
+ 2011-11-28 Michael Granger <ged@FaerieMUD.org>
90
+
91
+ * .hgtags:
92
+ Added tag v1.7.1 for changeset d6c10cbe2e3f
93
+ [6ef1954736f0]
94
+
95
+ * .hgsigs:
96
+ Added signature for changeset d2ba344f87e8
97
+ [d6c10cbe2e3f] [v1.7.1]
98
+
99
+ * History.rdoc, lib/treequel.rb:
100
+ Bumped patch version, updated History.
101
+ [d2ba344f87e8]
102
+
103
+ * README.rdoc:
104
+ Eliminated examples section from the README
105
+ [fbf90820a12a]
106
+
107
+ * lib/treequel/filter.rb, spec/treequel/filter_spec.rb:
108
+ Modified filter expressions to eliminate unnecessary ORing
109
+ [0799cc9deb8e]
110
+
111
+ * lib/treequel/model.rb, spec/treequel/model_spec.rb:
112
+ Efficiency fixes for Treequel::Model#modifications
113
+ [2792e665949d]
114
+
115
+ * lib/treequel/model.rb,
116
+ spec/treequel/model/schemavalidations_spec.rb,
117
+ spec/treequel/model_spec.rb:
118
+ Fixing missing DN attribute/s on Treequel::Model objects created via
119
+ attribute traversal methods.
120
+ [30b3df5c2363]
121
+
122
+ * lib/treequel/model/errors.rb:
123
+ Log added errors at ERROR level
124
+ [90bea31f4b1a]
125
+
1
126
  2011-11-09 Michael Granger <ged@FaerieMUD.org>
2
127
 
3
128
  * .hgtags:
4
129
  Added tag v1.7.0 for changeset 367d9982ea67
5
- [74e7687d2837] [tip]
130
+ [74e7687d2837]
6
131
 
7
132
  * .hgsigs:
8
133
  Added signature for changeset c5b83ddad969
@@ -20,7 +145,7 @@
20
145
  lib/treequel/schema/attributetype.rb,
21
146
  lib/treequel/schema/objectclass.rb, lib/treequel/utils.rb:
22
147
  De-Yarded
23
- [c5b83ddad969] [github/master]
148
+ [c5b83ddad969]
24
149
 
25
150
  * Rakefile:
26
151
  Require 'rake/clean' for the CLOBBER FileList
data/History.rdoc CHANGED
@@ -1,3 +1,12 @@
1
+ == v1.8.2 [2011-12-19] Michael Granger <ged@FaerieMUD.org>
2
+
3
+ - Fixing Treequel::Model#create by merging ADD and DELETE mods
4
+ generated by #modifications.
5
+ - Don't include non-lengthable ivars in
6
+ Treequel::Schema#ivar_descriptions (thanks to Ben Bleything for
7
+ reporting this).
8
+
9
+
1
10
  == v1.8.1 [2011-12-05] Michael Granger <ged@FaerieMUD.org>
2
11
 
3
12
  - Fixed #eql? implementation by using the hash-value instead of just
@@ -8,6 +17,7 @@
8
17
 
9
18
  - Added signature for changeset fa0d500e2dee
10
19
 
20
+
11
21
  == v1.8.0 [2011-12-05] Michael Granger <ged@FaerieMUD.org>
12
22
 
13
23
  - Implemented #eql? for Treequel::Branch for correct behavior in
@@ -438,26 +438,37 @@ class Treequel::Model < Treequel::Branch
438
438
  self.log.debug " comparing %s values to entry: %p vs. %p" %
439
439
  [ attribute, values, entry_values ]
440
440
 
441
+ mods = Hash.new {|h,k| h[k] = [] }
441
442
  Diff::LCS.sdiff( entry_values.sort, values.sort ) do |change|
442
443
  if change.adding?
443
444
  self.log.debug " found an addition: %p" % [ change ]
444
- mods << LDAP::Mod.new( LDAP::LDAP_MOD_ADD, attribute, [change.new_element] )
445
+ mods[:add] << change.new_element
445
446
 
446
447
  elsif change.changed?
447
448
  self.log.debug " found a modification: %p" % [ change ]
448
- mods << LDAP::Mod.new( LDAP::LDAP_MOD_REPLACE, attribute,
449
- [change.old_element, change.new_element] )
449
+ mods[:replace] << [ change.old_element, change.new_element ]
450
450
 
451
451
  elsif change.deleting?
452
452
  self.log.debug " found a deletion: %p" % [ change ]
453
- mods << LDAP::Mod.new( LDAP::LDAP_MOD_DELETE, attribute, [change.old_element] )
453
+ mods[:del] << change.old_element
454
454
  end
455
455
  end
456
456
 
457
457
  self.log.debug " attribute %p has modifications: %p" %
458
458
  [ attribute, mods ] unless mods.empty?
459
459
 
460
- return mods
460
+ # Now turn all of the modifications into LDAP::Mod objects, one per modified
461
+ # attribute
462
+ return mods.collect do |kind, values|
463
+ case kind
464
+ when :add
465
+ LDAP::Mod.new( LDAP::LDAP_MOD_ADD, attribute, values )
466
+ when :replace
467
+ values.collect {|pair| LDAP::Mod.new(LDAP::LDAP_MOD_REPLACE, attribute, pair) }
468
+ when :del
469
+ LDAP::Mod.new( LDAP::LDAP_MOD_DELETE, attribute, values )
470
+ end
471
+ end.flatten.compact
461
472
  end
462
473
 
463
474
 
@@ -349,6 +349,7 @@ class Treequel::Schema
349
349
  ### Return descriptions of the schema's artifacts, and how many of each it has.
350
350
  def ivar_descriptions
351
351
  self.instance_variables.sort.collect do |ivar|
352
+ next unless ivar.respond_to?( :length )
352
353
  len = self.instance_variable_get( ivar ).length
353
354
  "%d %s" % [ len, ivar.to_s.gsub(/_/, ' ')[1..-1] ]
354
355
  end
data/lib/treequel.rb CHANGED
@@ -26,10 +26,10 @@ end
26
26
  module Treequel
27
27
 
28
28
  # Library version
29
- VERSION = '1.8.1'
29
+ VERSION = '1.8.2'
30
30
 
31
31
  # VCS revision
32
- REVISION = %q$Revision: 507d14777c50 $
32
+ REVISION = %q$Revision: 343aab59c84b $
33
33
 
34
34
  # Common paths for ldap.conf
35
35
  COMMON_LDAP_CONF_PATHS = %w[
@@ -715,9 +715,7 @@ describe Treequel::Model do
715
715
  ldap_mod_add("gidNumber", "200"),
716
716
  ldap_mod_add("homeDirectory", "/u/j/jrandom"),
717
717
  ldap_mod_add("l", "a forest in England"),
718
- ldap_mod_add("objectClass", "inetOrgPerson"),
719
- ldap_mod_add("objectClass", "person"),
720
- ldap_mod_add("objectClass", "posixAccount"),
718
+ ldap_mod_add("objectClass", "inetOrgPerson", "person", "posixAccount"),
721
719
  ldap_mod_add("sn", "Hacker"),
722
720
  ldap_mod_add("uid", "jrandom"),
723
721
  ldap_mod_add("uidNumber", "1121")
data.tar.gz.sig CHANGED
@@ -1,2 +1 @@
1
- ��jV����m�����H���|��p��%�j���pqإ�����*��
2
- b74@�e�0�.�z��}��G|���i�z��H�2�E�#��k�MU�<Y�u���[3�XH� �V����H���,��lB] .O�Ԃ�t�vW�<o��j�Lj�/�����)��=4�" i��v�-��+��l���4
1
+ �S�UQ�:U�?d4"6{��}eu��M��G�*�*E����Oϒ���𶍽�sK?l��ъ��p��\'h��ng�h��9e�]�J�o"�n]s���OyE� ��2z�`N�և�%S����&��s� 5�]�<���as���۽z��L��0�Hjeg�4�D7y���,'�`�7���!�>� �Ҙ��9s��nq�ns�7��},�
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.8.1
4
+ version: 1.8.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -49,11 +49,11 @@ cert_chain:
49
49
  -----END CERTIFICATE-----
50
50
 
51
51
  '
52
- date: 2011-12-05 00:00:00.000000000 Z
52
+ date: 2011-12-20 00:00:00.000000000 Z
53
53
  dependencies:
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: ruby-ldap
56
- requirement: &70360852962800 !ruby/object:Gem::Requirement
56
+ requirement: &70151954119220 !ruby/object:Gem::Requirement
57
57
  none: false
58
58
  requirements:
59
59
  - - ~>
@@ -61,10 +61,10 @@ dependencies:
61
61
  version: '0.9'
62
62
  type: :runtime
63
63
  prerelease: false
64
- version_requirements: *70360852962800
64
+ version_requirements: *70151954119220
65
65
  - !ruby/object:Gem::Dependency
66
66
  name: diff-lcs
67
- requirement: &70360852962380 !ruby/object:Gem::Requirement
67
+ requirement: &70151954118800 !ruby/object:Gem::Requirement
68
68
  none: false
69
69
  requirements:
70
70
  - - ~>
@@ -72,10 +72,10 @@ dependencies:
72
72
  version: '1.1'
73
73
  type: :runtime
74
74
  prerelease: false
75
- version_requirements: *70360852962380
75
+ version_requirements: *70151954118800
76
76
  - !ruby/object:Gem::Dependency
77
77
  name: hoe-mercurial
78
- requirement: &70360852961960 !ruby/object:Gem::Requirement
78
+ requirement: &70151954118240 !ruby/object:Gem::Requirement
79
79
  none: false
80
80
  requirements:
81
81
  - - ~>
@@ -83,10 +83,10 @@ dependencies:
83
83
  version: 1.3.1
84
84
  type: :development
85
85
  prerelease: false
86
- version_requirements: *70360852961960
86
+ version_requirements: *70151954118240
87
87
  - !ruby/object:Gem::Dependency
88
88
  name: hoe-manualgen
89
- requirement: &70360852961500 !ruby/object:Gem::Requirement
89
+ requirement: &70151954117640 !ruby/object:Gem::Requirement
90
90
  none: false
91
91
  requirements:
92
92
  - - ~>
@@ -94,10 +94,10 @@ dependencies:
94
94
  version: 0.2.0
95
95
  type: :development
96
96
  prerelease: false
97
- version_requirements: *70360852961500
97
+ version_requirements: *70151954117640
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: hoe-highline
100
- requirement: &70360852961080 !ruby/object:Gem::Requirement
100
+ requirement: &70151954117140 !ruby/object:Gem::Requirement
101
101
  none: false
102
102
  requirements:
103
103
  - - ~>
@@ -105,10 +105,10 @@ dependencies:
105
105
  version: 0.0.1
106
106
  type: :development
107
107
  prerelease: false
108
- version_requirements: *70360852961080
108
+ version_requirements: *70151954117140
109
109
  - !ruby/object:Gem::Dependency
110
110
  name: rspec
111
- requirement: &70360852960620 !ruby/object:Gem::Requirement
111
+ requirement: &70151954116680 !ruby/object:Gem::Requirement
112
112
  none: false
113
113
  requirements:
114
114
  - - ~>
@@ -116,10 +116,10 @@ dependencies:
116
116
  version: '2.7'
117
117
  type: :development
118
118
  prerelease: false
119
- version_requirements: *70360852960620
119
+ version_requirements: *70151954116680
120
120
  - !ruby/object:Gem::Dependency
121
121
  name: ruby-termios
122
- requirement: &70360852960200 !ruby/object:Gem::Requirement
122
+ requirement: &70151954116240 !ruby/object:Gem::Requirement
123
123
  none: false
124
124
  requirements:
125
125
  - - ~>
@@ -127,10 +127,10 @@ dependencies:
127
127
  version: '0.9'
128
128
  type: :development
129
129
  prerelease: false
130
- version_requirements: *70360852960200
130
+ version_requirements: *70151954116240
131
131
  - !ruby/object:Gem::Dependency
132
132
  name: ruby-terminfo
133
- requirement: &70360852959780 !ruby/object:Gem::Requirement
133
+ requirement: &70151954115820 !ruby/object:Gem::Requirement
134
134
  none: false
135
135
  requirements:
136
136
  - - ~>
@@ -138,10 +138,10 @@ dependencies:
138
138
  version: '0.1'
139
139
  type: :development
140
140
  prerelease: false
141
- version_requirements: *70360852959780
141
+ version_requirements: *70151954115820
142
142
  - !ruby/object:Gem::Dependency
143
143
  name: columnize
144
- requirement: &70360852959360 !ruby/object:Gem::Requirement
144
+ requirement: &70151954115400 !ruby/object:Gem::Requirement
145
145
  none: false
146
146
  requirements:
147
147
  - - ~>
@@ -149,10 +149,10 @@ dependencies:
149
149
  version: '0.3'
150
150
  type: :development
151
151
  prerelease: false
152
- version_requirements: *70360852959360
152
+ version_requirements: *70151954115400
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: sysexits
155
- requirement: &70360852958940 !ruby/object:Gem::Requirement
155
+ requirement: &70151954114960 !ruby/object:Gem::Requirement
156
156
  none: false
157
157
  requirements:
158
158
  - - ~>
@@ -160,10 +160,10 @@ dependencies:
160
160
  version: '1.0'
161
161
  type: :development
162
162
  prerelease: false
163
- version_requirements: *70360852958940
163
+ version_requirements: *70151954114960
164
164
  - !ruby/object:Gem::Dependency
165
165
  name: sequel
166
- requirement: &70360852958520 !ruby/object:Gem::Requirement
166
+ requirement: &70151954114520 !ruby/object:Gem::Requirement
167
167
  none: false
168
168
  requirements:
169
169
  - - ~>
@@ -171,10 +171,10 @@ dependencies:
171
171
  version: '3.20'
172
172
  type: :development
173
173
  prerelease: false
174
- version_requirements: *70360852958520
174
+ version_requirements: *70151954114520
175
175
  - !ruby/object:Gem::Dependency
176
176
  name: hoe
177
- requirement: &70360852958100 !ruby/object:Gem::Requirement
177
+ requirement: &70151954114100 !ruby/object:Gem::Requirement
178
178
  none: false
179
179
  requirements:
180
180
  - - ~>
@@ -182,7 +182,7 @@ dependencies:
182
182
  version: '2.12'
183
183
  type: :development
184
184
  prerelease: false
185
- version_requirements: *70360852958100
185
+ version_requirements: *70151954114100
186
186
  description: ! "Treequel is an LDAP toolkit for Ruby. It is intended to allow quick,
187
187
  easy\naccess to LDAP directories in a manner consistent with LDAP's hierarchical,\nfree-form
188
188
  nature. \n\nIt's inspired by and modeled after [Sequel](http://sequel.rubyforge.org/),
metadata.gz.sig CHANGED
Binary file