salesforce_adapter 1.0.1 → 1.0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d132d277394dd4961ca29eb1546506b74a8322f5
4
- data.tar.gz: ef41eb49a9629bd650f471aeaff3adb9312516b7
3
+ metadata.gz: 4f5a0eea6dfc65e80b4152d887240138472b0bc5
4
+ data.tar.gz: ade8be12c9fe884cdd054a4b58a65e3023599311
5
5
  SHA512:
6
- metadata.gz: 28f596c1c963367196f38a3d62982b61ec57ecbd1004c5a6792e39f4116f0e3bc680bc19aaf2faeef1c99affa03e5a264b9f4e27adaec522c5c17525733b07a9
7
- data.tar.gz: 04a988086f223d0c3ba003c9ae8d7fbc46d602b7f4e2858f6e687a91558a027b3ca1190c3d467296267e882c0f9e0b3314bccabc2787a992e5201aec2a94d289
6
+ metadata.gz: feaa9eb90bb15e1afc501da8584efc5f9f52b5c1beb3fee5c82c8b56cffff9c6f031f446904e3dc5352218d3238761ef7efba7af63770911ef9193e219d79a43
7
+ data.tar.gz: 03250258d1c9c21517cadab6812621f2532178a019e696e78732db221f4c5f96edc7c8829549f41d07cc3d3207dceb1015272ff6715062aa2f70eb41ca7eb81e
@@ -9,11 +9,27 @@ module SalesforceAdapter
9
9
 
10
10
  module Helpers
11
11
 
12
+ # Potential errors raisable if the salesforce API is down
13
+ TIMEOUT_ERRORS = [
14
+ Timeout::Error,
15
+ Errno::EINVAL,
16
+ Errno::ECONNRESET,
17
+ Errno::ETIMEDOUT,
18
+ Errno::EHOSTUNREACH,
19
+ Errno::ECONNREFUSED,
20
+ Errno::EPIPE,
21
+ EOFError,
22
+ Net::HTTPBadResponse,
23
+ Net::HTTPHeaderSyntaxError,
24
+ Net::ProtocolError,
25
+ SocketError
26
+ ]
27
+
12
28
  class << self
13
29
 
14
30
  # Attemps to run a salesforce operation a given number of times,
15
31
  # Handle timeout errors and sleep between retries
16
- def handle_timeout(opts= {}, &block)
32
+ def handle_timeout(opts= {})
17
33
 
18
34
  max_tries = opts[:max_tries] || 1
19
35
  sleep_between_tries = opts[:sleep_between_tries] || 1
@@ -22,13 +38,26 @@ module SalesforceAdapter
22
38
 
23
39
  begin
24
40
  counter += 1
25
- yield
41
+ yield if block_given?
26
42
 
27
- rescue Timeout::Error => e
43
+ # Standard ruby exceptions when a remote host is down
44
+ rescue *TIMEOUT_ERRORS => e
28
45
  raise SalesforceAdapter::SalesforceTimeout.new(e.message) if counter >= max_tries
29
-
30
- sleep sleep_between_tries
46
+ Kernel.sleep sleep_between_tries
31
47
  retry
48
+
49
+ # The RForce gem may raise runtime errors if salesforce is down (e.g : when logging in)
50
+ rescue RuntimeError => e
51
+
52
+ if e.message.match /SERVER_UNAVAILABLE/
53
+ raise SalesforceAdapter::SalesforceTimeout.new(e.message) if counter >= max_tries
54
+ Kernel.sleep sleep_between_tries
55
+ retry
56
+
57
+ else
58
+ raise
59
+ end
60
+
32
61
  end
33
62
 
34
63
  end
@@ -4,23 +4,6 @@ module SalesforceAdapter
4
4
 
5
5
  class RforceBinding
6
6
 
7
- # Potential errors raisable is the salesforce API is down
8
- TIMEOUT_ERRORS = [
9
- Timeout::Error,
10
- Errno::EINVAL,
11
- Errno::ECONNRESET,
12
- Errno::ETIMEDOUT,
13
- Errno::EHOSTUNREACH,
14
- Errno::ECONNREFUSED,
15
- Errno::EPIPE,
16
- EOFError,
17
- Net::HTTPBadResponse,
18
- Net::HTTPHeaderSyntaxError,
19
- Net::ProtocolError,
20
- # OpenURI::HTTPError,
21
- SocketError
22
- ]
23
-
24
7
  def initialize(url, login, password)
25
8
  @url = url
26
9
  @login = login
@@ -32,9 +15,7 @@ module SalesforceAdapter
32
15
 
33
16
  # Attempts to login to salesforce
34
17
  def login
35
- Helpers.handle_timeout(:max_tries => 4, :sleep_between_tries => 2) do
36
- @rforce.login( @login , @password )
37
- end
18
+ @rforce.login( @login , @password )
38
19
  end
39
20
 
40
21
 
@@ -51,16 +32,11 @@ module SalesforceAdapter
51
32
 
52
33
  define_method method_name do |*args, &block|
53
34
 
54
- begin
35
+ Helpers.handle_timeout(:max_tries => 4, :sleep_between_tries => 2) do
55
36
 
56
- # Guarantee the binding is logged in
57
37
  login unless logged_in?
58
-
59
38
  @rforce.send method_name, *args, &block
60
39
 
61
- # Handle timeouts from salesforce
62
- rescue *TIMEOUT_ERRORS => e
63
- raise SalesforceAdapter::SalesforceTimeout.new(e.message)
64
40
  end
65
41
 
66
42
  end
@@ -1,3 +1,3 @@
1
1
  module SalesforceAdapter
2
- VERSION = "1.0.1"
2
+ VERSION = "1.0.2"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: salesforce_adapter
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 1.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ClicRDV
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-04-30 00:00:00.000000000 Z
11
+ date: 2014-05-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rforce