gs2-ruby-sdk-timer 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 +9 -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-timer.gemspec +25 -0
- data/lib/gs2/timer/Client.rb +274 -0
- data/lib/gs2/timer/version.rb +5 -0
- data/lib/gs2-timer.rb +1 -0
- metadata +98 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: be3b68fdf3a5bc13e30ae222bb3d27a391d22ead
|
4
|
+
data.tar.gz: 8f7275f88464b1dcc35a4a172729c65b4da13a3b
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 74ede709e1bddb074091f3aeeb0946f83a7f69e1a892331868f235a4aa22bb920a0cf77f67f5f0c9c6162bb8991ca7cb6986663244b922d6fe8cb71c0e6d1f5f
|
7
|
+
data.tar.gz: 32499ee842a5e0964e6fa55bc964e219b29d574df25a466a65a07b778af1a256d7a6251c8fd9b3bc173e48e1bee041bd69f888b9f30f9bb5e44971f620e69504
|
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-sdk-for-ruby-timer</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/timer"
|
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,25 @@
|
|
1
|
+
# coding: utf-8
|
2
|
+
lib = File.expand_path('../lib', __FILE__)
|
3
|
+
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
+
require 'gs2/timer/version'
|
5
|
+
|
6
|
+
Gem::Specification.new do |spec|
|
7
|
+
spec.name = "gs2-ruby-sdk-timer"
|
8
|
+
spec.version = Gs2::Timer::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-Timer 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
|
+
|
23
|
+
spec.add_development_dependency "bundler", "~> 1.12"
|
24
|
+
spec.add_development_dependency "rake", "~> 10.0"
|
25
|
+
end
|
@@ -0,0 +1,274 @@
|
|
1
|
+
require 'gs2/core/AbstractClient.rb'
|
2
|
+
|
3
|
+
module Gs2 module Timer
|
4
|
+
|
5
|
+
# GS2-Timer クライアント
|
6
|
+
#
|
7
|
+
# @author Game Server Services, Inc.
|
8
|
+
class Client < Gs2::Core::AbstractClient
|
9
|
+
|
10
|
+
@@ENDPOINT = 'timer'
|
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
|
+
# * timerPoolId => タイマープールID
|
38
|
+
# * ownerId => オーナーID
|
39
|
+
# * name => タイマープール名
|
40
|
+
# * description => 説明文
|
41
|
+
# * createAt => 作成日時
|
42
|
+
# * nextPageToken => 次ページトークン
|
43
|
+
def describe_timer_pool(pageToken = nil, limit = nil)
|
44
|
+
query = {}
|
45
|
+
if pageToken; query['pageToken'] = pageToken end
|
46
|
+
if limit; query['limit'] = limit end
|
47
|
+
return get(
|
48
|
+
'Gs2Timer',
|
49
|
+
'DescribeTimerPool',
|
50
|
+
@@ENDPOINT,
|
51
|
+
'/timerPool',
|
52
|
+
query)
|
53
|
+
end
|
54
|
+
|
55
|
+
# タイマープールを作成。<br>
|
56
|
+
# <br>
|
57
|
+
# GS2-Timer を利用するには、まずタイマープールを作成する必要があります。<br>
|
58
|
+
# タイマープールには複数のタイマーを格納することができます。<br>
|
59
|
+
#
|
60
|
+
# @param request [Array]
|
61
|
+
# * name => タイマープール名
|
62
|
+
# * description => 説明文
|
63
|
+
# @return [Array]
|
64
|
+
# * item
|
65
|
+
# * timerPoolId => タイマープールID
|
66
|
+
# * ownerId => オーナーID
|
67
|
+
# * name => タイマープール名
|
68
|
+
# * description => 説明文
|
69
|
+
# * createAt => 作成日時
|
70
|
+
def create_timer_pool(request)
|
71
|
+
body = {}
|
72
|
+
if not request; raise ArgumentError.new() end
|
73
|
+
if request.has_key?('name'); body['name'] = request['name'] end
|
74
|
+
if request.has_key?('description'); body['description'] = request['description'] end
|
75
|
+
return post(
|
76
|
+
'Gs2Timer',
|
77
|
+
'CreateTimerPool',
|
78
|
+
@@ENDPOINT,
|
79
|
+
'/timerPool',
|
80
|
+
body)
|
81
|
+
end
|
82
|
+
|
83
|
+
# タイマープールを更新。<br>
|
84
|
+
#
|
85
|
+
# @param request [Array]
|
86
|
+
# * timerPoolName => タイマープール名
|
87
|
+
# * description => 説明文
|
88
|
+
# @return [Array]
|
89
|
+
# * item
|
90
|
+
# * timerPoolId => タイマープールID
|
91
|
+
# * ownerId => オーナーID
|
92
|
+
# * name => タイマープール名
|
93
|
+
# * description => 説明文
|
94
|
+
# * createAt => 作成日時
|
95
|
+
def update_timer_pool(request)
|
96
|
+
body = {}
|
97
|
+
if not request; raise ArgumentError.new() end
|
98
|
+
if not request.has_key?('timerPoolName'); raise ArgumentError.new() end
|
99
|
+
if request.has_key?('description'); body['description'] = request['description'] end
|
100
|
+
return put(
|
101
|
+
'Gs2Timer',
|
102
|
+
'UpdateTimerPool',
|
103
|
+
@@ENDPOINT,
|
104
|
+
'/timerPool/' + request['timerPoolName'],
|
105
|
+
body)
|
106
|
+
end
|
107
|
+
|
108
|
+
# タイマープールを取得
|
109
|
+
#
|
110
|
+
# @param request [Array]
|
111
|
+
# * timerPoolName => タイマープール名
|
112
|
+
# @return [Array]
|
113
|
+
# * item
|
114
|
+
# * timerPoolId => タイマープールID
|
115
|
+
# * ownerId => オーナーID
|
116
|
+
# * name => タイマープール名
|
117
|
+
# * description => 説明文
|
118
|
+
# * createAt => 作成日時
|
119
|
+
def get_timer_pool(request)
|
120
|
+
if not request; raise ArgumentError.new() end
|
121
|
+
if not request.has_key?('timerPoolName'); raise ArgumentError.new() end
|
122
|
+
if request['timerPoolName'] == nil; raise ArgumentError.new() end
|
123
|
+
return get(
|
124
|
+
'Gs2Timer',
|
125
|
+
'GetTimerPool',
|
126
|
+
@@ENDPOINT,
|
127
|
+
'/timerPool/' + request['timerPoolName'])
|
128
|
+
end
|
129
|
+
|
130
|
+
# タイマープールを削除
|
131
|
+
#
|
132
|
+
# @param request [Array]
|
133
|
+
# * timerPoolName => タイマープール名
|
134
|
+
def delete_timer_pool(request)
|
135
|
+
if not request; raise ArgumentError.new() end
|
136
|
+
if not request.has_key?('timerPoolName'); raise ArgumentError.new() end
|
137
|
+
if request['timerPoolName'] == nil; raise ArgumentError.new() end
|
138
|
+
return delete(
|
139
|
+
'Gs2Timer',
|
140
|
+
'DeleteTimerPool',
|
141
|
+
@@ENDPOINT,
|
142
|
+
'/timerPool/' + request['timerPoolName'])
|
143
|
+
end
|
144
|
+
|
145
|
+
# タイマーリストを取得
|
146
|
+
#
|
147
|
+
# @param request [Array]
|
148
|
+
# * timerPoolName => タイマープール名
|
149
|
+
# @param string $pageToken ページトークン
|
150
|
+
# @param integer $limit 取得件数
|
151
|
+
# @return [Array]
|
152
|
+
# * items
|
153
|
+
# [Array]
|
154
|
+
# * timerId => タイマーID
|
155
|
+
# * timerPoolId => タイマープールID
|
156
|
+
# * ownerId => オーナーID
|
157
|
+
# * callbackMethod => HTTPメソッド
|
158
|
+
# * callbackUrl => コールバックURL
|
159
|
+
# * callbackBody => コールバックボディ
|
160
|
+
# * executeTime => 実行時間
|
161
|
+
# * retryMax => 最大リトライ回数
|
162
|
+
# * createAt => 作成日時
|
163
|
+
# * nextPageToken => 次ページトークン
|
164
|
+
def describe_timer(request, pageToken = nil, limit = nil)
|
165
|
+
if not request; raise ArgumentError.new(); end
|
166
|
+
if not request.has_key?('timerPoolName'); raise ArgumentError.new(); end
|
167
|
+
if request['timerPoolName'] == nil; raise ArgumentError.new(); end
|
168
|
+
query = {}
|
169
|
+
if pageToken; query['pageToken'] = pageToken; end
|
170
|
+
if limit; query['limit'] = limit; end
|
171
|
+
return get(
|
172
|
+
'Gs2Timer',
|
173
|
+
'DescribeTimer',
|
174
|
+
@@ENDPOINT,
|
175
|
+
'/timerPool/' + request['timerPoolName'] + '/timer',
|
176
|
+
query)
|
177
|
+
end
|
178
|
+
|
179
|
+
# タイマーを作成<br>
|
180
|
+
# <br>
|
181
|
+
# タイマーを作成すると、指定した時刻に指定したURLに指定したパラメータを持ったアクセスを発生させます。<br>
|
182
|
+
# 基本的には指定した時刻以降に60秒以内に呼び出し処理が開始されます。<br>
|
183
|
+
# 混雑時には60秒以上かかることがありますので、タイミングがシビアな処理には向きません。<br>
|
184
|
+
# <br>
|
185
|
+
# アカウントBANを指定した時刻付近で解除する。など、タイミングがシビアでない処理で利用することをおすすめします。<br>
|
186
|
+
#
|
187
|
+
# @param request [Array]
|
188
|
+
# * callbackMethod => HTTPメソッド
|
189
|
+
# * callbackUrl => コールバックURL
|
190
|
+
# * callbackBody => コールバックボディ
|
191
|
+
# * executeTime => 実行時間
|
192
|
+
# * retryMax => 最大リトライ回数(OPTIONAL)
|
193
|
+
# @return [Array]
|
194
|
+
# * item
|
195
|
+
# * timerId => タイマーID
|
196
|
+
# * timerPoolId => タイマープールID
|
197
|
+
# * ownerId => オーナーID
|
198
|
+
# * callbackMethod => HTTPメソッド
|
199
|
+
# * callbackUrl => コールバックURL
|
200
|
+
# * callbackBody => コールバックボディ
|
201
|
+
# * executeTime => 実行時間
|
202
|
+
# * retryMax => 最大リトライ回数
|
203
|
+
# * createAt => 作成日時
|
204
|
+
def create_timer(request)
|
205
|
+
if not request; raise ArgumentError.new(); end
|
206
|
+
if not request.has_key?('timerPoolName'); raise ArgumentError.new(); end
|
207
|
+
if request['timerPoolName'] == nil; raise ArgumentError.new(); end
|
208
|
+
body = {};
|
209
|
+
if request.has_key?('callbackMethod'); body['callbackMethod'] = request['callbackMethod']; end
|
210
|
+
if request.has_key?('callbackUrl'); body['callbackUrl'] = request['callbackUrl']; end
|
211
|
+
if request.has_key?('executeTime'); body['executeTime'] = request['executeTime']; end
|
212
|
+
if request.has_key?('retryMax'); body['retryMax'] = request['retryMax']; end
|
213
|
+
query = {}
|
214
|
+
return post(
|
215
|
+
'Gs2Timer',
|
216
|
+
'CreateTimer',
|
217
|
+
@@ENDPOINT,
|
218
|
+
'/timerPool/' + request['timerPoolName'] + '/timer',
|
219
|
+
body,
|
220
|
+
query)
|
221
|
+
end
|
222
|
+
|
223
|
+
# タイマーを取得
|
224
|
+
#
|
225
|
+
# @param request [Array]
|
226
|
+
# * timerPoolName => タイマープール名
|
227
|
+
# * timerId => タイマーID
|
228
|
+
# @return [Array]
|
229
|
+
# * item
|
230
|
+
# * timerId => タイマーID
|
231
|
+
# * timerPoolId => タイマープールID
|
232
|
+
# * ownerId => オーナーID
|
233
|
+
# * callbackMethod => HTTPメソッド
|
234
|
+
# * callbackUrl => コールバックURL
|
235
|
+
# * callbackBody => コールバックボディ
|
236
|
+
# * executeTime => 実行時間
|
237
|
+
# * retryMax => 最大リトライ回数
|
238
|
+
# * createAt => 作成日時
|
239
|
+
def get_timer(request)
|
240
|
+
if not request; raise ArgumentError.new(); end
|
241
|
+
if not request.has_key?('timerPoolName'); raise ArgumentError.new(); end
|
242
|
+
if request['timerPoolName'] == nil; raise ArgumentError.new(); end
|
243
|
+
if not request.has_key?('timerId'); raise ArgumentError.new(); end
|
244
|
+
if request['timerId'] == nil; raise ArgumentError.new(); end
|
245
|
+
query = {}
|
246
|
+
return get(
|
247
|
+
'Gs2Timer',
|
248
|
+
'GetTimer',
|
249
|
+
@@ENDPOINT,
|
250
|
+
'/timerPool/' + request['timerPoolName'] + '/timer/' + request['timerId'],
|
251
|
+
query)
|
252
|
+
end
|
253
|
+
|
254
|
+
# タイマーを削除
|
255
|
+
#
|
256
|
+
# @param request [Array]
|
257
|
+
# * timerPoolName => タイマープール名
|
258
|
+
# * timerId => タイマーID
|
259
|
+
def delete_timer(request)
|
260
|
+
if not request; raise ArgumentError.new(); end
|
261
|
+
if not request.has_key?('timerPoolName'); raise ArgumentError.new(); end
|
262
|
+
if request['timerPoolName'] == nil; raise ArgumentError.new(); end
|
263
|
+
if not request.has_key?('timerId'); raise ArgumentError.new(); end
|
264
|
+
if request['timerId'] == nil; raise ArgumentError.new(); end
|
265
|
+
query = {}
|
266
|
+
return delete(
|
267
|
+
'Gs2Timer',
|
268
|
+
'DeleteTimer',
|
269
|
+
@@ENDPOINT,
|
270
|
+
'/timerPool/' + request['timerPoolName'] + '/timer/' + request['timerId'],
|
271
|
+
query)
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end end
|
data/lib/gs2-timer.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'gs2/timer/Client.rb'
|
metadata
ADDED
@@ -0,0 +1,98 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: gs2-ruby-sdk-timer
|
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: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.12'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.12'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '10.0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '10.0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- contact@gs2.io
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".buildpath"
|
63
|
+
- ".gitignore"
|
64
|
+
- ".project"
|
65
|
+
- Gemfile
|
66
|
+
- README.md
|
67
|
+
- Rakefile
|
68
|
+
- bin/console
|
69
|
+
- bin/setup
|
70
|
+
- gs2-ruby-sdk-timer.gemspec
|
71
|
+
- lib/gs2-timer.rb
|
72
|
+
- lib/gs2/timer/Client.rb
|
73
|
+
- lib/gs2/timer/version.rb
|
74
|
+
homepage: https://gs2.io/
|
75
|
+
licenses:
|
76
|
+
- Apache-2.0
|
77
|
+
metadata: {}
|
78
|
+
post_install_message:
|
79
|
+
rdoc_options: []
|
80
|
+
require_paths:
|
81
|
+
- lib
|
82
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
83
|
+
requirements:
|
84
|
+
- - ">="
|
85
|
+
- !ruby/object:Gem::Version
|
86
|
+
version: '0'
|
87
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
88
|
+
requirements:
|
89
|
+
- - ">="
|
90
|
+
- !ruby/object:Gem::Version
|
91
|
+
version: '0'
|
92
|
+
requirements: []
|
93
|
+
rubyforge_project:
|
94
|
+
rubygems_version: 2.5.1
|
95
|
+
signing_key:
|
96
|
+
specification_version: 4
|
97
|
+
summary: Game Server Services GS2-Timer Client Library
|
98
|
+
test_files: []
|