sugarcrm 0.9.15 → 0.9.16

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile.lock ADDED
@@ -0,0 +1,24 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activesupport (3.0.10)
5
+ git (1.2.5)
6
+ i18n (0.6.0)
7
+ jeweler (1.5.2)
8
+ bundler (~> 1.0.0)
9
+ git (>= 1.2.5)
10
+ rake
11
+ json (1.5.3)
12
+ rake (0.9.2)
13
+ shoulda (2.11.3)
14
+
15
+ PLATFORMS
16
+ ruby
17
+
18
+ DEPENDENCIES
19
+ activesupport (>= 2.3.10)
20
+ bundler (~> 1.0.0)
21
+ i18n
22
+ jeweler (~> 1.5.2)
23
+ json
24
+ shoulda
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.9.15
1
+ 0.9.16
@@ -14,6 +14,7 @@ module SugarCRM; class Connection
14
14
  attr :options, true
15
15
  attr :request, true
16
16
  attr :response, true
17
+ attr :errors, true
17
18
 
18
19
  # This is the singleton connection class.
19
20
  def initialize(url, user, pass, options={})
@@ -22,6 +23,7 @@ module SugarCRM; class Connection
22
23
  :register_modules => true,
23
24
  :load_environment => true
24
25
  }.merge(options)
26
+ @errors = []
25
27
  @url = URI.parse(url)
26
28
  @user = user
27
29
  @pass = pass
@@ -65,43 +67,42 @@ module SugarCRM; class Connection
65
67
  end
66
68
  @connection.start
67
69
  end
70
+ alias :reconnect! :connect!
68
71
 
69
72
  # Send a request to the Sugar Instance
70
- def send!(method, json)
71
- nb_failed_attempts = 0 # how many times we have failed to send
73
+ def send!(method, json, max_retry=3)
74
+ if max_retry == 0
75
+ raise SugarCRM::RetryLimitExceeded, "SugarCRM::Connection Errors: \n#{@errors.reverse.join "\n\s\s"}"
76
+ end
72
77
  @request = SugarCRM::Request.new(@url, method, json, @options[:debug])
78
+ # Send Ze Request
73
79
  begin
74
80
  if @request.length > 3900
75
81
  @response = @connection.post(@url.path, @request)
76
82
  else
77
83
  @response = @connection.get(@url.path.dup + "?" + @request.to_s)
78
84
  end
79
- rescue Timeout::Error, Errno::ECONNABORTED
80
- nb_failed_attempts += 1
81
- unless nb_failed_attempts >= 3
82
- retry
83
- else
84
- raise
85
- end
86
- rescue Errno::ECONNRESET, EOFError
87
- nb_failed_attempts += 1
88
- unless nb_failed_attempts >= 3
89
- retry!(method, json)
90
- else
91
- raise
92
- end
93
- end
94
- handle_response
95
- end
96
-
97
- # Sometimes our connection just disappears but we still have a session.
98
- # This method forces a reconnect and relogin to update the session and resend
99
- # the request.
100
- def retry!(method, json)
101
- connect!
102
- login!
103
- send!(method,json)
85
+ return handle_response
86
+ # Timeouts are usually a server side issue
87
+ rescue Timeout::Error => error
88
+ @errors << error
89
+ send!(method, json, max_retry.pred)
90
+ # Lower level errors requiring a reconnect
91
+ rescue Errno::ECONNRESET, Errno::ECONNABORTED, Errno::EPIPE, EOFError => error
92
+ @errors << error
93
+ reconnect!
94
+ send!(method, json, max_retry.pred)
95
+ # Handle invalid sessions
96
+ rescue SugarCRM::InvalidSession => error
97
+ @errors << error
98
+ old_session = @sugar_session_id.dup
99
+ login!
100
+ # Update the session id in the request that we want to retry.
101
+ json.gsub!(old_session, @sugar_session_id)
102
+ send!(method, json, max_retry.pred)
103
+ end
104
104
  end
105
+ alias :retry! :send!
105
106
 
106
107
  def debug=(debug)
107
108
  options[:debug] = debug
@@ -132,31 +133,74 @@ module SugarCRM; class Connection
132
133
  end
133
134
 
134
135
  def process_response
135
- # Complain if our body is empty.
136
+ empty_body?
137
+ if response_contains_json?
138
+ return parse_response
139
+ else
140
+ return @response.body
141
+ end
142
+ end
143
+
144
+ def resolve_url
145
+ # Appends the rest.php path onto the end of the URL if it's not included
146
+ if @url.path !~ /rest.php$/
147
+ @url.path += URL
148
+ end
149
+ end
150
+
151
+ # Complain if our body is empty.
152
+ def empty_body?
136
153
  raise SugarCRM::EmptyResponse unless @response.body
137
- # Some methods are dumb and don't return a JSON Response
138
- return @response.body if RESPONSE_IS_NOT_JSON.include? @request.method
154
+ end
155
+
156
+ # Some methods are dumb and don't return a JSON Response
157
+ def response_contains_json?
158
+ if RESPONSE_IS_NOT_JSON.include? @request.method
159
+ return false
160
+ end
161
+ true
162
+ end
163
+
164
+ def parse_response
139
165
  begin
140
166
  # Push it through the old meat grinder.
141
- response_json = JSON.parse(@response.body)
167
+ json = JSON.parse(@response.body)
142
168
  rescue StandardError => e
169
+ # Complain if we can't parse
143
170
  raise UnhandledResponse, @response.body
144
171
  end
145
- # Empty result. Is this wise?
146
- return nil if response_json["result_count"] == 0
147
- # Filter debugging on REALLY BIG responses
148
- if @options[:debug] && !(DONT_SHOW_DEBUG_FOR.include? @request.method)
149
- puts "#{@request.method}: JSON Response:"
150
- pp response_json
151
- puts "\n"
172
+ # Do ze debugs!
173
+ nice_debugging_for json
174
+ # Check for an invalid session
175
+ invalid_session? json
176
+ # Check for an empty result set
177
+ if zero_results? json
178
+ return nil
152
179
  end
153
- return response_json
180
+ json
181
+ end
182
+
183
+ # Check if we got an invalid session error back
184
+ # something like:
185
+ # {"name"=>"Invalid Session ID",
186
+ # "number"=>11,
187
+ # "description"=>"The session ID is invalid"}
188
+ def invalid_session?(json)
189
+ return false unless json["name"]
190
+ return false if @request.method == :logout
191
+ raise SugarCRM::InvalidSession if json["name"] == "Invalid Session ID"
154
192
  end
