libgss 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzVkZDBjNDQzMDg1OWY2NGQ4ODBlYmJjYzI4Yzg0MTNmNWMwYzMxYQ==
4
+ NzVlZmVlNzIyZWVhNThiNTM4MGQxYTEyMzM0MWUyYjY1MDc4NTMzNw==
5
5
  data.tar.gz: !binary |-
6
- YWY3YzczZmM1M2ZiNGE5NjY3ODJiZjYwYzUzZWQxYTZlMWM2MGMzZA==
6
+ YzhmZmVmZGI0YTdmOWM0NDY5NDk5OWU5ZGIwMWQyMzg1ZDAzM2VmMg==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- MGQzOWUzMjA4Y2ZlMjIyZGM0ZWI0Yjg0NzFiNDMyODg0YTlkNzExYzhiZGYz
10
- MWU4M2QxNjE4YzVkODY2MzYwNDg1ZDk5NGRkNWE4MzNjZTc5MmRlYjBlNTYx
11
- Mjc4YWI2ZTlhNzJlYTA5ZmQ1NTk2ZGVjMTlhMDgzYWYyZGYxMTA=
9
+ ZTFkYmE5ZDA0ZThjZmY3MWFjMzJmODYxNjU1MGYzMDk3YTUyOGVhNDRiYWI2
10
+ NTY4NDhhY2NhZWMxYzZkY2RmNDk1NmM0ZTY1MjZjZDlhMWRkYjU4NGJjYWZk
11
+ OTg1YTJjMmQxZmY4YTdkMGI4ZDYzZTRjMzA5ZjRiMmU4NDYxOTU=
12
12
  data.tar.gz: !binary |-
13
- MDkxOWQ2NjBjODNkODNhYjM0YTg1ODQzYmY2OWM0MWMzZTBhODdmY2U5YWZi
14
- YTNkNzMwZDhjNjg4YjgxNzA2MWJhMGQ4NWI2OGY4MTEyMzQ2ODM0NjY4OGZj
15
- M2EyMmMzNjY0ZjQxZWM5ZWY1ZjEyMzc4NThhOWViY2QzYmFiM2M=
13
+ NjcwMWEyNWU4ZDg3NDljNDMyYmI5NzhjNDRkNzVkZDRhNWM4M2NmNjkwY2Nl
14
+ YjE0NTI1ZWU3MDg2ZDY4YmEyYjUyYjc4MmE5MDU1MThhMTUwOThiYzIxOGVk
15
+ ZTVmMjNlN2QxYmQwMGMxMTFmNmZkYWYwMjEyMWI3Zjk4NDY5MGU=
data/lib/libgss.rb CHANGED
@@ -16,4 +16,23 @@ module Libgss
16
16
  end
17
17
 
18
18
  self.use_oauth_gem = (ENV["USE_OAUTH_GEM"] =~ /\Atrue\Z|\Aon\Z/i)
19
+
20
+ MAX_RETRY_COUNT = (ENV["LIBGSS_MAX_RETRY_COUNT"] || 10).to_i
21
+
22
+ class << self
23
+
24
+ def with_retry(name)
25
+ retry_count = 0
26
+ begin
27
+ return yield
28
+ rescue OpenSSL::SSL::SSLError => e
29
+ $stderr.puts("retrying #{name} [#{e.class.name}] #{e.message}")
30
+ sleep(0.2)
31
+ retry_count += 1
32
+ retry if retry_count <= MAX_RETRY_COUNT
33
+ raise e
34
+ end
35
+ end
36
+
37
+ end
19
38
  end
@@ -52,7 +52,9 @@ module Libgss
52
52
 
53
53
  # アクション群を実行するために実際にHTTPリクエストを送信します。
54
54
  def send_request(&callback)
55
- res = @httpclient.post(action_url, {"inputs" => @actions.map(&:to_hash)}.to_json, req_headers)
55
+ res = Libgss.with_retry("action_request") do
56
+ @httpclient.post(action_url, {"inputs" => @actions.map(&:to_hash)}.to_json, req_headers)
57
+ end
56
58
  case res.code.to_i
57
59
  when 200..299 then # OK
58
60
  else
@@ -91,24 +91,17 @@ module Libgss
91
91
  # @option options [String] :platform 接続先のGSSサーバの認証のプラットフォーム。デフォルトは"fontana"。
92
92
  # @return [Boolean] ログインに成功した場合はtrue、失敗した場合はfalse
93
93
  def login(extra = {})
94
- retry_count = 0
95
- begin
96
94
  attrs = { "player[id]" => player_id }
97
95
  extra.each{|k, v| attrs[ "player[#{k}]" ] = v }
98
- res = @httpclient.post(login_url, attrs, req_headers)
96
+ res = Libgss.with_retry("login") do
97
+ @httpclient.post(login_url, attrs, req_headers)
98
+ end
99
99
  process_json_response(res) do |obj|
100
100
  @player_id ||= obj["player_id"]
101
101
  @auth_token = obj["auth_token"]
102
102
  @signature_key = obj["signature_key"]
103
103
  !!@auth_token && !!@signature_key
104
104
  end
105
- rescue OpenSSL::SSL::SSLError => e
106
- $stderr.puts("retrying login [#{e.class.name}] #{e.message}")
107
- sleep(0.2)
108
- retry_count += 1
109
- retry if retry_count > 3
110
- raise e
111
- end
112
105
  end
113
106
 
114
107
  def ignore_signature_key?
@@ -1,3 +1,3 @@
1
1
  module Libgss
2
- VERSION = "0.6.0"
2
+ VERSION = "0.6.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: libgss
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - akima
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-23 00:00:00.000000000 Z
11
+ date: 2013-08-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler