gs2-ruby-sdk-stamina 0.0.1
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 +7 -0
- data/.buildpath +5 -0
- data/.gitignore +10 -0
- data/.project +17 -0
- data/Gemfile +5 -0
- data/README.md +2 -0
- data/Rakefile +2 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/gs2-ruby-sdk-stamina.gemspec +26 -0
- data/lib/gs2/stamina/Client.rb +292 -0
- data/lib/gs2/stamina/version.rb +5 -0
- data/lib/gs2-stamina.rb +1 -0
- metadata +112 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 3b0bee334d7e80df544657c5e50dbea608a2d4e7
|
4
|
+
data.tar.gz: c7a6e704ff1b4732547ae3f05eb180bfa30c17c7
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: ca05c62d2e90b6f843d2d6adbef559ec520dbcffc03c222232f429cbb692bd50a77372f852974732e221c95745689fbe632c3917cf0b1ed2631f68640bce8360
|
7
|
+
data.tar.gz: 014e1d5d009dc27f1d73d141a6f9275a0dd1361bb53c55120d667cec968fe615a00d7f4cdf8a7c7f34ddfb2a2acd1d75999ea570e0b897f7e61f0fab6392e201
|
data/.buildpath
ADDED
data/.gitignore
ADDED
data/.project
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<projectDescription>
|
3
|
+
<name>gs2-ruby-sdk-stamina</name>
|
4
|
+
<comment></comment>
|
5
|
+
<projects>
|
6
|
+
</projects>
|
7
|
+
<buildSpec>
|
8
|
+
<buildCommand>
|
9
|
+
<name>org.eclipse.dltk.core.scriptbuilder</name>
|
10
|
+
<arguments>
|
11
|
+
</arguments>
|
12
|
+
</buildCommand>
|
13
|
+
</buildSpec>
|
14
|
+
<natures>
|
15
|
+
<nature>org.eclipse.dltk.ruby.core.nature</nature>
|
16
|
+
</natures>
|
17
|
+
</projectDescription>
|
data/Gemfile
ADDED
data/README.md
ADDED
data/Rakefile
ADDED
data/bin/console
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require "bundler/setup"
|
4
|
+
require "gs2/sdk/for/ruby/stamina"
|
5
|
+
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
8
|
+
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
10
|
+
# require "pry"
|
11
|
+
# Pry.start
|
12
|
+
|
13
|
+
require "irb"
|
14
|
+
IRB.start
|
data/bin/setup
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'gs2/stamina/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "gs2-ruby-sdk-stamina"
|
8
|
+
spec.version = Gs2::Stamina::VERSION
|
9
|
+
spec.authors = ["Game Server Services, Inc."]
|
10
|
+
spec.email = ["contact@gs2.io"]
|
11
|
+
spec.licenses = "Apache-2.0"
|
12
|
+
|
13
|
+
spec.summary = %q{Game Server Services GS2-Stamina Client Library}
|
14
|
+
spec.homepage = "https://gs2.io/"
|
15
|
+
|
16
|
+
spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
|
17
|
+
spec.bindir = "exe"
|
18
|
+
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
|
+
spec.require_paths = ["lib"]
|
20
|
+
|
21
|
+
spec.add_dependency "gs2-ruby-sdk-core", "~> 0.0.1"
|
22
|
+
spec.add_dependency "gs2-ruby-sdk-auth", "~> 0.0.1"
|
23
|
+
|
24
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
25
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
26
|
+
end
|
@@ -0,0 +1,292 @@
|
|
1
|
+
require 'gs2/core/AbstractClient.rb'
|
2
|
+
|
3
|
+
module Gs2 module Stamina
|
4
|
+
|
5
|
+
# GS2-Stamina クライアント
|
6
|
+
#
|
7
|
+
# @author Game Server Services, Inc.
|
8
|
+
class Client < Gs2::Core::AbstractClient
|
9
|
+
|
10
|
+
@@ENDPOINT = 'stamina'
|
11
|
+
|
12
|
+
# コンストラクタ
|
13
|
+
#
|
14
|
+
# @param region [String] リージョン名
|
15
|
+
# @param gs2_client_id [String] GSIクライアントID
|
16
|
+
# @param gs2_client_secret [String] GSIクライアントシークレット
|
17
|
+
def initialize(region, gs2_client_id, gs2_client_secret)
|
18
|
+
super(region, gs2_client_id, gs2_client_secret)
|
19
|
+
end
|
20
|
+
|
21
|
+
# デバッグ用。通常利用する必要はありません。
|
22
|
+
def self.ENDPOINT(v = nil)
|
23
|
+
if v
|
24
|
+
@@ENDPOINT = v
|
25
|
+
else
|
26
|
+
return @@ENDPOINT
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
# スタミナプールリストを取得
|
31
|
+
#
|
32
|
+
# @param pageToken [String] ページトークン
|
33
|
+
# @param limit [Integer] 取得件数
|
34
|
+
# @return [Array]
|
35
|
+
# * items
|
36
|
+
# [Array]
|
37
|
+
# * staminaPoolId => スタミナプールID
|
38
|
+
# * ownerId => オーナーID
|
39
|
+
# * name => スタミナプール名
|
40
|
+
# * description => 説明文
|
41
|
+
# * serviceClass => サービスクラス
|
42
|
+
# * increaseInterval => スタミナの更新速度
|
43
|
+
# * createAt => 作成日時
|
44
|
+
# * nextPageToken => 次ページトークン
|
45
|
+
def describe_stamina_pool(pageToken = nil, limit = nil)
|
46
|
+
query = {}
|
47
|
+
if pageToken; query['pageToken'] = pageToken; end
|
48
|
+
if limit; query['limit'] = limit; end
|
49
|
+
return get(
|
50
|
+
'Gs2Stamina',
|
51
|
+
'DescribeStaminaPool',
|
52
|
+
@@ENDPOINT,
|
53
|
+
'/staminaPool',
|
54
|
+
query);
|
55
|
+
end
|
56
|
+
|
57
|
+
# スタミナプールを作成<br>
|
58
|
+
# <br>
|
59
|
+
# GS2-Staminaを利用するには、まずスタミナプールを作成する必要があります。<br>
|
60
|
+
# スタミナプールには複数のユーザのスタミナ値を格納することができます。<br>
|
61
|
+
# <br>
|
62
|
+
# スタミナプールの設定として、スタミナ値の回復速度を秒単位で指定できます。<br>
|
63
|
+
# この設定値を利用して、スタミナ値の回復処理を行いつつユーザごとに最新のスタミナ値を取得することができます。<br>
|
64
|
+
#
|
65
|
+
# @param request [Array]
|
66
|
+
# * name => スタミナプール名
|
67
|
+
# * description => 説明文
|
68
|
+
# * serviceClass => サービスクラス
|
69
|
+
# * increaseInterval => スタミナの更新速度
|
70
|
+
# @return [Array]
|
71
|
+
# * item
|
72
|
+
# * staminaPoolId => スタミナプールID
|
73
|
+
# * ownerId => オーナーID
|
74
|
+
# * name => スタミナプール名
|
75
|
+
# * description => 説明文
|
76
|
+
# * serviceClass => サービスクラス
|
77
|
+
# * increaseInterval => スタミナの更新速度
|
78
|
+
# * createAt => 作成日時
|
79
|
+
def create_stamina_pool(request)
|
80
|
+
if not request; raise ArgumentError.new(); end
|
81
|
+
body = {}
|
82
|
+
if request.has_key?('name'); body['name'] = request['name']; end
|
83
|
+
if request.has_key?('description'); body['description'] = request['description']; end
|
84
|
+
if request.has_key?('serviceClass'); body['serviceClass'] = request['serviceClass']; end
|
85
|
+
if request.has_key?('increaseInterval'); body['increaseInterval'] = request['increaseInterval']; end
|
86
|
+
query = {}
|
87
|
+
return post(
|
88
|
+
'Gs2Stamina',
|
89
|
+
'CreateStaminaPool',
|
90
|
+
@@ENDPOINT,
|
91
|
+
'/staminaPool',
|
92
|
+
body,
|
93
|
+
query);
|
94
|
+
end
|
95
|
+
|
96
|
+
# サービスクラスリストを取得
|
97
|
+
#
|
98
|
+
# @return [Array] サービスクラス
|
99
|
+
def describeServiceClass()
|
100
|
+
query = {}
|
101
|
+
result = get(
|
102
|
+
'Gs2Stamina',
|
103
|
+
'DescribeServiceClass',
|
104
|
+
@@ENDPOINT,
|
105
|
+
'/staminaPool/serviceClass',
|
106
|
+
query);
|
107
|
+
return result['items'];
|
108
|
+
end
|
109
|
+
|
110
|
+
# スタミナプールを取得
|
111
|
+
#
|
112
|
+
# @param request [Array]
|
113
|
+
# * staminaPoolName => スタミナプール名
|
114
|
+
# @return [Array]
|
115
|
+
# * item
|
116
|
+
# * staminaPoolId => スタミナプールID
|
117
|
+
# * ownerId => オーナーID
|
118
|
+
# * name => スタミナプール名
|
119
|
+
# * description => 説明文
|
120
|
+
# * serviceClass => サービスクラス
|
121
|
+
# * increaseInterval => スタミナの更新速度
|
122
|
+
# * createAt => 作成日時
|
123
|
+
def get_stamina_pool(request)
|
124
|
+
if not request; raise ArgumentError.new(); end
|
125
|
+
if not request.has_key?('staminaPoolName'); raise ArgumentError.new(); end
|
126
|
+
if not request['staminaPoolName']; raise ArgumentError.new(); end
|
127
|
+
query = {}
|
128
|
+
return get(
|
129
|
+
'Gs2Stamina',
|
130
|
+
'GetStaminaPool',
|
131
|
+
@@ENDPOINT,
|
132
|
+
'/staminaPool/' + request['staminaPoolName'],
|
133
|
+
query);
|
134
|
+
end
|
135
|
+
|
136
|
+
# スタミナプールの状態を取得
|
137
|
+
#
|
138
|
+
# @param request [Array]
|
139
|
+
# * staminaPoolName => スタミナプール名
|
140
|
+
# @return [Array]
|
141
|
+
# * status => 状態
|
142
|
+
def get_stamina_pool_status(request)
|
143
|
+
if not request; raise ArgumentError.new(); end
|
144
|
+
if not request.has_key?('staminaPoolName'); raise ArgumentError.new(); end
|
145
|
+
if not request['staminaPoolName']; raise ArgumentError.new(); end
|
146
|
+
query = {}
|
147
|
+
return get(
|
148
|
+
'Gs2Stamina',
|
149
|
+
'GetStaminaPoolStatus',
|
150
|
+
@@ENDPOINT,
|
151
|
+
'/staminaPool/' + request['staminaPoolName'] + '/status',
|
152
|
+
query);
|
153
|
+
end
|
154
|
+
|
155
|
+
# スタミナプールを更新
|
156
|
+
#
|
157
|
+
# @param request [Array]
|
158
|
+
# * staminaPoolName => スタミナプール名
|
159
|
+
# * description => 説明文
|
160
|
+
# * serviceClass => サービスクラス
|
161
|
+
# * increaseInterval => スタミナの更新速度
|
162
|
+
# @return [Array]
|
163
|
+
# * item
|
164
|
+
# * staminaPoolId => スタミナプールID
|
165
|
+
# * ownerId => オーナーID
|
166
|
+
# * name => スタミナプール名
|
167
|
+
# * description => 説明文
|
168
|
+
# * serviceClass => サービスクラス
|
169
|
+
# * increaseInterval => スタミナの更新速度
|
170
|
+
# * createAt => 作成日時
|
171
|
+
def update_stamina_pool(request)
|
172
|
+
if not request; raise ArgumentError.new(); end
|
173
|
+
if not request.has_key?('staminaPoolName'); raise ArgumentError.new(); end
|
174
|
+
if not request['staminaPoolName']; raise ArgumentError.new(); end
|
175
|
+
body = {}
|
176
|
+
if request.has_key?('description'); body['description'] = request['description']; end
|
177
|
+
if request.has_key?('serviceClass'); body['serviceClass'] = request['serviceClass']; end
|
178
|
+
if request.has_key?('increaseInterval'); body['increaseInterval'] = request['increaseInterval']; end
|
179
|
+
query = {}
|
180
|
+
return put(
|
181
|
+
'Gs2Stamina',
|
182
|
+
'UpdateStaminaPool',
|
183
|
+
@@ENDPOINT,
|
184
|
+
'/staminaPool/' + request['staminaPoolName'],
|
185
|
+
body,
|
186
|
+
query);
|
187
|
+
end
|
188
|
+
|
189
|
+
# スタミナプールを削除
|
190
|
+
#
|
191
|
+
# @param request [Array]
|
192
|
+
# * staminaPoolName => スタミナプール名
|
193
|
+
def delete_stamina_pool(request)
|
194
|
+
if not request; raise ArgumentError.new(); end
|
195
|
+
if not request.has_key?('staminaPoolName'); raise ArgumentError.new(); end
|
196
|
+
if not request['staminaPoolName']; raise ArgumentError.new(); end
|
197
|
+
query = {}
|
198
|
+
return delete(
|
199
|
+
'Gs2Stamina',
|
200
|
+
'DeleteStaminaPool',
|
201
|
+
@@ENDPOINT,
|
202
|
+
'/staminaPool/' + request['staminaPoolName'],
|
203
|
+
query);
|
204
|
+
end
|
205
|
+
|
206
|
+
# スタミナ値を取得<br>
|
207
|
+
# <br>
|
208
|
+
# 指定したユーザの最新のスタミナ値を取得します。<br>
|
209
|
+
# 回復処理などが行われた状態の値が応答されますので、そのままゲームで利用いただけます。<br>
|
210
|
+
# <br>
|
211
|
+
# accessToken には {http://static.docs.gs2.io/ruby/auth/Gs2/Auth/Client.html#login-instance_method Gs2::Auth::Client::login()} でログインして取得したアクセストークンを指定してください。<br>
|
212
|
+
#
|
213
|
+
# @param request [Array]
|
214
|
+
# * staminaPoolName => スタミナプール名
|
215
|
+
# * maxValue => スタミナ値の最大値
|
216
|
+
# * accessToken => アクセストークン
|
217
|
+
# @return [Array]
|
218
|
+
# * item
|
219
|
+
# * userId => ユーザID
|
220
|
+
# * value => スタミナ値
|
221
|
+
# * overflow => 最大値を超えているスタミナ値
|
222
|
+
# * lastUpdateAt => 更新日時
|
223
|
+
# * nextIncreaseTimestamp => 次回スタミナ値が回復するタイムスタンプ(unixepoch)
|
224
|
+
def get_stamina(request)
|
225
|
+
if not request; raise ArgumentError.new(); end
|
226
|
+
if not request.has_key?('staminaPoolName'); raise ArgumentError.new(); end
|
227
|
+
if not request['staminaPoolName']; raise ArgumentError.new(); end
|
228
|
+
if not request.has_key?('accessToken'); raise ArgumentError.new(); end
|
229
|
+
if not request['accessToken']; raise ArgumentError.new(); end
|
230
|
+
query = {}
|
231
|
+
if request.has_key?('maxValue'); query['maxValue'] = request['maxValue']; end
|
232
|
+
header = {
|
233
|
+
'X-GS2-ACCESS-TOKEN' => request['accessToken']
|
234
|
+
}
|
235
|
+
return get(
|
236
|
+
'Gs2Stamina',
|
237
|
+
'GetStamina',
|
238
|
+
@@ENDPOINT,
|
239
|
+
'/staminaPool/' + request['staminaPoolName'] + '/stamina',
|
240
|
+
query,
|
241
|
+
header);
|
242
|
+
end
|
243
|
+
|
244
|
+
# スタミナ値を増減させる<br>
|
245
|
+
# <br>
|
246
|
+
# 同一ユーザに対するスタミナ値の増減処理が衝突した場合は、後でリクエストを出した側の処理が失敗します。<br>
|
247
|
+
# そのため、同時に複数のデバイスを利用してゲームを遊んでいる際に、一斉にクエストを開始することで1回分のスタミナ消費で2回ゲームが遊べてしまう。<br>
|
248
|
+
# というような不正行為を防ぐことが出来るようになっています。<br>
|
249
|
+
# <br>
|
250
|
+
# クエストに失敗した時に消費したスタミナ値を戻してあげる際や、スタミナ値の回復アイテムを利用した際などに<br>
|
251
|
+
# スタミナ値を増やす操作を行うことになりますが、その際に overflow に true を指定することで、スタミナ値の最大値を超える回復を行えます。<br>
|
252
|
+
# スタミナ値の上限を超えた部分は overflow フィールドに格納され、優先してそちらが消費されます。<br>
|
253
|
+
# <br>
|
254
|
+
# accessToken には {http://static.docs.gs2.io/ruby/auth/Gs2/Auth/Client.html#login-instance_method Gs2::Auth::Client::login()} でログインして取得したアクセストークンを指定してください。<br>
|
255
|
+
#
|
256
|
+
# @param request [Array]
|
257
|
+
# * staminaPoolName => スタミナプール名
|
258
|
+
# * variation => スタミナ値の増減量
|
259
|
+
# * maxValue => スタミナ値の最大値
|
260
|
+
# * overflow => スタミナ値の最大値を超えることを許容するか
|
261
|
+
# * accessToken => アクセストークン
|
262
|
+
# @return [Array]
|
263
|
+
# * item
|
264
|
+
# * userId => ユーザID
|
265
|
+
# * value => スタミナ値
|
266
|
+
# * overflow => 最大値を超えているスタミナ値
|
267
|
+
# * lastUpdateAt => 更新日時
|
268
|
+
def change_stamina(request)
|
269
|
+
if not request; raise ArgumentError.new(); end
|
270
|
+
if not request.has_key?('staminaPoolName'); raise ArgumentError.new(); end
|
271
|
+
if not request['staminaPoolName']; raise ArgumentError.new(); end
|
272
|
+
if not request.has_key?('accessToken'); raise ArgumentError.new(); end
|
273
|
+
if not request['accessToken']; raise ArgumentError.new(); end
|
274
|
+
body = {}
|
275
|
+
if request.has_key?('variation'); body['variation'] = request['variation']; end
|
276
|
+
if request.has_key?('maxValue'); body['maxValue'] = request['maxValue']; end
|
277
|
+
if request.has_key?('overflow'); body['overflow'] = request['overflow']; end
|
278
|
+
query = {}
|
279
|
+
header = {
|
280
|
+
'X-GS2-ACCESS-TOKEN' => request['accessToken']
|
281
|
+
}
|
282
|
+
return post(
|
283
|
+
'Gs2Stamina',
|
284
|
+
'ChangeStamina',
|
285
|
+
@@ENDPOINT,
|
286
|
+
'/staminaPool/' + request['staminaPoolName'] + '/stamina',
|
287
|
+
body,
|
288
|
+
query,
|
289
|
+
header);
|
290
|
+
end
|
291
|
+
end
|
292
|
+
end end
|
data/lib/gs2-stamina.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'gs2/stamina/Client.rb'
|
metadata
ADDED
@@ -0,0 +1,112 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gs2-ruby-sdk-stamina
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Game Server Services, Inc.
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2016-10-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: gs2-ruby-sdk-core
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 0.0.1
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 0.0.1
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: gs2-ruby-sdk-auth
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.0.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.0.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: bundler
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '1.12'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '1.12'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '10.0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '10.0'
|
69
|
+
description:
|
70
|
+
email:
|
71
|
+
- contact@gs2.io
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- ".buildpath"
|
77
|
+
- ".gitignore"
|
78
|
+
- ".project"
|
79
|
+
- Gemfile
|
80
|
+
- README.md
|
81
|
+
- Rakefile
|
82
|
+
- bin/console
|
83
|
+
- bin/setup
|
84
|
+
- gs2-ruby-sdk-stamina.gemspec
|
85
|
+
- lib/gs2-stamina.rb
|
86
|
+
- lib/gs2/stamina/Client.rb
|
87
|
+
- lib/gs2/stamina/version.rb
|
88
|
+
homepage: https://gs2.io/
|
89
|
+
licenses:
|
90
|
+
- Apache-2.0
|
91
|
+
metadata: {}
|
92
|
+
post_install_message:
|
93
|
+
rdoc_options: []
|
94
|
+
require_paths:
|
95
|
+
- lib
|
96
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
97
|
+
requirements:
|
98
|
+
- - ">="
|
99
|
+
- !ruby/object:Gem::Version
|
100
|
+
version: '0'
|
101
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
102
|
+
requirements:
|
103
|
+
- - ">="
|
104
|
+
- !ruby/object:Gem::Version
|
105
|
+
version: '0'
|
106
|
+
requirements: []
|
107
|
+
rubyforge_project:
|
108
|
+
rubygems_version: 2.5.1
|
109
|
+
signing_key:
|
110
|
+
specification_version: 4
|
111
|
+
summary: Game Server Services GS2-Stamina Client Library
|
112
|
+
test_files: []
|