reward_station 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -126,12 +126,11 @@ module RewardStation
126
126
 
127
127
  def request_with_token method_name, params
128
128
  update_token unless @token
129
- inject_token params
130
- request method_name, params
131
- rescue InvalidToken
132
- update_token
133
- inject_token params
134
- request method_name, params
129
+
130
+ retry_with_token :tries => 2 do
131
+ inject_token params
132
+ request method_name, params
133
+ end
135
134
  end
136
135
 
137
136
  def request method_name, params
@@ -159,5 +158,26 @@ module RewardStation
159
158
  def get_response method_name, params
160
159
  Client.get_client.request(:wsdl, method_name , params).to_hash
161
160
  end
161
+
162
+ private
163
+
164
+ def retry_with_token( options = {})
165
+ opts = {:tries => 1}.merge(options)
166
+
167
+ if (tries = opts[:tries]) <= 0
168
+ return
169
+ end
170
+
171
+ begin
172
+ return yield
173
+ rescue InvalidToken => ex
174
+ if (tries -= 1) > 0
175
+ update_token
176
+ retry
177
+ else
178
+ raise ex
179
+ end
180
+ end
181
+ end
162
182
  end
163
183
  end
@@ -1,3 +1,3 @@
1
1
  module RewardStation
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: reward_station
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 4
10
- version: 0.0.4
9
+ - 5
10
+ version: 0.0.5
11
11
  platform: ruby
12
12
  authors:
13
13
  - Stepan Filatov
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2011-07-20 00:00:00 +04:00
19
+ date: 2011-07-21 00:00:00 +04:00
20
20
  default_executable:
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency