lucid_works 0.6.1 → 0.6.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -132,9 +132,15 @@ module LucidWorks
132
132
  end
133
133
 
134
134
  raw_response = ActiveSupport::Notifications.instrument("lucid_works.request") do |payload|
135
- payload[:method] = :get
136
- payload[:uri] = url
137
- payload[:response] = RestClient.get(url)
135
+ begin
136
+ payload[:method] = :get
137
+ payload[:uri] = url
138
+ payload[:response] = RestClient.get(url)
139
+ rescue RestClient::Exception => exception
140
+ # Tack on what we were doing when we got the exception, then send it on up
141
+ exception.message = "#{exception.message} while performing #{payload[:method]} #{payload[:uri]}"
142
+ raise exception
143
+ end
138
144
  end
139
145
 
140
146
  data = JSON.parse(raw_response)
@@ -173,9 +179,15 @@ module LucidWorks
173
179
  if kind_of_find == :all && association_info[:supports_all]
174
180
  all_targets_path = "#{collection_url(parent)}/all/#{target_name}"
175
181
  raw_response = ActiveSupport::Notifications.instrument("lucid_works.request") do |payload|
176
- payload[:method] = :get
177
- payload[:uri] = all_targets_path
178
- payload[:response] = RestClient.get(all_targets_path)
182
+ begin
183
+ payload[:method] = :get
184
+ payload[:uri] = all_targets_path
185
+ payload[:response] = RestClient.get(all_targets_path)
186
+ rescue RestClient::Exception => exception
187
+ # Tack on what we were doing when we got the exception, then send it on up
188
+ exception.message = "#{exception.message} while performing #{payload[:method]} #{payload[:uri]}"
189
+ raise exception
190
+ end
179
191
  end
180
192
  if association_info[:type] == :has_one
181
193
  all_targets_attributes = JSON.parse raw_response
@@ -321,6 +333,10 @@ module LucidWorks
321
333
  payload[:exception] = e
322
334
  attach_errors_to_model(e.response)
323
335
  false
336
+ rescue RestClient::Exception => exception
337
+ # Tack on what we were doing when we got the exception, then send it on up
338
+ exception.message = "#{exception.message} while performing #{payload[:method]} #{payload[:uri]}"
339
+ raise exception
324
340
  end
325
341
  end
326
342
  end
@@ -336,10 +352,16 @@ module LucidWorks
336
352
 
337
353
  def destroy(options={})
338
354
  ActiveSupport::Notifications.instrument("lucid_works.request") do |payload|
339
- payload[:method] = :delete
340
- payload[:uri] = member_url
341
- payload[:options] = options
342
- payload[:repsonse] = RestClient.delete(member_url, options)
355
+ begin
356
+ payload[:method] = :delete
357
+ payload[:uri] = member_url
358
+ payload[:options] = options
359
+ payload[:repsonse] = RestClient.delete(member_url, options)
360
+ rescue RestClient::Exception => exception
361
+ # Tack on what we were doing when we got the exception, then send it on up
362
+ exception.message = "#{exception.message} while performing #{payload[:method]} #{payload[:uri]}"
363
+ raise exception
364
+ end
343
365
  end
344
366
  end
345
367
 
@@ -1,4 +1,20 @@
1
1
  module RestClient #:nodoc:
2
+
3
+ STATUSES.each_pair do |code, message|
4
+
5
+ # Compatibility
6
+ superclass = ([304, 401, 404].include? code) ? ExceptionWithResponse : RequestFailed
7
+ klass = Class.new(superclass) do
8
+ # LucidWorks: RestClient is kinda obnoxious and replaces the exception getter :message
9
+ # with a method returning a static string. Make it return @message if it is set.
10
+ send(:define_method, :message) {@message || "#{http_code ? "#{http_code} " : ''}#{message}"}
11
+ # send(:define_method, :message) {"#{http_code ? "#{http_code} " : ''}#{message}"}
12
+ end
13
+ remove_const message.delete(' \-\'') # LucidWorks
14
+ klass_constant = const_set message.delete(' \-\''), klass
15
+ Exceptions::EXCEPTIONS_MAP[code] = klass_constant
16
+ end
17
+
2
18
  class Request #:nodoc:
3
19
 
4
20
  # Extract the query parameters for get request and append them to the url
@@ -1,3 +1,3 @@
1
1
  module LucidWorks
2
- VERSION = "0.6.1"
2
+ VERSION = "0.6.2"
3
3
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: lucid_works
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.6.1
5
+ version: 0.6.2
6
6
  platform: ruby
7
7
  authors:
8
8
  - Sam Pierson
@@ -10,7 +10,7 @@ autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
12
 
13
- date: 2011-04-29 00:00:00 -04:00
13
+ date: 2011-05-05 00:00:00 -07:00
14
14
  default_executable:
15
15
  dependencies:
16
16
  - !ruby/object:Gem::Dependency