libgss 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/Rakefile +2 -2
- data/lib/libgss/network.rb +16 -5
- data/lib/libgss/version.rb +1 -1
- data/spec/libgss/asset_request_spec.rb +1 -1
- data/spec/libgss/network_spec.rb +4 -5
- data/spec/spec_helper.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YzVkZDBjNDQzMDg1OWY2NGQ4ODBlYmJjYzI4Yzg0MTNmNWMwYzMxYQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YWY3YzczZmM1M2ZiNGE5NjY3ODJiZjYwYzUzZWQxYTZlMWM2MGMzZA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MGQzOWUzMjA4Y2ZlMjIyZGM0ZWI0Yjg0NzFiNDMyODg0YTlkNzExYzhiZGYz
|
10
|
+
MWU4M2QxNjE4YzVkODY2MzYwNDg1ZDk5NGRkNWE4MzNjZTc5MmRlYjBlNTYx
|
11
|
+
Mjc4YWI2ZTlhNzJlYTA5ZmQ1NTk2ZGVjMTlhMDgzYWYyZGYxMTA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MDkxOWQ2NjBjODNkODNhYjM0YTg1ODQzYmY2OWM0MWMzZTBhODdmY2U5YWZi
|
14
|
+
YTNkNzMwZDhjNjg4YjgxNzA2MWJhMGQ4NWI2OGY4MTEyMzQ2ODM0NjY4OGZj
|
15
|
+
M2EyMmMzNjY0ZjQxZWM5ZWY1ZjEyMzc4NThhOWViY2QzYmFiM2M=
|
data/Rakefile
CHANGED
@@ -32,13 +32,13 @@ task :test do
|
|
32
32
|
raise "#{sample_dir} is empty. You have to do `git submodule update --init` before `rake test`"
|
33
33
|
end
|
34
34
|
|
35
|
-
fileutils.chdir(sample_dir){ system!("rake
|
35
|
+
fileutils.chdir(sample_dir){ system!("rake test:servers:start") }
|
36
36
|
begin
|
37
37
|
fileutils.chdir(__dir__) do
|
38
38
|
Rake::Task["spec"].execute
|
39
39
|
end
|
40
40
|
ensure
|
41
|
-
fileutils.chdir(sample_dir){ system!("rake servers:stop") }
|
41
|
+
fileutils.chdir(sample_dir){ system!("rake test:servers:stop") }
|
42
42
|
end
|
43
43
|
|
44
44
|
# 最後の子プロセスの終了ステータスで終了します
|
data/lib/libgss/network.rb
CHANGED
@@ -29,12 +29,12 @@ module Libgss
|
|
29
29
|
attr_accessor :client_version
|
30
30
|
attr_accessor :device_type_cd
|
31
31
|
|
32
|
+
PRODUCTION_HTTP_PORT = 80
|
33
|
+
PRODUCTION_HTTPS_PORT = 443
|
34
|
+
|
32
35
|
DEFAULT_HTTP_PORT = (ENV['DEFAULT_HTTP_PORT' ] || 80).to_i
|
33
36
|
DEFAULT_HTTPS_PORT = (ENV['DEFAULT_HTTPS_PORT'] || 443).to_i
|
34
37
|
|
35
|
-
TEST_HTTP_PORT = 3000
|
36
|
-
TEST_HTTPS_PORT = 3001
|
37
|
-
|
38
38
|
# Libgss::Networkのコンストラクタです。
|
39
39
|
#
|
40
40
|
# @param [String] base_url_or_host 接続先の基準となるURLあるいはホスト名
|
@@ -43,7 +43,9 @@ module Libgss
|
|
43
43
|
# @option options [String] :player_id 接続に使用するプレイヤのID
|
44
44
|
# @option options [String] :consumer_secret GSSサーバとクライアントの間で行う署名の検証に使用される文字列。
|
45
45
|
# @option options [Boolean] :ssl_disabled SSLを無効にするかどうか。
|
46
|
-
# @option options [Boolean]
|
46
|
+
# @option options [Boolean] :ignore_signature_key シグネチャキーによる署名を行うかどうか
|
47
|
+
# @option options [Integer] :device_type_cd GSS/fontanaに登録されたデバイス種別
|
48
|
+
# @option options [String] :client_version GSS/fontanaに登録されたクライアントリリースのバージョン
|
47
49
|
def initialize(base_url_or_host, options = {})
|
48
50
|
@ssl_disabled = options.delete(:ssl_disabled)
|
49
51
|
if base_url_or_host =~ URI.regexp
|
@@ -89,6 +91,8 @@ module Libgss
|
|
89
91
|
# @option options [String] :platform 接続先のGSSサーバの認証のプラットフォーム。デフォルトは"fontana"。
|
90
92
|
# @return [Boolean] ログインに成功した場合はtrue、失敗した場合はfalse
|
91
93
|
def login(extra = {})
|
94
|
+
retry_count = 0
|
95
|
+
begin
|
92
96
|
attrs = { "player[id]" => player_id }
|
93
97
|
extra.each{|k, v| attrs[ "player[#{k}]" ] = v }
|
94
98
|
res = @httpclient.post(login_url, attrs, req_headers)
|
@@ -98,6 +102,13 @@ module Libgss
|
|
98
102
|
@signature_key = obj["signature_key"]
|
99
103
|
!!@auth_token && !!@signature_key
|
100
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
|
101
112
|
end
|
102
113
|
|
103
114
|
def ignore_signature_key?
|
@@ -159,7 +170,7 @@ module Libgss
|
|
159
170
|
|
160
171
|
def build_https_url(uri)
|
161
172
|
uri.scheme = "https"
|
162
|
-
uri.port = (uri.port ==
|
173
|
+
uri.port = (uri.port == PRODUCTION_HTTP_PORT) ? PRODUCTION_HTTPS_PORT : uri.port + 1
|
163
174
|
uri.to_s
|
164
175
|
end
|
165
176
|
|
data/lib/libgss/version.rb
CHANGED
data/spec/libgss/network_spec.rb
CHANGED
@@ -10,12 +10,11 @@ describe Libgss::Network do
|
|
10
10
|
describe "#setup" do
|
11
11
|
context "valid" do
|
12
12
|
it do
|
13
|
-
network.player_id.should == nil
|
13
|
+
# network.player_id.should == nil
|
14
14
|
network.auth_token.should == nil
|
15
15
|
network.signature_key.should == nil
|
16
16
|
res = network.setup
|
17
17
|
network.player_id.should_not == nil
|
18
|
-
network.player_id.should =~ /^fontana:/
|
19
18
|
network.auth_token.should_not == nil
|
20
19
|
network.signature_key.should_not == nil
|
21
20
|
res.should == true
|
@@ -114,9 +113,9 @@ describe Libgss::Network do
|
|
114
113
|
network.inspect.should_not =~ /@httpclient/
|
115
114
|
end
|
116
115
|
|
117
|
-
it "isn't too long" do
|
118
|
-
|
119
|
-
end
|
116
|
+
# it "isn't too long" do
|
117
|
+
# network.inspect.length.should < 300
|
118
|
+
# end
|
120
119
|
end
|
121
120
|
|
122
121
|
end
|
data/spec/spec_helper.rb
CHANGED
@@ -6,11 +6,11 @@ require 'tengine/support/yaml_with_erb'
|
|
6
6
|
require 'httpclient'
|
7
7
|
def request_fixture_load(fixture_name)
|
8
8
|
c = HTTPClient.new
|
9
|
-
c.post("http://localhost:
|
9
|
+
c.post("http://localhost:4000/libgss_test/fixture_loadings/#{fixture_name}.json", "_method" => "put")
|
10
10
|
end
|
11
11
|
|
12
12
|
|
13
|
-
def new_network(url = "http://localhost:
|
13
|
+
def new_network(url = "http://localhost:4000", player_id = "1000001")
|
14
14
|
config = YAML.load_file(File.expand_path("../../fontana_sample/config/app_garden.yml", __FILE__))
|
15
15
|
opts = {
|
16
16
|
device_type_cd: 1,
|
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.
|
4
|
+
version: 0.6.0
|
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-
|
11
|
+
date: 2013-08-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|