155
193
 
156
- def resolve_url
157
- # Appends the rest.php path onto the end of the URL if it's not included
158
- if @url.path !~ /rest.php$/
159
- @url.path += URL
194
+ def zero_results?(json)
195
+ json["result_count"] == 0
196
+ end
197
+
198
+ # Filter debugging on REALLY BIG responses
199
+ def nice_debugging_for(json)
200
+ if @options[:debug] && !(DONT_SHOW_DEBUG_FOR.include? @request.method)
201
+ puts "#{@request.method}: JSON Response:"
202
+ pp json
203
+ puts "\n"
160
204
  end
161
205
  end
162
206
 
@@ -1,7 +1,8 @@
1
1
  require 'monitor'
2
2
 
3
3
  module SugarCRM; class ConnectionPool
4
- attr_reader :size, :timeout
4
+ attr_accessor :timeout
5
+ attr_reader :size
5
6
  def initialize(session)
6
7
  @session = session
7
8
 
@@ -1,6 +1,8 @@
1
1
  module SugarCRM
2
2
  class NoActiveSession < RuntimeError; end
3
3
  class MultipleSessions < RuntimeError; end
4
+ class InvalidSession < RuntimeError; end
5
+ class RetryLimitExceeded < RuntimeError; end
4
6
  class LoginError < RuntimeError; end
5
7
  class MissingCredentials < RuntimeError; end
6
8
  class ConnectionTimeoutError < RuntimeError; end
@@ -111,9 +111,7 @@ module SugarCRM; class Session
111
111
  end
112
112
 
113
113
  def update_config(params)
114
- params.each{|k,v|
115
- @config[k.to_sym] = v
116
- }
114
+ params.each{ |k,v| @config[k.to_sym] = v }
117
115
  @config
118
116
  end
119
117
 
data/sugarcrm.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{sugarcrm}
8
- s.version = "0.9.15"
8
+ s.version = "0.9.16"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Carl Hicks", "David Sulc"]
12
- s.date = %q{2011-05-18}
12
+ s.date = %q{2011-08-26}
13
13
  s.default_executable = %q{sugarcrm}
14
14
  s.email = %q{carl.hicks@gmail.com}
15
15
  s.executables = ["sugarcrm"]
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
  ]
20
20
  s.files = [
21
21
  "./Gemfile",
22
+ "./Gemfile.lock",
22
23
  "./LICENSE",
23
24
  "./README.rdoc",
24
25
  "./Rakefile",
@@ -79,7 +80,8 @@ Gem::Specification.new do |s|
79
80
  "./lib/sugarcrm/module.rb",
80
81
  "./lib/sugarcrm/module_methods.rb",
81
82
  "./lib/sugarcrm/session.rb",
82
- "./sugarcrm.gemspec"
83
+ "./sugarcrm.gemspec",
84
+ "./sugarcrm.tmproj"
83
85
  ]
