rubysync 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- data/HISTORY.txt +4 -0
- data/Manifest.txt +25 -12
- data/README.txt +0 -2
- data/bin/rubysync +20 -6
- data/bin/rubysync.rb +333 -0
- data/docs/in_pipeline.graffle +2690 -0
- data/docs/init_openldap.ldif +11 -0
- data/docs/out_pipeline.graffle +3274 -0
- data/docs/schema/99rubysync.ldif +27 -0
- data/docs/schema/rubysync.schema +16 -0
- data/docs/to_sync.txt +15 -0
- data/docs/walkthru.txt +186 -0
- data/lib/ruby_sync.rb +7 -29
- data/lib/ruby_sync/connectors/base_connector.rb +55 -86
- data/lib/ruby_sync/connectors/csv_file_connector.rb +16 -4
- data/lib/ruby_sync/connectors/ldap_associations.rb +126 -0
- data/lib/ruby_sync/connectors/ldap_changelog_connector.rb +127 -0
- data/lib/ruby_sync/connectors/ldap_connector.rb +29 -192
- data/lib/ruby_sync/connectors/memory_connector.rb +1 -1
- data/lib/ruby_sync/connectors/xml_connector.rb +105 -32
- data/lib/ruby_sync/event.rb +40 -12
- data/lib/ruby_sync/operation.rb +18 -2
- data/lib/ruby_sync/pipelines/base_pipeline.rb +44 -6
- data/lib/ruby_sync/util/utilities.rb +97 -4
- data/lib/rubysync.rb +1 -1
- data/rubysync.tmproj +279 -59
- data/test/.LCKts_rubysync.rb~ +1 -0
- data/test/ruby_sync_test.rb +9 -4
- data/test/{test_active_record_vault.rb → tc_active_record_connector.rb} +11 -7
- data/test/{test_base_connector.rb → tc_base_connector.rb} +1 -1
- data/test/{test_base_pipeline.rb → tc_base_pipeline.rb} +1 -1
- data/test/tc_changelog_ldap_connector.rb +93 -0
- data/test/{test_csv_file_connector.rb → tc_csv_file_connector.rb} +14 -5
- data/test/{test_event.rb → tc_event.rb} +1 -1
- data/test/{test_ldap_changelog.rb → tc_ldap_changelog.rb} +1 -1
- data/test/{test_ldap_connector.rb → tc_ldap_connector.rb} +20 -22
- data/test/{test_ldap_vault.rb → tc_ldap_vault.rb} +2 -2
- data/test/{test_ldif.rb → tc_ldif.rb} +1 -1
- data/test/{test_memory_connectors.rb → tc_memory_connectors.rb} +10 -6
- data/test/{test_rubysync.rb → tc_rubysync.rb} +4 -4
- data/test/tc_transformation.rb +71 -0
- data/test/{test_utilities.rb → tc_utilities.rb} +28 -1
- data/test/tc_xml_connectors.rb +107 -6
- data/test/ts_rubysync.rb +11 -6
- metadata +33 -28
@@ -27,12 +27,30 @@ class ::File
|
|
27
27
|
end
|
28
28
|
end
|
29
29
|
|
30
|
+
class Object
|
31
|
+
|
32
|
+
# Make the log method globally available
|
33
|
+
def log
|
34
|
+
unless defined? @@log
|
35
|
+
@@log = Logger.new(STDOUT)
|
36
|
+
#@@log.level = Logger::DEBUG
|
37
|
+
@@log.datetime_format = "%H:%M:%S"
|
38
|
+
end
|
39
|
+
@@log
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
|
30
44
|
# Generally useful methods
|
31
45
|
module RubySync
|
32
46
|
module Utilities
|
33
|
-
|
34
47
|
@@base_path=nil
|
35
48
|
|
49
|
+
# If not already an array, slip into one
|
50
|
+
def as_array o
|
51
|
+
(o.instance_of? Array)? o : [o]
|
52
|
+
end
|
53
|
+
|
36
54
|
# Perform an action and rescue any exceptions thrown, display the exception with the specified text
|
37
55
|
def with_rescue text
|
38
56
|
begin
|
@@ -60,7 +78,7 @@ module RubySync
|
|
60
78
|
|
61
79
|
# Ensure that a given path exists as a directory
|
62
80
|
def ensure_dir_exists paths
|
63
|
-
paths.
|
81
|
+
as_array(paths).each do |path|
|
64
82
|
raise Exception.new("Can't create nil directory") unless path
|
65
83
|
if File.exist? path
|
66
84
|
unless File.directory? path
|
@@ -113,7 +131,7 @@ module RubySync
|
|
113
131
|
# Keep going up until we start repeating ourselves
|
114
132
|
while File.directory?(bp) && bp != last && bp != "/"
|
115
133
|
return bp if File.directory?("#{bp}/pipelines") &&
|
116
|
-
|
134
|
+
File.directory?("#{bp}/connectors")
|
117
135
|
last = bp
|
118
136
|
bp = File.expand_path("#{bp}/..")
|
119
137
|
end
|
@@ -141,5 +159,80 @@ module RubySync
|
|
141
159
|
"#{dir}#{file}"
|
142
160
|
end
|
143
161
|
|
162
|
+
# Performs the given operations on the given record. The record is a
|
163
|
+
# Hash in which each key is a field name and each value is an array of
|
164
|
+
# values for that field.
|
165
|
+
# Operations is an Array of RubySync::Operation objects to be performed on the record.
|
166
|
+
def perform_operations operations, record={}, options={}
|
167
|
+
subjects = options[:subjects]
|
168
|
+
operations.each do |op|
|
169
|
+
unless op.instance_of? RubySync::Operation
|
170
|
+
log.warn "!!!!!!!!!! PROBLEM, DUMP FOLLOWS: !!!!!!!!!!!!!!"
|
171
|
+
p op
|
172
|
+
end
|
173
|
+
next if subjects and !subjects.include?(op.subject)
|
174
|
+
case op.type
|
175
|
+
when :add
|
176
|
+
if record[op.subject]
|
177
|
+
existing = as_array(record[op.subject])
|
178
|
+
next if existing == op.values # already same so ignore
|
179
|
+
(existing & op.values).empty? or
|
180
|
+
raise "Attempt to add duplicate elements to #{name}"
|
181
|
+
record[op.subject] = existing + op.values
|
182
|
+
else
|
183
|
+
record[op.subject] = op.values
|
184
|
+
end
|
185
|
+
when :replace
|
186
|
+
record[op.subject] = op.values
|
187
|
+
when :delete
|
188
|
+
if value == nil || value == "" || value == []
|
189
|
+
record.delete(op.subject)
|
190
|
+
else
|
191
|
+
record[op.subject] -= values
|
192
|
+
end
|
193
|
+
else
|
194
|
+
raise Exception.new("Unknown operation '#{op.type}'")
|
195
|
+
end
|
196
|
+
end
|
197
|
+
return record
|
198
|
+
end
|
199
|
+
|
200
|
+
|
201
|
+
# Filter operations to eliminate those that would have
|
202
|
+
# no effect on the record. Returns the resulting array
|
203
|
+
# of operations.
|
204
|
+
def effective_operations operations, record={}
|
205
|
+
effective = []
|
206
|
+
operations.each do |op|
|
207
|
+
existing = as_array(record[op.subject] || [])
|
208
|
+
case op.type
|
209
|
+
when :add
|
210
|
+
if existing.empty?
|
211
|
+
effective << op
|
212
|
+
else
|
213
|
+
next if existing == op.values # already same so ignore
|
214
|
+
effective << Operation.replace(op.subject, op.values)
|
215
|
+
end
|
216
|
+
when :replace
|
217
|
+
if existing.empty?
|
218
|
+
effective << Operation.add(op.subject, op.values)
|
219
|
+
else
|
220
|
+
next if existing == op.values
|
221
|
+
effective << op
|
222
|
+
end
|
223
|
+
when :delete
|
224
|
+
if [nil, "", []].include?(op.values)
|
225
|
+
effective << op if record[op.subject]
|
226
|
+
else
|
227
|
+
targets = op.values & existing
|
228
|
+
targets.empty? or effective << Operation.delete(op.subject, targets)
|
229
|
+
end
|
230
|
+
else
|
231
|
+
raise Exception.new("Unknown operation '#{op.type}'")
|
232
|
+
end
|
233
|
+
end
|
234
|
+
effective
|
235
|
+
end
|
236
|
+
|
144
237
|
end
|
145
|
-
end
|
238
|
+
end
|
data/lib/rubysync.rb
CHANGED
data/rubysync.tmproj
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
<plist version="1.0">
|
4
4
|
<dict>
|
5
5
|
<key>currentDocument</key>
|
6
|
-
<string>
|
6
|
+
<string>gemspec</string>
|
7
7
|
<key>documents</key>
|
8
8
|
<array>
|
9
9
|
<dict>
|
@@ -33,22 +33,64 @@
|
|
33
33
|
</dict>
|
34
34
|
</array>
|
35
35
|
<key>fileHierarchyDrawerWidth</key>
|
36
|
-
<integer>
|
36
|
+
<integer>246</integer>
|
37
37
|
<key>metaData</key>
|
38
38
|
<dict>
|
39
|
+
<key>HISTORY.txt</key>
|
40
|
+
<dict>
|
41
|
+
<key>caret</key>
|
42
|
+
<dict>
|
43
|
+
<key>column</key>
|
44
|
+
<integer>0</integer>
|
45
|
+
<key>line</key>
|
46
|
+
<integer>0</integer>
|
47
|
+
</dict>
|
48
|
+
<key>firstVisibleColumn</key>
|
49
|
+
<integer>0</integer>
|
50
|
+
<key>firstVisibleLine</key>
|
51
|
+
<integer>0</integer>
|
52
|
+
</dict>
|
53
|
+
<key>Manifest.txt</key>
|
54
|
+
<dict>
|
55
|
+
<key>caret</key>
|
56
|
+
<dict>
|
57
|
+
<key>column</key>
|
58
|
+
<integer>0</integer>
|
59
|
+
<key>line</key>
|
60
|
+
<integer>0</integer>
|
61
|
+
</dict>
|
62
|
+
<key>firstVisibleColumn</key>
|
63
|
+
<integer>0</integer>
|
64
|
+
<key>firstVisibleLine</key>
|
65
|
+
<integer>0</integer>
|
66
|
+
</dict>
|
67
|
+
<key>Rakefile</key>
|
68
|
+
<dict>
|
69
|
+
<key>caret</key>
|
70
|
+
<dict>
|
71
|
+
<key>column</key>
|
72
|
+
<integer>24</integer>
|
73
|
+
<key>line</key>
|
74
|
+
<integer>27</integer>
|
75
|
+
</dict>
|
76
|
+
<key>firstVisibleColumn</key>
|
77
|
+
<integer>0</integer>
|
78
|
+
<key>firstVisibleLine</key>
|
79
|
+
<integer>0</integer>
|
80
|
+
</dict>
|
39
81
|
<key>bin/rubysync</key>
|
40
82
|
<dict>
|
41
83
|
<key>caret</key>
|
42
84
|
<dict>
|
43
85
|
<key>column</key>
|
44
|
-
<integer>
|
86
|
+
<integer>0</integer>
|
45
87
|
<key>line</key>
|
46
|
-
<integer>
|
88
|
+
<integer>264</integer>
|
47
89
|
</dict>
|
48
90
|
<key>firstVisibleColumn</key>
|
49
91
|
<integer>0</integer>
|
50
92
|
<key>firstVisibleLine</key>
|
51
|
-
<integer>
|
93
|
+
<integer>218</integer>
|
52
94
|
</dict>
|
53
95
|
<key>examples/ar_webapp/db/migrate/009_create_ruby_sync_states.rb</key>
|
54
96
|
<dict>
|
@@ -64,75 +106,91 @@
|
|
64
106
|
<key>firstVisibleLine</key>
|
65
107
|
<integer>0</integer>
|
66
108
|
</dict>
|
67
|
-
<key>
|
109
|
+
<key>gemspec</key>
|
68
110
|
<dict>
|
69
111
|
<key>caret</key>
|
70
112
|
<dict>
|
71
113
|
<key>column</key>
|
72
|
-
<integer>
|
114
|
+
<integer>34</integer>
|
73
115
|
<key>line</key>
|
74
|
-
<integer>
|
116
|
+
<integer>19</integer>
|
75
117
|
</dict>
|
76
118
|
<key>firstVisibleColumn</key>
|
77
119
|
<integer>0</integer>
|
78
120
|
<key>firstVisibleLine</key>
|
79
|
-
<integer>
|
121
|
+
<integer>0</integer>
|
80
122
|
</dict>
|
81
|
-
<key>lib/
|
123
|
+
<key>lib/net/ldif.rb</key>
|
82
124
|
<dict>
|
83
125
|
<key>caret</key>
|
84
126
|
<dict>
|
85
127
|
<key>column</key>
|
86
|
-
<integer>
|
128
|
+
<integer>0</integer>
|
87
129
|
<key>line</key>
|
88
|
-
<integer>
|
130
|
+
<integer>14</integer>
|
89
131
|
</dict>
|
132
|
+
<key>columnSelection</key>
|
133
|
+
<false/>
|
90
134
|
<key>firstVisibleColumn</key>
|
91
135
|
<integer>0</integer>
|
92
136
|
<key>firstVisibleLine</key>
|
93
|
-
<integer>
|
137
|
+
<integer>0</integer>
|
138
|
+
<key>selectFrom</key>
|
139
|
+
<dict>
|
140
|
+
<key>column</key>
|
141
|
+
<integer>0</integer>
|
142
|
+
<key>line</key>
|
143
|
+
<integer>6</integer>
|
144
|
+
</dict>
|
145
|
+
<key>selectTo</key>
|
146
|
+
<dict>
|
147
|
+
<key>column</key>
|
148
|
+
<integer>0</integer>
|
149
|
+
<key>line</key>
|
150
|
+
<integer>14</integer>
|
151
|
+
</dict>
|
94
152
|
</dict>
|
95
|
-
<key>lib/ruby_sync
|
153
|
+
<key>lib/ruby_sync.rb</key>
|
96
154
|
<dict>
|
97
155
|
<key>caret</key>
|
98
156
|
<dict>
|
99
157
|
<key>column</key>
|
100
|
-
<integer>
|
158
|
+
<integer>0</integer>
|
101
159
|
<key>line</key>
|
102
|
-
<integer>
|
160
|
+
<integer>14</integer>
|
103
161
|
</dict>
|
104
162
|
<key>firstVisibleColumn</key>
|
105
163
|
<integer>0</integer>
|
106
164
|
<key>firstVisibleLine</key>
|
107
|
-
<integer>
|
165
|
+
<integer>3</integer>
|
108
166
|
</dict>
|
109
|
-
<key>lib/ruby_sync/connectors/
|
167
|
+
<key>lib/ruby_sync/connectors/active_record_association_handler.rb</key>
|
110
168
|
<dict>
|
111
169
|
<key>caret</key>
|
112
170
|
<dict>
|
113
171
|
<key>column</key>
|
114
|
-
<integer>
|
172
|
+
<integer>3</integer>
|
115
173
|
<key>line</key>
|
116
|
-
<integer>
|
174
|
+
<integer>45</integer>
|
117
175
|
</dict>
|
118
176
|
<key>firstVisibleColumn</key>
|
119
177
|
<integer>0</integer>
|
120
178
|
<key>firstVisibleLine</key>
|
121
|
-
<integer>
|
179
|
+
<integer>28</integer>
|
122
180
|
</dict>
|
123
|
-
<key>lib/ruby_sync/connectors/
|
181
|
+
<key>lib/ruby_sync/connectors/active_record_event_handler.rb</key>
|
124
182
|
<dict>
|
125
183
|
<key>caret</key>
|
126
184
|
<dict>
|
127
185
|
<key>column</key>
|
128
|
-
<integer>
|
186
|
+
<integer>30</integer>
|
129
187
|
<key>line</key>
|
130
|
-
<integer>
|
188
|
+
<integer>24</integer>
|
131
189
|
</dict>
|
132
190
|
<key>firstVisibleColumn</key>
|
133
191
|
<integer>0</integer>
|
134
192
|
<key>firstVisibleLine</key>
|
135
|
-
<integer>
|
193
|
+
<integer>9</integer>
|
136
194
|
</dict>
|
137
195
|
<key>lib/ruby_sync/connectors/connector_event_processing.rb</key>
|
138
196
|
<dict>
|
@@ -185,12 +243,12 @@
|
|
185
243
|
<key>column</key>
|
186
244
|
<integer>0</integer>
|
187
245
|
<key>line</key>
|
188
|
-
<integer>
|
246
|
+
<integer>76</integer>
|
189
247
|
</dict>
|
190
248
|
<key>firstVisibleColumn</key>
|
191
249
|
<integer>0</integer>
|
192
250
|
<key>firstVisibleLine</key>
|
193
|
-
<integer>
|
251
|
+
<integer>43</integer>
|
194
252
|
</dict>
|
195
253
|
<key>lib/ruby_sync/connectors/xml_connector.rb</key>
|
196
254
|
<dict>
|
@@ -199,12 +257,28 @@
|
|
199
257
|
<key>column</key>
|
200
258
|
<integer>0</integer>
|
201
259
|
<key>line</key>
|
202
|
-
<integer>
|
260
|
+
<integer>156</integer>
|
203
261
|
</dict>
|
262
|
+
<key>columnSelection</key>
|
263
|
+
<false/>
|
204
264
|
<key>firstVisibleColumn</key>
|
205
265
|
<integer>0</integer>
|
206
266
|
<key>firstVisibleLine</key>
|
207
|
-
<integer>
|
267
|
+
<integer>127</integer>
|
268
|
+
<key>selectFrom</key>
|
269
|
+
<dict>
|
270
|
+
<key>column</key>
|
271
|
+
<integer>0</integer>
|
272
|
+
<key>line</key>
|
273
|
+
<integer>155</integer>
|
274
|
+
</dict>
|
275
|
+
<key>selectTo</key>
|
276
|
+
<dict>
|
277
|
+
<key>column</key>
|
278
|
+
<integer>0</integer>
|
279
|
+
<key>line</key>
|
280
|
+
<integer>156</integer>
|
281
|
+
</dict>
|
208
282
|
</dict>
|
209
283
|
<key>lib/ruby_sync/event.rb</key>
|
210
284
|
<dict>
|
@@ -218,7 +292,21 @@
|
|
218
292
|
<key>firstVisibleColumn</key>
|
219
293
|
<integer>0</integer>
|
220
294
|
<key>firstVisibleLine</key>
|
221
|
-
<integer>
|
295
|
+
<integer>42</integer>
|
296
|
+
</dict>
|
297
|
+
<key>lib/ruby_sync/pipelines/base_pipeline.rb</key>
|
298
|
+
<dict>
|
299
|
+
<key>caret</key>
|
300
|
+
<dict>
|
301
|
+
<key>column</key>
|
302
|
+
<integer>26</integer>
|
303
|
+
<key>line</key>
|
304
|
+
<integer>289</integer>
|
305
|
+
</dict>
|
306
|
+
<key>firstVisibleColumn</key>
|
307
|
+
<integer>0</integer>
|
308
|
+
<key>firstVisibleLine</key>
|
309
|
+
<integer>260</integer>
|
222
310
|
</dict>
|
223
311
|
<key>lib/ruby_sync/util/utilities.rb</key>
|
224
312
|
<dict>
|
@@ -234,19 +322,91 @@
|
|
234
322
|
<key>firstVisibleLine</key>
|
235
323
|
<integer>75</integer>
|
236
324
|
</dict>
|
325
|
+
<key>lib/rubysync.rb</key>
|
326
|
+
<dict>
|
327
|
+
<key>caret</key>
|
328
|
+
<dict>
|
329
|
+
<key>column</key>
|
330
|
+
<integer>18</integer>
|
331
|
+
<key>line</key>
|
332
|
+
<integer>17</integer>
|
333
|
+
</dict>
|
334
|
+
<key>firstVisibleColumn</key>
|
335
|
+
<integer>0</integer>
|
336
|
+
<key>firstVisibleLine</key>
|
337
|
+
<integer>0</integer>
|
338
|
+
</dict>
|
339
|
+
<key>pkg/rubysync-0.0.3/lib/ruby_sync/pipelines/base_pipeline.rb</key>
|
340
|
+
<dict>
|
341
|
+
<key>caret</key>
|
342
|
+
<dict>
|
343
|
+
<key>column</key>
|
344
|
+
<integer>30</integer>
|
345
|
+
<key>line</key>
|
346
|
+
<integer>254</integer>
|
347
|
+
</dict>
|
348
|
+
<key>firstVisibleColumn</key>
|
349
|
+
<integer>0</integer>
|
350
|
+
<key>firstVisibleLine</key>
|
351
|
+
<integer>224</integer>
|
352
|
+
</dict>
|
353
|
+
<key>test/hashlike_tests.rb</key>
|
354
|
+
<dict>
|
355
|
+
<key>caret</key>
|
356
|
+
<dict>
|
357
|
+
<key>column</key>
|
358
|
+
<integer>0</integer>
|
359
|
+
<key>line</key>
|
360
|
+
<integer>39</integer>
|
361
|
+
</dict>
|
362
|
+
<key>firstVisibleColumn</key>
|
363
|
+
<integer>0</integer>
|
364
|
+
<key>firstVisibleLine</key>
|
365
|
+
<integer>38</integer>
|
366
|
+
</dict>
|
237
367
|
<key>test/ruby_sync_test.rb</key>
|
238
368
|
<dict>
|
239
369
|
<key>caret</key>
|
240
370
|
<dict>
|
241
371
|
<key>column</key>
|
242
|
-
<integer>
|
372
|
+
<integer>0</integer>
|
373
|
+
<key>line</key>
|
374
|
+
<integer>18</integer>
|
375
|
+
</dict>
|
376
|
+
<key>columnSelection</key>
|
377
|
+
<false/>
|
378
|
+
<key>firstVisibleColumn</key>
|
379
|
+
<integer>0</integer>
|
380
|
+
<key>firstVisibleLine</key>
|
381
|
+
<integer>12</integer>
|
382
|
+
<key>selectFrom</key>
|
383
|
+
<dict>
|
384
|
+
<key>column</key>
|
385
|
+
<integer>19</integer>
|
386
|
+
<key>line</key>
|
387
|
+
<integer>20</integer>
|
388
|
+
</dict>
|
389
|
+
<key>selectTo</key>
|
390
|
+
<dict>
|
391
|
+
<key>column</key>
|
392
|
+
<integer>0</integer>
|
243
393
|
<key>line</key>
|
244
|
-
<integer>
|
394
|
+
<integer>18</integer>
|
395
|
+
</dict>
|
396
|
+
</dict>
|
397
|
+
<key>test/tc_xml_connectors.rb</key>
|
398
|
+
<dict>
|
399
|
+
<key>caret</key>
|
400
|
+
<dict>
|
401
|
+
<key>column</key>
|
402
|
+
<integer>0</integer>
|
403
|
+
<key>line</key>
|
404
|
+
<integer>0</integer>
|
245
405
|
</dict>
|
246
406
|
<key>firstVisibleColumn</key>
|
247
407
|
<integer>0</integer>
|
248
408
|
<key>firstVisibleLine</key>
|
249
|
-
<integer>
|
409
|
+
<integer>76</integer>
|
250
410
|
</dict>
|
251
411
|
<key>test/test_active_record_vault.rb</key>
|
252
412
|
<dict>
|
@@ -267,14 +427,30 @@
|
|
267
427
|
<key>caret</key>
|
268
428
|
<dict>
|
269
429
|
<key>column</key>
|
270
|
-
<integer>
|
430
|
+
<integer>0</integer>
|
271
431
|
<key>line</key>
|
272
|
-
<integer>
|
432
|
+
<integer>16</integer>
|
273
433
|
</dict>
|
434
|
+
<key>columnSelection</key>
|
435
|
+
<false/>
|
274
436
|
<key>firstVisibleColumn</key>
|
275
437
|
<integer>0</integer>
|
276
438
|
<key>firstVisibleLine</key>
|
277
439
|
<integer>10</integer>
|
440
|
+
<key>selectFrom</key>
|
441
|
+
<dict>
|
442
|
+
<key>column</key>
|
443
|
+
<integer>0</integer>
|
444
|
+
<key>line</key>
|
445
|
+
<integer>21</integer>
|
446
|
+
</dict>
|
447
|
+
<key>selectTo</key>
|
448
|
+
<dict>
|
449
|
+
<key>column</key>
|
450
|
+
<integer>0</integer>
|
451
|
+
<key>line</key>
|
452
|
+
<integer>16</integer>
|
453
|
+
</dict>
|
278
454
|
</dict>
|
279
455
|
<key>test/test_ldap_changelog.rb</key>
|
280
456
|
<dict>
|
@@ -295,54 +471,98 @@
|
|
295
471
|
<key>caret</key>
|
296
472
|
<dict>
|
297
473
|
<key>column</key>
|
298
|
-
<integer>
|
474
|
+
<integer>0</integer>
|
299
475
|
<key>line</key>
|
300
|
-
<integer>
|
476
|
+
<integer>84</integer>
|
301
477
|
</dict>
|
302
478
|
<key>firstVisibleColumn</key>
|
303
479
|
<integer>0</integer>
|
304
480
|
<key>firstVisibleLine</key>
|
305
|
-
<integer>
|
481
|
+
<integer>0</integer>
|
482
|
+
</dict>
|
483
|
+
<key>test/test_ldif.rb</key>
|
484
|
+
<dict>
|
485
|
+
<key>caret</key>
|
486
|
+
<dict>
|
487
|
+
<key>column</key>
|
488
|
+
<integer>0</integer>
|
489
|
+
<key>line</key>
|
490
|
+
<integer>41</integer>
|
491
|
+
</dict>
|
492
|
+
<key>firstVisibleColumn</key>
|
493
|
+
<integer>0</integer>
|
494
|
+
<key>firstVisibleLine</key>
|
495
|
+
<integer>23</integer>
|
306
496
|
</dict>
|
307
497
|
<key>test/test_memory_connectors.rb</key>
|
308
498
|
<dict>
|
309
499
|
<key>caret</key>
|
310
500
|
<dict>
|
311
501
|
<key>column</key>
|
312
|
-
<integer>
|
502
|
+
<integer>13</integer>
|
313
503
|
<key>line</key>
|
314
|
-
<integer>
|
504
|
+
<integer>27</integer>
|
315
505
|
</dict>
|
316
506
|
<key>firstVisibleColumn</key>
|
317
507
|
<integer>0</integer>
|
318
508
|
<key>firstVisibleLine</key>
|
319
|
-
<integer>
|
509
|
+
<integer>8</integer>
|
510
|
+
</dict>
|
511
|
+
<key>test/test_rubysync.rb</key>
|
512
|
+
<dict>
|
513
|
+
<key>caret</key>
|
514
|
+
<dict>
|
515
|
+
<key>column</key>
|
516
|
+
<integer>0</integer>
|
517
|
+
<key>line</key>
|
518
|
+
<integer>27</integer>
|
519
|
+
</dict>
|
520
|
+
<key>firstVisibleColumn</key>
|
521
|
+
<integer>0</integer>
|
522
|
+
<key>firstVisibleLine</key>
|
523
|
+
<integer>0</integer>
|
524
|
+
</dict>
|
525
|
+
<key>test/ts_rubysync.rb</key>
|
526
|
+
<dict>
|
527
|
+
<key>caret</key>
|
528
|
+
<dict>
|
529
|
+
<key>column</key>
|
530
|
+
<integer>0</integer>
|
531
|
+
<key>line</key>
|
532
|
+
<integer>15</integer>
|
533
|
+
</dict>
|
534
|
+
<key>columnSelection</key>
|
535
|
+
<false/>
|
536
|
+
<key>firstVisibleColumn</key>
|
537
|
+
<integer>0</integer>
|
538
|
+
<key>firstVisibleLine</key>
|
539
|
+
<integer>0</integer>
|
540
|
+
<key>selectFrom</key>
|
541
|
+
<dict>
|
542
|
+
<key>column</key>
|
543
|
+
<integer>39</integer>
|
544
|
+
<key>line</key>
|
545
|
+
<integer>21</integer>
|
546
|
+
</dict>
|
547
|
+
<key>selectTo</key>
|
548
|
+
<dict>
|
549
|
+
<key>column</key>
|
550
|
+
<integer>0</integer>
|
551
|
+
<key>line</key>
|
552
|
+
<integer>15</integer>
|
553
|
+
</dict>
|
320
554
|
</dict>
|
321
555
|
</dict>
|
322
556
|
<key>openDocuments</key>
|
323
557
|
<array>
|
324
558
|
<string>lib/ruby_sync/connectors/xml_connector.rb</string>
|
325
|
-
<string>
|
326
|
-
<string>
|
327
|
-
<string>
|
328
|
-
<string>test/test_active_record_vault.rb</string>
|
329
|
-
<string>test/test_ldap_connector.rb</string>
|
330
|
-
<string>test/test_ldap_changelog.rb</string>
|
331
|
-
<string>test/ruby_sync_test.rb</string>
|
332
|
-
<string>test/test_base_pipeline.rb</string>
|
333
|
-
<string>lib/ruby_sync/util/utilities.rb</string>
|
334
|
-
<string>lib/ruby_sync/event.rb</string>
|
335
|
-
<string>bin/rubysync</string>
|
336
|
-
<string>lib/ruby_sync.rb</string>
|
337
|
-
<string>lib/ruby_sync/connectors/ldap_connector.rb</string>
|
338
|
-
<string>lib/ruby_sync/connectors/base_connector.rb</string>
|
339
|
-
<string>lib/ruby_sync/connectors/memory_connector.rb</string>
|
340
|
-
<string>test/test_memory_connectors.rb</string>
|
341
|
-
<string>lib/ruby_sync/connectors/connector_event_processing.rb</string>
|
559
|
+
<string>test/tc_xml_connectors.rb</string>
|
560
|
+
<string>Rakefile</string>
|
561
|
+
<string>gemspec</string>
|
342
562
|
</array>
|
343
563
|
<key>showFileHierarchyDrawer</key>
|
344
564
|
<true/>
|
345
565
|
<key>windowFrame</key>
|
346
|
-
<string>{{
|
566
|
+
<string>{{-1024, -139}, {1024, 1024}}</string>
|
347
567
|
</dict>
|
348
568
|
</plist>
|