84
86
  s.homepage = %q{http://github.com/chicks/sugarcrm}
85
87
  s.require_paths = ["lib"]
data/sugarcrm.tmproj ADDED
@@ -0,0 +1,1148 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
+ <plist version="1.0">
4
+ <dict>
5
+ <key>currentDocument</key>
6
+ <string>lib/sugarcrm/connection/api/set_entry.rb</string>
7
+ <key>documents</key>
8
+ <array>
9
+ <dict>
10
+ <key>expanded</key>
11
+ <true/>
12
+ <key>name</key>
13
+ <string>sugarcrm</string>
14
+ <key>regexFolderFilter</key>
15
+ <string>!.*/(\.[^/]*|CVS|_darcs|_MTN|\{arch\}|blib|.*~\.nib|.*\.(framework|app|pbproj|pbxproj|xcode(proj)?|bundle))$</string>
16
+ <key>sourceDirectory</key>
17
+ <string></string>
18
+ </dict>
19
+ </array>
20
+ <key>fileHierarchyDrawerWidth</key>
21
+ <integer>295</integer>
22
+ <key>metaData</key>
23
+ <dict>
24
+ <key>Gemfile</key>
25
+ <dict>
26
+ <key>caret</key>
27
+ <dict>
28
+ <key>column</key>
29
+ <integer>10</integer>
30
+ <key>line</key>
31
+ <integer>4</integer>
32
+ </dict>
33
+ <key>firstVisibleColumn</key>
34
+ <integer>0</integer>
35
+ <key>firstVisibleLine</key>
36
+ <integer>0</integer>
37
+ </dict>
38
+ <key>Gemfile.lock</key>
39
+ <dict>
40
+ <key>caret</key>
41
+ <dict>
42
+ <key>column</key>
43
+ <integer>0</integer>
44
+ <key>line</key>
45
+ <integer>0</integer>
46
+ </dict>
47
+ <key>firstVisibleColumn</key>
48
+ <integer>0</integer>
49
+ <key>firstVisibleLine</key>
50
+ <integer>0</integer>
51
+ </dict>
52
+ <key>LICENSE</key>
53
+ <dict>
54
+ <key>caret</key>
55
+ <dict>
56
+ <key>column</key>
57
+ <integer>0</integer>
58
+ <key>line</key>
59
+ <integer>9</integer>
60
+ </dict>
61
+ <key>firstVisibleColumn</key>
62
+ <integer>0</integer>
63
+ <key>firstVisibleLine</key>
64
+ <integer>0</integer>
65
+ </dict>
66
+ <key>Rakefile</key>
67
+ <dict>
68
+ <key>caret</key>
69
+ <dict>
70
+ <key>column</key>
71
+ <integer>20</integer>
72
+ <key>line</key>
73
+ <integer>7</integer>
74
+ </dict>
75
+ <key>firstVisibleColumn</key>
76
+ <integer>0</integer>
77
+ <key>firstVisibleLine</key>
78
+ <integer>0</integer>
79
+ </dict>
80
+ <key>VERSION</key>
81
+ <dict>
82
+ <key>caret</key>
83
+ <dict>
84
+ <key>column</key>
85
+ <integer>0</integer>
86
+ <key>line</key>
87
+ <integer>0</integer>
88
+ </dict>
89
+ <key>firstVisibleColumn</key>
90
+ <integer>0</integer>
91
+ <key>firstVisibleLine</key>
92
+ <integer>0</integer>
93
+ </dict>
94
+ <key>bin/sugarcrm</key>
95
+ <dict>
96
+ <key>caret</key>
97
+ <dict>
98
+ <key>column</key>
99
+ <integer>9</integer>
100
+ <key>line</key>
101
+ <integer>15</integer>
102
+ </dict>
103
+ <key>firstVisibleColumn</key>
104
+ <integer>0</integer>
105
+ <key>firstVisibleLine</key>
106
+ <integer>0</integer>
107
+ </dict>
108
+ <key>lib/rails/generators/sugarcrm/config/config_generator.rb</key>
109
+ <dict>
110
+ <key>caret</key>
111
+ <dict>
112
+ <key>column</key>
113
+ <integer>0</integer>
114
+ <key>line</key>
115
+ <integer>0</integer>
116
+ </dict>
117
+ <key>firstVisibleColumn</key>
118
+ <integer>0</integer>
119
+ <key>firstVisibleLine</key>
120
+ <integer>0</integer>
121
+ </dict>
122
+ <key>lib/rails/generators/sugarcrm/config/templates/sugarcrm.yml</key>
123
+ <dict>
124
+ <key>caret</key>
125
+ <dict>
126
+ <key>column</key>
127
+ <integer>157</integer>
128
+ <key>line</key>
129
+ <integer>6</integer>
130
+ </dict>
131
+ <key>columnSelection</key>
132
+ <false/>
133
+ <key>firstVisibleColumn</key>
134
+ <integer>0</integer>
135
+ <key>firstVisibleLine</key>
136
+ <integer>0</integer>
137
+ <key>selectFrom</key>
138
+ <dict>
139
+ <key>column</key>
140
+ <integer>143</integer>
141
+ <key>line</key>
142
+ <integer>6</integer>
143
+ </dict>
144
+ <key>selectTo</key>
145
+ <dict>
146
+ <key>column</key>
147
+ <integer>157</integer>
148
+ <key>line</key>
149
+ <integer>6</integer>
150
+ </dict>
151
+ </dict>
152
+ <key>lib/sugarcrm.rb</key>
153
+ <dict>
154
+ <key>caret</key>
155
+ <dict>
156
+ <key>column</key>
157
+ <integer>25</integer>
158
+ <key>line</key>
159
+ <integer>14</integer>
160
+ </dict>
161
+ <key>firstVisibleColumn</key>
162
+ <integer>0</integer>
163
+ <key>firstVisibleLine</key>
164
+ <integer>0</integer>
165
+ </dict>
166
+ <key>lib/sugarcrm/associations.rb</key>
167
+ <dict>
168
+ <key>caret</key>
169
+ <dict>
170
+ <key>column</key>
171
+ <integer>43</integer>
172
+ <key>line</key>
173
+ <integer>1</integer>
174
+ </dict>
175
+ <key>firstVisibleColumn</key>
176
+ <integer>0</integer>
177
+ <key>firstVisibleLine</key>
178
+ <integer>0</integer>
179
+ </dict>
180
+ <key>lib/sugarcrm/associations/association.rb</key>
181
+ <dict>
182
+ <key>caret</key>
183
+ <dict>
184
+ <key>column</key>
185
+ <integer>29</integer>
186
+ <key>line</key>
187
+ <integer>61</integer>
188
+ </dict>
189
+ <key>firstVisibleColumn</key>
190
+ <integer>0</integer>
191
+ <key>firstVisibleLine</key>
192
+ <integer>0</integer>
193
+ </dict>
194
+ <key>lib/sugarcrm/associations/association_cache.rb</key>
195
+ <dict>
196
+ <key>caret</key>
197
+ <dict>
198
+ <key>column</key>
199
+ <integer>12</integer>
200
+ <key>line</key>
201
+ <integer>13</integer>
202
+ </dict>
203
+ <key>firstVisibleColumn</key>
204
+ <integer>0</integer>
205
+ <key>firstVisibleLine</key>
206
+ <integer>0</integer>
207
+ </dict>
208
+ <key>lib/sugarcrm/associations/association_collection.rb</key>
209
+ <dict>
210
+ <key>caret</key>
211
+ <dict>
212
+ <key>column</key>
213
+ <integer>18</integer>
214
+ <key>line</key>
215
+ <integer>65</integer>
216
+ </dict>
217
+ <key>firstVisibleColumn</key>
218
+ <integer>0</integer>
219
+ <key>firstVisibleLine</key>
220
+ <integer>0</integer>
221
+ </dict>
222
+ <key>lib/sugarcrm/associations/association_methods.rb</key>
223
+ <dict>
224
+ <key>caret</key>
225
+ <dict>
226
+ <key>column</key>
227
+ <integer>17</integer>
228
+ <key>line</key>
229
+ <integer>6</integer>
230
+ </dict>
231
+ <key>firstVisibleColumn</key>
232
+ <integer>0</integer>
233
+ <key>firstVisibleLine</key>
234
+ <integer>13</integer>
235
+ </dict>
236
+ <key>lib/sugarcrm/attributes.rb</key>
237
+ <dict>
238
+ <key>caret</key>
239
+ <dict>
240
+ <key>column</key>
241
+ <integer>0</integer>
242
+ <key>line</key>
243
+ <integer>0</integer>
244
+ </dict>
245
+ <key>columnSelection</key>
246
+ <false/>
247
+ <key>firstVisibleColumn</key>
248
+ <integer>0</integer>
249
+ <key>firstVisibleLine</key>
250
+ <integer>0</integer>
251
+ <key>selectFrom</key>
252
+ <dict>
253
+ <key>column</key>
254
+ <integer>47</integer>
255
+ <key>line</key>
256
+ <integer>0</integer>
257
+ </dict>
258
+ <key>selectTo</key>
259
+ <dict>
260
+ <key>column</key>
261
+ <integer>0</integer>
262
+ <key>line</key>
263
+ <integer>0</integer>
264
+ </dict>
265
+ </dict>
266
+ <key>lib/sugarcrm/attributes/attribute_methods.rb</key>
267
+ <dict>
268
+ <key>caret</key>
269
+ <dict>
270
+ <key>column</key>
271
+ <integer>2</integer>
272
+ <key>line</key>
273
+ <integer>63</integer>
274
+ </dict>
275
+ <key>firstVisibleColumn</key>
276
+ <integer>0</integer>
277
+ <key>firstVisibleLine</key>
278
+ <integer>37</integer>
279
+ </dict>
280
+ <key>lib/sugarcrm/attributes/attribute_serializers.rb</key>
281
+ <dict>
282
+ <key>caret</key>
283
+ <dict>
284
+ <key>column</key>
285
+ <integer>0</integer>
286
+ <key>line</key>
287
+ <integer>0</integer>
288
+ </dict>
289
+ <key>firstVisibleColumn</key>
290
+ <integer>0</integer>
291
+ <key>firstVisibleLine</key>
292
+ <integer>9</integer>
293
+ </dict>
294
+ <key>lib/sugarcrm/attributes/attribute_typecast.rb</key>
295
+ <dict>
296
+ <key>caret</key>
297
+ <dict>
298
+ <key>column</key>
299
+ <integer>35</integer>
300
+ <key>line</key>
301
+ <integer>32</integer>
302
+ </dict>
303
+ <key>firstVisibleColumn</key>
304
+ <integer>0</integer>
305
+ <key>firstVisibleLine</key>
306
+ <integer>0</integer>
307
+ </dict>
308
+ <key>lib/sugarcrm/attributes/attribute_validations.rb</key>
309
+ <dict>
310
+ <key>caret</key>
311
+ <dict>
312
+ <key>column</key>
313
+ <integer>0</integer>
314
+ <key>line</key>
315
+ <integer>0</integer>
316
+ </dict>
317
+ <key>firstVisibleColumn</key>
318
+ <integer>0</integer>
319
+ <key>firstVisibleLine</key>
320
+ <integer>0</integer>
321
+ </dict>
322
+ <key>lib/sugarcrm/base.rb</key>
323
+ <dict>
324
+ <key>caret</key>
325
+ <dict>
326
+ <key>column</key>
327
+ <integer>5</integer>
328
+ <key>line</key>
329
+ <integer>157</integer>
330
+ </dict>
331
+ <key>firstVisibleColumn</key>
332
+ <integer>0</integer>
333
+ <key>firstVisibleLine</key>
334
+ <integer>146</integer>
335
+ </dict>
336
+ <key>lib/sugarcrm/config/sugarcrm.yaml</key>
337
+ <dict>
338
+ <key>caret</key>
339
+ <dict>
340
+ <key>column</key>
341
+ <integer>0</integer>
342
+ <key>line</key>
343
+ <integer>0</integer>
344
+ </dict>
345
+ <key>firstVisibleColumn</key>
346
+ <integer>0</integer>
347
+ <key>firstVisibleLine</key>
348
+ <integer>0</integer>
349
+ </dict>
350
+ <key>lib/sugarcrm/connection.rb</key>
351
+ <dict>
352
+ <key>caret</key>
353
+ <dict>
354
+ <key>column</key>
355
+ <integer>0</integer>
356
+ <key>line</key>
357
+ <integer>0</integer>
358
+ </dict>
359
+ <key>firstVisibleColumn</key>
360
+ <integer>0</integer>
361
+ <key>firstVisibleLine</key>
362
+ <integer>0</integer>
363
+ </dict>
364
+ <key>lib/sugarcrm/connection/api/get_available_modules.rb</key>
365
+ <dict>
366
+ <key>caret</key>
367
+ <dict>
368
+ <key>column</key>
369
+ <integer>0</integer>
370
+ <key>line</key>
371
+ <integer>0</integer>
372
+ </dict>
373
+ <key>firstVisibleColumn</key>
374
+ <integer>0</integer>
375
+ <key>firstVisibleLine</key>
376
+ <integer>0</integer>
377
+ </dict>
378
+ <key>lib/sugarcrm/connection/api/get_document_revision.rb</key>
379
+ <dict>
380
+ <key>caret</key>
381
+ <dict>
382
+ <key>column</key>
383
+ <integer>0</integer>
384
+ <key>line</key>
385
+ <integer>0</integer>
386
+ </dict>
387
+ <key>firstVisibleColumn</key>
388
+ <integer>0</integer>
389
+ <key>firstVisibleLine</key>
390
+ <integer>0</integer>
391
+ </dict>
392
+ <key>lib/sugarcrm/connection/api/get_entries.rb</key>
393
+ <dict>
394
+ <key>caret</key>
395
+ <dict>
396
+ <key>column</key>
397
+ <integer>68</integer>
398
+ <key>line</key>
399
+ <integer>16</integer>
400
+ </dict>
401
+ <key>columnSelection</key>
402
+ <false/>
403
+ <key>firstVisibleColumn</key>
404
+ <integer>0</integer>
405
+ <key>firstVisibleLine</key>
406
+ <integer>0</integer>
407
+ <key>selectFrom</key>
408
+ <dict>
409
+ <key>column</key>
410
+ <integer>61</integer>
411
+ <key>line</key>
412
+ <integer>16</integer>
413
+ </dict>
414
+ <key>selectTo</key>
415
+ <dict>
416
+ <key>column</key>
417
+ <integer>68</integer>
418
+ <key>line</key>
419
+ <integer>16</integer>
420
+ </dict>
421
+ </dict>
422
+ <key>lib/sugarcrm/connection/api/get_entries_count.rb</key>
423
+ <dict>
424
+ <key>caret</key>
425
+ <dict>
426
+ <key>column</key>
427
+ <integer>35</integer>
428
+ <key>line</key>
429
+ <integer>17</integer>
430
+ </dict>
431
+ <key>firstVisibleColumn</key>
432
+ <integer>0</integer>
433
+ <key>firstVisibleLine</key>
434
+ <integer>0</integer>
435
+ </dict>
436
+ <key>lib/sugarcrm/connection/api/get_entry.rb</key>
437
+ <dict>
438
+ <key>caret</key>
439
+ <dict>
440
+ <key>column</key>
441
+ <integer>8</integer>
442
+ <key>line</key>
443
+ <integer>22</integer>
444
+ </dict>
445
+ <key>firstVisibleColumn</key>
446
+ <integer>0</integer>
447
+ <key>firstVisibleLine</key>
448
+ <integer>0</integer>
449
+ </dict>
450
+ <key>lib/sugarcrm/connection/api/get_entry_list.rb</key>
451
+ <dict>
452
+ <key>caret</key>
453
+ <dict>
454
+ <key>column</key>
455
+ <integer>68</integer>
456
+ <key>line</key>
457
+ <integer>22</integer>
458
+ </dict>
459
+ <key>columnSelection</key>
460
+ <false/>
461
+ <key>firstVisibleColumn</key>
462
+ <integer>0</integer>
463
+ <key>firstVisibleLine</key>
464
+ <integer>0</integer>
465
+ <key>selectFrom</key>
466
+ <dict>
467
+ <key>column</key>
468
+ <integer>61</integer>
469
+ <key>line</key>
470
+ <integer>22</integer>
471
+ </dict>
472
+ <key>selectTo</key>
473
+ <dict>
474
+ <key>column</key>
475
+ <integer>68</integer>
476
+ <key>line</key>
477
+ <integer>22</integer>
478
+ </dict>
479
+ </dict>
480
+ <key>lib/sugarcrm/connection/api/get_module_fields.rb</key>
481
+ <dict>
482
+ <key>caret</key>
483
+ <dict>
484
+ <key>column</key>
485
+ <integer>0</integer>
486
+ <key>line</key>
487
+ <integer>0</integer>
488
+ </dict>
489
+ <key>firstVisibleColumn</key>
490
+ <integer>0</integer>
491
+ <key>firstVisibleLine</key>
492
+ <integer>0</integer>
493
+ </dict>
494
+ <key>lib/sugarcrm/connection/api/get_note_attachment.rb</key>
495
+ <dict>
496
+ <key>caret</key>
497
+ <dict>
498
+ <key>column</key>
499
+ <integer>0</integer>
500
+ <key>line</key>
501
+ <integer>0</integer>
502
+ </dict>
503
+ <key>firstVisibleColumn</key>
504
+ <integer>0</integer>
505
+ <key>firstVisibleLine</key>
506
+ <integer>0</integer>
507
+ </dict>
508
+ <key>lib/sugarcrm/connection/api/get_relationships.rb</key>
509
+ <dict>
510
+ <key>caret</key>
511
+ <dict>
512
+ <key>column</key>
513
+ <integer>0</integer>
514
+ <key>line</key>
515
+ <integer>0</integer>
516
+ </dict>
517
+ <key>firstVisibleColumn</key>
518
+ <integer>0</integer>
519
+ <key>firstVisibleLine</key>
520
+ <integer>0</integer>
521
+ </dict>
522
+ <key>lib/sugarcrm/connection/api/get_report_entries.rb</key>
523
+ <dict>
524
+ <key>caret</key>
525
+ <dict>
526
+ <key>column</key>
527
+ <integer>0</integer>
528
+ <key>line</key>
529
+ <integer>0</integer>
530
+ </dict>
531
+ <key>firstVisibleColumn</key>
532
+ <integer>0</integer>
533
+ <key>firstVisibleLine</key>
534
+ <integer>0</integer>
535
+ </dict>
536
+ <key>lib/sugarcrm/connection/api/get_user_id.rb</key>
537
+ <dict>
538
+ <key>caret</key>
539
+ <dict>
540
+ <key>column</key>
541
+ <integer>0</integer>
542
+ <key>line</key>
543
+ <integer>3</integer>
544
+ </dict>
545
+ <key>firstVisibleColumn</key>
546
+ <integer>0</integer>
547
+ <key>firstVisibleLine</key>
548
+ <integer>0</integer>
549
+ </dict>
550
+ <key>lib/sugarcrm/connection/api/login.rb</key>
551
+ <dict>
552
+ <key>caret</key>
553
+ <dict>
554
+ <key>column</key>
555
+ <integer>27</integer>
556
+ <key>line</key>
557
+ <integer>14</integer>
558
+ </dict>
559
+ <key>firstVisibleColumn</key>
560
+ <integer>0</integer>
561
+ <key>firstVisibleLine</key>
562
+ <integer>0</integer>
563
+ </dict>
564
+ <key>lib/sugarcrm/connection/api/logout.rb</key>
565
+ <dict>
566
+ <key>caret</key>
567
+ <dict>
568
+ <key>column</key>
569
+ <integer>0</integer>
570
+ <key>line</key>
571
+ <integer>0</integer>
572
+ </dict>
573
+ <key>firstVisibleColumn</key>
574
+ <integer>0</integer>
575
+ <key>firstVisibleLine</key>
576
+ <integer>0</integer>
577
+ </dict>
578
+ <key>lib/sugarcrm/connection/api/seamless_login.rb</key>
579
+ <dict>
580
+ <key>caret</key>
581
+ <dict>
582
+ <key>column</key>
583
+ <integer>0</integer>
584
+ <key>line</key>
585
+ <integer>0</integer>
586
+ </dict>
587
+ <key>firstVisibleColumn</key>
588
+ <integer>0</integer>
589
+ <key>firstVisibleLine</key>
590
+ <integer>0</integer>
591
+ </dict>
592
+ <key>lib/sugarcrm/connection/api/set_document_revision.rb</key>
593
+ <dict>
594
+ <key>caret</key>
595
+ <dict>
596
+ <key>column</key>
597
+ <integer>0</integer>
598
+ <key>line</key>
599
+ <integer>0</integer>
600
+ </dict>
601
+ <key>firstVisibleColumn</key>
602
+ <integer>0</integer>
603
+ <key>firstVisibleLine</key>
604
+ <integer>0</integer>
605
+ </dict>
606
+ <key>lib/sugarcrm/connection/api/set_entries.rb</key>
607
+ <dict>
608
+ <key>caret</key>
609
+ <dict>
610
+ <key>column</key>
611
+ <integer>0</integer>
612
+ <key>line</key>
613
+ <integer>0</integer>
614
+ </dict>
615
+ <key>firstVisibleColumn</key>
616
+ <integer>0</integer>
617
+ <key>firstVisibleLine</key>
618
+ <integer>0</integer>
619
+ </dict>
620
+ <key>lib/sugarcrm/connection/api/set_entry.rb</key>
621
+ <dict>
622
+ <key>caret</key>
623
+ <dict>
624
+ <key>column</key>
625
+ <integer>52</integer>
626
+ <key>line</key>
627
+ <integer>8</integer>
628
+ </dict>
629
+ <key>columnSelection</key>
630
+ <false/>
631
+ <key>firstVisibleColumn</key>
632
+ <integer>0</integer>
633
+ <key>firstVisibleLine</key>
634
+ <integer>0</integer>
635
+ <key>selectFrom</key>
636
+ <dict>
637
+ <key>column</key>
638
+ <integer>45</integer>
639
+ <key>line</key>
640
+ <integer>8</integer>
641
+ </dict>
642
+ <key>selectTo</key>
643
+ <dict>
644
+ <key>column</key>
645
+ <integer>52</integer>
646
+ <key>line</key>
647
+ <integer>8</integer>
648
+ </dict>
649
+ </dict>
650
+ <key>lib/sugarcrm/connection/api/set_note_attachment.rb</key>
651
+ <dict>
652
+ <key>caret</key>
653
+ <dict>
654
+ <key>column</key>
655
+ <integer>0</integer>
656
+ <key>line</key>
657
+ <integer>0</integer>
658
+ </dict>
659
+ <key>firstVisibleColumn</key>
660
+ <integer>0</integer>
661
+ <key>firstVisibleLine</key>
662
+ <integer>0</integer>
663
+ </dict>
664
+ <key>lib/sugarcrm/connection/api/set_relationships.rb</key>
665
+ <dict>
666
+ <key>caret</key>
667
+ <dict>
668
+ <key>column</key>
669
+ <integer>0</integer>
670
+ <key>line</key>
671
+ <integer>0</integer>
672
+ </dict>
673
+ <key>firstVisibleColumn</key>
674
+ <integer>0</integer>
675
+ <key>firstVisibleLine</key>
676
+ <integer>0</integer>
677
+ </dict>
678
+ <key>lib/sugarcrm/connection/connection.rb</key>
679
+ <dict>
680
+ <key>caret</key>
681
+ <dict>
682
+ <key>column</key>
683
+ <integer>0</integer>
684
+ <key>line</key>
685
+ <integer>0</integer>
686
+ </dict>
687
+ <key>firstVisibleColumn</key>
688
+ <integer>0</integer>
689
+ <key>firstVisibleLine</key>
690
+ <integer>5</integer>
691
+ </dict>
692
+ <key>lib/sugarcrm/connection/helper.rb</key>
693
+ <dict>
694
+ <key>caret</key>
695
+ <dict>
696
+ <key>column</key>
697
+ <integer>9</integer>
698
+ <key>line</key>
699
+ <integer>32</integer>
700
+ </dict>
701
+ <key>firstVisibleColumn</key>
702
+ <integer>0</integer>
703
+ <key>firstVisibleLine</key>
704
+ <integer>0</integer>
705
+ </dict>
706
+ <key>lib/sugarcrm/connection/request.rb</key>
707
+ <dict>
708
+ <key>caret</key>
709
+ <dict>
710
+ <key>column</key>
711
+ <integer>2</integer>
712
+ <key>line</key>
713
+ <integer>25</integer>
714
+ </dict>
715
+ <key>firstVisibleColumn</key>
716
+ <integer>0</integer>
717
+ <key>firstVisibleLine</key>
718
+ <integer>0</integer>
719
+ </dict>
720
+ <key>lib/sugarcrm/connection/response.rb</key>
721
+ <dict>
722
+ <key>caret</key>
723
+ <dict>
724
+ <key>column</key>
725
+ <integer>15</integer>
726
+ <key>line</key>
727
+ <integer>14</integer>
728
+ </dict>
729
+ <key>firstVisibleColumn</key>
730
+ <integer>0</integer>
731
+ <key>firstVisibleLine</key>
732
+ <integer>44</integer>
733
+ </dict>
734
+ <key>lib/sugarcrm/connection_pool.rb</key>
735
+ <dict>
736
+ <key>caret</key>
737
+ <dict>
738
+ <key>column</key>
739
+ <integer>34</integer>
740
+ <key>line</key>
741
+ <integer>13</integer>
742
+ </dict>
743
+ <key>firstVisibleColumn</key>
744
+ <integer>0</integer>
745
+ <key>firstVisibleLine</key>
746
+ <integer>0</integer>
747
+ </dict>
748
+ <key>lib/sugarcrm/exceptions.rb</key>
749
+ <dict>
750
+ <key>caret</key>
751
+ <dict>
752
+ <key>column</key>
753
+ <integer>0</integer>
754
+ <key>line</key>
755
+ <integer>0</integer>
756
+ </dict>
757
+ <key>firstVisibleColumn</key>
758
+ <integer>0</integer>
759
+ <key>firstVisibleLine</key>
760
+ <integer>0</integer>
761
+ </dict>
762
+ <key>lib/sugarcrm/extensions/README.txt</key>
763
+ <dict>
764
+ <key>caret</key>
765
+ <dict>
766
+ <key>column</key>
767
+ <integer>0</integer>
768
+ <key>line</key>
769
+ <integer>2</integer>
770
+ </dict>
771
+ <key>columnSelection</key>
772
+ <false/>
773
+ <key>firstVisibleColumn</key>
774
+ <integer>0</integer>
775
+ <key>firstVisibleLine</key>
776
+ <integer>0</integer>
777
+ <key>selectFrom</key>
778
+ <dict>
779
+ <key>column</key>
780
+ <integer>3</integer>
781
+ <key>line</key>
782
+ <integer>10</integer>
783
+ </dict>
784
+ <key>selectTo</key>
785
+ <dict>
786
+ <key>column</key>
787
+ <integer>0</integer>
788
+ <key>line</key>
789
+ <integer>2</integer>
790
+ </dict>
791
+ </dict>
792
+ <key>lib/sugarcrm/finders.rb</key>
793
+ <dict>
794
+ <key>caret</key>
795
+ <dict>
796
+ <key>column</key>
797
+ <integer>46</integer>
798
+ <key>line</key>
799
+ <integer>1</integer>
800
+ </dict>
801
+ <key>firstVisibleColumn</key>
802
+ <integer>0</integer>
803
+ <key>firstVisibleLine</key>
804
+ <integer>0</integer>
805
+ </dict>
806
+ <key>lib/sugarcrm/finders/dynamic_finder_match.rb</key>
807
+ <dict>
808
+ <key>caret</key>
809
+ <dict>
810
+ <key>column</key>
811
+ <integer>10</integer>
812
+ <key>line</key>
813
+ <integer>9</integer>
814
+ </dict>
815
+ <key>firstVisibleColumn</key>
816
+ <integer>0</integer>
817
+ <key>firstVisibleLine</key>
818
+ <integer>0</integer>
819
+ </dict>
820
+ <key>lib/sugarcrm/module.rb</key>
821
+ <dict>
822
+ <key>caret</key>
823
+ <dict>
824
+ <key>column</key>
825
+ <integer>39</integer>
826
+ <key>line</key>
827
+ <integer>90</integer>
828
+ </dict>
829
+ <key>firstVisibleColumn</key>
830
+ <integer>0</integer>
831
+ <key>firstVisibleLine</key>
832
+ <integer>0</integer>
833
+ </dict>
834
+ <key>lib/sugarcrm/module_methods.rb</key>
835
+ <dict>
836
+ <key>caret</key>
837
+ <dict>
838
+ <key>column</key>
839
+ <integer>0</integer>
840
+ <key>line</key>
841
+ <integer>0</integer>
842
+ </dict>
843
+ <key>firstVisibleColumn</key>
844
+ <integer>0</integer>
845
+ <key>firstVisibleLine</key>
846
+ <integer>25</integer>
847
+ </dict>
848
+ <key>lib/sugarcrm/session.rb</key>
849
+ <dict>
850
+ <key>caret</key>
851
+ <dict>
852
+ <key>column</key>
853
+ <integer>2</integer>
854
+ <key>line</key>
855
+ <integer>46</integer>
856
+ </dict>
857
+ <key>firstVisibleColumn</key>
858
+ <integer>0</integer>
859
+ <key>firstVisibleLine</key>
860
+ <integer>43</integer>
861
+ </dict>
862
+ <key>sugarcrm.gemspec</key>
863
+ <dict>
864
+ <key>caret</key>
865
+ <dict>
866
+ <key>column</key>
867
+ <integer>14</integer>
868
+ <key>line</key>
869
+ <integer>23</integer>
870
+ </dict>
871
+ <key>firstVisibleColumn</key>
872
+ <integer>0</integer>
873
+ <key>firstVisibleLine</key>
874
+ <integer>96</integer>
875
+ </dict>
876
+ <key>test/config.yaml</key>
877
+ <dict>
878
+ <key>caret</key>
879
+ <dict>
880
+ <key>column</key>
881
+ <integer>28</integer>
882
+ <key>line</key>
883
+ <integer>1</integer>
884
+ </dict>
885
+ <key>firstVisibleColumn</key>
886
+ <integer>0</integer>
887
+ <key>firstVisibleLine</key>
888
+ <integer>0</integer>
889
+ </dict>
890
+ <key>test/config_test.yaml</key>
891
+ <dict>
892
+ <key>caret</key>
893
+ <dict>
894
+ <key>column</key>
895
+ <integer>17</integer>
896
+ <key>line</key>
897
+ <integer>13</integer>
898
+ </dict>
899
+ <key>firstVisibleColumn</key>
900
+ <integer>0</integer>
901
+ <key>firstVisibleLine</key>
902
+ <integer>0</integer>
903
+ </dict>
904
+ <key>test/connection/test_get_server_info.rb</key>
905
+ <dict>
906
+ <key>caret</key>
907
+ <dict>
908
+ <key>column</key>
909
+ <integer>3</integer>
910
+ <key>line</key>
911
+ <integer>8</integer>
912
+ </dict>
913
+ <key>firstVisibleColumn</key>
914
+ <integer>0</integer>
915
+ <key>firstVisibleLine</key>
916
+ <integer>0</integer>
917
+ </dict>
918
+ <key>test/connection/test_login.rb</key>
919
+ <dict>
920
+ <key>caret</key>
921
+ <dict>
922
+ <key>column</key>
923
+ <integer>0</integer>
924
+ <key>line</key>
925
+ <integer>7</integer>
926
+ </dict>
927
+ <key>columnSelection</key>
928
+ <false/>
929
+ <key>firstVisibleColumn</key>
930
+ <integer>0</integer>
931
+ <key>firstVisibleLine</key>
932
+ <integer>0</integer>
933
+ <key>selectFrom</key>
934
+ <dict>
935
+ <key>column</key>
936
+ <integer>0</integer>
937
+ <key>line</key>
938
+ <integer>4</integer>
939
+ </dict>
940
+ <key>selectTo</key>
941
+ <dict>
942
+ <key>column</key>
943
+ <integer>0</integer>
944
+ <key>line</key>
945
+ <integer>7</integer>
946
+ </dict>
947
+ </dict>
948
+ <key>test/connection/test_logout.rb</key>
949
+ <dict>
950
+ <key>caret</key>
951
+ <dict>
952
+ <key>column</key>
953
+ <integer>3</integer>
954
+ <key>line</key>
955
+ <integer>8</integer>
956
+ </dict>
957
+ <key>firstVisibleColumn</key>
958
+ <integer>0</integer>
959
+ <key>firstVisibleLine</key>
960
+ <integer>0</integer>
961
+ </dict>
962
+ <key>test/connection/test_set_document_revision.rb</key>
963
+ <dict>
964
+ <key>caret</key>
965
+ <dict>
966
+ <key>column</key>
967
+ <integer>5</integer>
968
+ <key>line</key>
969
+ <integer>26</integer>
970
+ </dict>
971
+ <key>firstVisibleColumn</key>
972
+ <integer>0</integer>
973
+ <key>firstVisibleLine</key>
974
+ <integer>0</integer>
975
+ </dict>
976
+ <key>test/connection/test_set_note_attachment.rb</key>
977
+ <dict>
978
+ <key>caret</key>
979
+ <dict>
980
+ <key>column</key>
981
+ <integer>3</integer>
982
+ <key>line</key>
983
+ <integer>15</integer>
984
+ </dict>
985
+ <key>firstVisibleColumn</key>
986
+ <integer>0</integer>
987
+ <key>firstVisibleLine</key>
988
+ <integer>0</integer>
989
+ </dict>
990
+ <key>test/connection/test_set_relationship.rb</key>
991
+ <dict>
992
+ <key>caret</key>
993
+ <dict>
994
+ <key>column</key>
995
+ <integer>3</integer>
996
+ <key>line</key>
997
+ <integer>17</integer>
998
+ </dict>
999
+ <key>firstVisibleColumn</key>
1000
+ <integer>0</integer>
1001
+ <key>firstVisibleLine</key>
1002
+ <integer>0</integer>
1003
+ </dict>
1004
+ <key>test/test_connection.rb</key>
1005
+ <dict>
1006
+ <key>caret</key>
1007
+ <dict>
1008
+ <key>column</key>
1009
+ <integer>0</integer>
1010
+ <key>line</key>
1011
+ <integer>0</integer>
1012
+ </dict>
1013
+ <key>firstVisibleColumn</key>
1014
+ <integer>0</integer>
1015
+ <key>firstVisibleLine</key>
1016
+ <integer>0</integer>
1017
+ </dict>
1018
+ <key>test/test_connection_pool.rb</key>
1019
+ <dict>
1020
+ <key>caret</key>
1021
+ <dict>
1022
+ <key>column</key>
1023
+ <integer>29</integer>
1024
+ <key>line</key>
1025
+ <integer>13</integer>
1026
+ </dict>
1027
+ <key>firstVisibleColumn</key>
1028
+ <integer>0</integer>
1029
+ <key>firstVisibleLine</key>
1030
+ <integer>0</integer>
1031
+ </dict>
1032
+ <key>test/test_module.rb</key>
1033
+ <dict>
1034
+ <key>caret</key>
1035
+ <dict>
1036
+ <key>column</key>
1037
+ <integer>6</integer>
1038
+ <key>line</key>
1039
+ <integer>26</integer>
1040
+ </dict>
1041
+ <key>firstVisibleColumn</key>
1042
+ <integer>0</integer>
1043
+ <key>firstVisibleLine</key>
1044
+ <integer>0</integer>
1045
+ </dict>
1046
+ <key>test/test_response.rb</key>
1047
+ <dict>
1048
+ <key>caret</key>
1049
+ <dict>
1050
+ <key>column</key>
1051
+ <integer>0</integer>
1052
+ <key>line</key>
1053
+ <integer>0</integer>
1054
+ </dict>
1055
+ <key>firstVisibleColumn</key>
1056
+ <integer>0</integer>
1057
+ <key>firstVisibleLine</key>
1058
+ <integer>0</integer>
1059
+ </dict>
1060
+ <key>test/test_session.rb</key>
1061
+ <dict>
1062
+ <key>caret</key>
1063
+ <dict>
1064
+ <key>column</key>
1065
+ <integer>9</integer>
1066
+ <key>line</key>
1067
+ <integer>38</integer>
1068
+ </dict>
1069
+ <key>firstVisibleColumn</key>
1070
+ <integer>0</integer>
1071
+ <key>firstVisibleLine</key>
1072
+ <integer>0</integer>
1073
+ </dict>
1074
+ <key>test/test_sugarcrm.rb</key>
1075
+ <dict>
1076
+ <key>caret</key>
1077
+ <dict>
1078
+ <key>column</key>
1079
+ <integer>25</integer>
1080
+ <key>line</key>
1081
+ <integer>80</integer>
1082
+ </dict>
1083
+ <key>firstVisibleColumn</key>
1084
+ <integer>0</integer>
1085
+ <key>firstVisibleLine</key>
1086
+ <integer>40</integer>
1087
+ </dict>
1088
+ </dict>
1089
+ <key>openDocuments</key>
1090
+ <array>
1091
+ <string>lib/sugarcrm/base.rb</string>
1092
+ <string>test/connection/test_set_note_attachment.rb</string>
1093
+ <string>test/connection/test_set_relationship.rb</string>
1094
+ <string>lib/sugarcrm/session.rb</string>
1095
+ <string>lib/sugarcrm/connection/api/get_relationships.rb</string>
1096
+ <string>lib/sugarcrm/connection/api/set_relationships.rb</string>
1097
+ <string>lib/sugarcrm/connection/api/set_document_revision.rb</string>
1098
+ <string>lib/sugarcrm/connection/api/set_note_attachment.rb</string>
1099
+ <string>lib/sugarcrm/module.rb</string>
1100
+ <string>lib/sugarcrm/connection/api/get_user_id.rb</string>
1101
+ <string>lib/sugarcrm/attributes.rb</string>
1102
+ <string>lib/sugarcrm/connection/api/get_entry.rb</string>
1103
+ <string>lib/sugarcrm/connection/api/set_entries.rb</string>
1104
+ <string>lib/sugarcrm/connection/api/get_entries.rb</string>
1105
+ <string>lib/sugarcrm/connection/api/get_entry_list.rb</string>
1106
+ <string>lib/sugarcrm/connection/api/set_entry.rb</string>
1107
+ <string>lib/sugarcrm/connection/api/get_note_attachment.rb</string>
1108
+ <string>lib/sugarcrm/connection/api/get_report_entries.rb</string>
1109
+ <string>lib/sugarcrm/connection/response.rb</string>
1110
+ <string>lib/sugarcrm/connection/api/get_entries_count.rb</string>
1111
+ <string>lib/sugarcrm/finders/dynamic_finder_match.rb</string>
1112
+ <string>lib/sugarcrm/exceptions.rb</string>
1113
+ <string>lib/sugarcrm/extensions/README.txt</string>
1114
+ <string>lib/sugarcrm/finders.rb</string>
1115
+ <string>lib/sugarcrm/connection/api/login.rb</string>
1116
+ <string>lib/sugarcrm/connection/api/get_available_modules.rb</string>
1117
+ <string>lib/sugarcrm/connection/api/get_document_revision.rb</string>
1118
+ <string>lib/sugarcrm/associations/association_collection.rb</string>
1119
+ <string>lib/sugarcrm/connection/connection.rb</string>
1120
+ <string>lib/sugarcrm/connection.rb</string>
1121
+ <string>lib/sugarcrm/connection/request.rb</string>
1122
+ <string>lib/sugarcrm/connection/helper.rb</string>
1123
+ <string>Gemfile</string>
1124
+ <string>lib/sugarcrm.rb</string>
1125
+ <string>bin/sugarcrm</string>
1126
+ <string>VERSION</string>
1127
+ <string>Rakefile</string>
1128
+ <string>LICENSE</string>
1129
+ <string>lib/rails/generators/sugarcrm/config/config_generator.rb</string>
1130
+ <string>test/connection/test_set_document_revision.rb</string>
1131
+ <string>lib/sugarcrm/connection/api/get_module_fields.rb</string>
1132
+ <string>lib/sugarcrm/connection/api/seamless_login.rb</string>
1133
+ <string>lib/sugarcrm/connection/api/logout.rb</string>
1134
+ <string>Gemfile.lock</string>
1135
+ <string>lib/sugarcrm/attributes/attribute_methods.rb</string>
1136
+ <string>test/test_module.rb</string>
1137
+ <string>lib/sugarcrm/attributes/attribute_serializers.rb</string>
1138
+ <string>lib/sugarcrm/attributes/attribute_typecast.rb</string>
1139
+ <string>lib/sugarcrm/attributes/attribute_validations.rb</string>
1140
+ <string>test/test_session.rb</string>
1141
+ <string>test/test_sugarcrm.rb</string>
1142
+ </array>
1143
+ <key>showFileHierarchyDrawer</key>
1144
+ <true/>
1145
+ <key>windowFrame</key>
1146
+ <string>{{1810, 213}, {1084, 578}}</string>
1147
+ </dict>
1148
+ </plist>