libgss 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 ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ YjBlOTY0MzIyNTBkNDMzY2ExMGE5NDk2YzQzOTg2NWExNmJhOWQ0Yg==
5
+ data.tar.gz: !binary |-
6
+ M2IyMzllMWM1ZWMyY2M3ZGFmOTA2MTJhNWQzNWNlNGE1ODJhOTMwYQ==
7
+ !binary "U0hBNTEy":
8
+ metadata.gz: !binary |-
9
+ Y2M1YWZkNmQ2NTk0NzMwOWRlY2U3NGMwYjE5MDNkZTVkNWM3Yjg5ZWVlZjli
10
+ MmU2OTU4MDFiMDZhNzc3OGUwZWU2MzIyNGYxMTZhMTA5Njk3NzQ5NmFiNjU5
11
+ MTdmNDJiNDdkYjhjOGNkMmExNWRlOTA4MTNkMTBiM2RjYTg5ZGU=
12
+ data.tar.gz: !binary |-
13
+ MTU1OWRkNmMyODk4OWRjNDRlYmM3OTVjYmEzNzVjYTVhNGU1Y2FkNDc4NDYw
14
+ NjhhYmYzMGM1YmMxMWU1M2ZkMzJjNzA1ZDIyMjM2NTMyNzRiMjcxN2M0OTBj
15
+ ZDRlMDdkZjFkNmVjZDcyNDNiMzEwODMwZDU1ZmIyYTY3MjY2ZTY=
data/.gitignore ADDED
@@ -0,0 +1,16 @@
1
+ *.gem
2
+ *.rbc
3
+ .bundle
4
+ .config
5
+ .yardoc
6
+ InstalledFiles
7
+ _yardoc
8
+ coverage
9
+ doc/
10
+ lib/bundler/man
11
+ pkg
12
+ rdoc
13
+ spec/reports
14
+ test/tmp
15
+ test/version_tmp
16
+ tmp
data/.rspec ADDED
@@ -0,0 +1 @@
1
+ --color
data/.travis.yml ADDED
@@ -0,0 +1,3 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.0.0
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source 'https://rubygems.org'
2
+
3
+ # Specify your gem's dependencies in libgss.gemspec
4
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,31 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ libgss (0.0.1)
5
+ httpclient
6
+ json
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ diff-lcs (1.2.3)
12
+ httpclient (2.3.3)
13
+ json (1.7.7)
14
+ rake (10.0.4)
15
+ rspec (2.13.0)
16
+ rspec-core (~> 2.13.0)
17
+ rspec-expectations (~> 2.13.0)
18
+ rspec-mocks (~> 2.13.0)
19
+ rspec-core (2.13.1)
20
+ rspec-expectations (2.13.0)
21
+ diff-lcs (>= 1.1.3, < 2.0)
22
+ rspec-mocks (2.13.1)
23
+
24
+ PLATFORMS
25
+ ruby
26
+
27
+ DEPENDENCIES
28
+ bundler (~> 1.3)
29
+ libgss!
30
+ rake
31
+ rspec
data/LICENSE.txt ADDED
@@ -0,0 +1,22 @@
1
+ Copyright (c) 2013 akima
2
+
3
+ MIT License
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining
6
+ a copy of this software and associated documentation files (the
7
+ "Software"), to deal in the Software without restriction, including
8
+ without limitation the rights to use, copy, modify, merge, publish,
9
+ distribute, sublicense, and/or sell copies of the Software, and to
10
+ permit persons to whom the Software is furnished to do so, subject to
11
+ the following conditions:
12
+
13
+ The above copyright notice and this permission notice shall be
14
+ included in all copies or substantial portions of the Software.
15
+
16
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/README.md ADDED
@@ -0,0 +1,29 @@
1
+ # Libgss
2
+
3
+ TODO: Write a gem description
4
+
5
+ ## Installation
6
+
7
+ Add this line to your application's Gemfile:
8
+
9
+ gem 'libgss'
10
+
11
+ And then execute:
12
+
13
+ $ bundle
14
+
15
+ Or install it yourself as:
16
+
17
+ $ gem install libgss
18
+
19
+ ## Usage
20
+
21
+ TODO: Write usage instructions here
22
+
23
+ ## Contributing
24
+
25
+ 1. Fork it
26
+ 2. Create your feature branch (`git checkout -b my-new-feature`)
27
+ 3. Commit your changes (`git commit -am 'Add some feature'`)
28
+ 4. Push to the branch (`git push origin my-new-feature`)
29
+ 5. Create new Pull Request
data/Rakefile ADDED
@@ -0,0 +1,8 @@
1
+ # -*- coding: utf-8 -*-
2
+ require "bundler/gem_tasks"
3
+ require "rspec/core/rake_task"
4
+
5
+ RSpec::Core::RakeTask.new(:spec)
6
+
7
+ ENV['DEFAULT_HTTP_PORT'] ||= '3000'
8
+ ENV['DEFAULT_HTTPS_PORT'] ||= '3001'
@@ -0,0 +1,25 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'libgss'
3
+
4
+ module Libgss
5
+
6
+ class Action
7
+
8
+ attr_accessor :id
9
+
10
+ def initialize(id, args)
11
+ @id = id
12
+ @args = args
13
+ end
14
+
15
+ def with(new_id)
16
+ @id = new_id
17
+ self
18
+ end
19
+
20
+ def to_hash
21
+ {"id" => id}.update(@args)
22
+ end
23
+
24
+ end
25
+ end
@@ -0,0 +1,302 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'libgss'
3
+
4
+ require 'net/http'
5
+ require 'uri'
6
+
7
+ module Libgss
8
+
9
+ class ActionRequest
10
+
11
+ STATUS_PREPARING = 0
12
+ STATUS_SENDING = 1
13
+ STATUS_WAITING = 2
14
+ STATUS_RECEIVED = 3
15
+ STATUS_SUCCESS = 4
16
+ STATUS_ERROR = 5
17
+ STATUS_TIMEOUT = 6
18
+
19
+
20
+ # 読み込みのみ、書き込み不可
21
+ attr_reader :action_url
22
+ attr_reader :status, :outputs
23
+
24
+ # コンストラクタ
25
+ def initialize(httpclient, action_url)
26
+ @httpclient = httpclient
27
+ @action_url = action_url
28
+ @status = STATUS_PREPARING
29
+ @actions = []
30
+ @action_id = 0;
31
+ end
32
+
33
+ def next_action_id
34
+ @action_id += 1
35
+ end
36
+
37
+ def add_action(hash)
38
+ action = Action.new(next_action_id, hash)
39
+ @actions << action
40
+ action
41
+ end
42
+
43
+ # アクション群を実行するために実際にHTTPリクエストを送信します。
44
+ def send_request(&callback)
45
+ res = @httpclient.post(action_url, {"inputs" => @actions.map(&:to_hash)}.to_json)
46
+ r = JSON.parse(res.body)
47
+ # puts res.body
48
+ @outputs = Outputs.new(r["outputs"])
49
+ callback.call(@outputs) if callback
50
+ end
51
+
52
+ # 条件に該当するデータを取得
53
+ # @param [String] name 対象となるコレクション名
54
+ # @param [Hash] conditions 検索条件
55
+ # @param [Array<Array<String, Integer>>] order フィールド名と(1 or -1)の組み合わせの配列
56
+ # @return [Array<Libgss::JsonObject>]該当したデータを表すJSONオブジェクトの配列
57
+ def find_all(name, conditions = nil, order = nil)
58
+ args = {action: "all", name: name}
59
+ args[:conditions] = conditions if conditions
60
+ args[:order] = order if order
61
+ add_action(args)
62
+ end
63
+
64
+ # ページネーション付きで条件に該当するデータを取得
65
+ # @param [String] name 対象となるコレクション名
66
+ # @param [String] page 取得するページ
67
+ # @param [String] per_page 1ページあたりの件数
68
+ # @param [Hash] conditions 検索条件
69
+ # @param [Array<Array<String, Integer>>] order フィールド名と(1 or -1)の組み合わせの配列
70
+ # @return [Array<Libgss::JsonObject>]該当したデータを表すJSONオブジェクトの配列
71
+ def paginate(name, page, per_page, conditions = nil, order = nil)
72
+ args = {action: "all", name: name, page: page, per_page: per_page}
73
+ args[:conditions] = conditions if conditions
74
+ args[:order] = order if order
75
+ add_action(args)
76
+ end
77
+
78
+ # 条件に該当するデータを取得
79
+ # @param [String] name 対象となるコレクション名
80
+ # @param [Hash] conditions 検索条件
81
+ # @return [Integer] 該当したデータの件数
82
+ def count(name, conditions = nil)
83
+ args = {action: "count", name: name}
84
+ args[:conditions] = conditions if conditions
85
+ add_action(args)
86
+ end
87
+
88
+ # 条件に該当するデータを1件だけ取得
89
+ # @param [String] name 対象となるコレクション名
90
+ # @param [Hash] conditions 検索条件
91
+ # @param [Array<Array<String, Integer>>] order フィールド名と(1 or -1)の組み合わせの配列
92
+ # @return [Libgss::JsonObject] 該当したデータを表すJSONオブジェクト
93
+ def find_first(name, conditions = nil, order = nil)
94
+ args = {action: "first", name: name}
95
+ args[:conditions] = conditions if conditions
96
+ args[:order] = order if order
97
+ add_action(args)
98
+ end
99
+
100
+ # 辞書テーブルからinputに対応するoutputの値を返します。
101
+ # @param [String] name 対象となる辞書のコレクション名
102
+ # @param [String] input 入力オブジェクトの文字列表現
103
+ # @param [Hash] conditions 検索条件
104
+ # @return [Object] outputの値を示すJSONオブジェクト
105
+ def get_by_dictionary(name, input, conditions = nil)
106
+ args = {action: "get", name: name, input: input}
107
+ args[:conditions] = conditions if conditions
108
+ add_action(args)
109
+ end
110
+
111
+ # 期間テーブルからinputに対応するoutputの値を返します。
112
+ # @param [String] name 対象となる機関テーブルのコレクション名
113
+ # @param [Integer] time 対象となるUNIX時刻
114
+ # @param [Hash] conditions 検索条件
115
+ # @return [Object] outputの値を示すJSONオブジェクト
116
+ def get_by_schedule(name, time = Time.now.to_i, conditions = nil)
117
+ args = {action: "get", name: name, time: time}
118
+ args[:conditions] = conditions if conditions
119
+ add_action(args)
120
+ end
121
+
122
+ # 整数範囲テーブルからinputに対応するoutputの値を返します。
123
+ # @param [String] name 対象となる整数範囲テーブルのコレクション名
124
+ # @param [Integer] input 対象となる入力値
125
+ # @param [Hash] conditions 検索条件
126
+ # @return [Object] outputの値を示すJSONオブジェクト
127
+ def get_by_int_range(name, input, conditions = nil)
128
+ args = {action: "get", name: name, input: input}
129
+ args[:conditions] = conditions if conditions
130
+ add_action(args)
131
+ end
132
+
133
+ # 確率テーブルからinputに対応するoutputの値を返します。
134
+ # diceがあるのであまり使われないはず。
135
+ #
136
+ # @param [String] name 対象となる確率テーブルのコレクション名
137
+ # @param [String] value 対象となるオブジェクトの文字列表現
138
+ # @param [Hash] conditions 検索条件
139
+ # @return [Object] valueの値を示すJSONオブジェクト
140
+ def get_by_probability(name, value, conditions = nil)
141
+ args = {action: "get", name: name, value: value}
142
+ args[:conditions] = conditions if conditions
143
+ add_action(args)
144
+ end
145
+
146
+ # プレイヤーからplayer_idに対応するプレイヤーを返します
147
+ #
148
+ # @param [String] name 対象となるコレクション名
149
+ # @param [String] player_id 対象となるplayer_id
150
+ # @param [Hash] conditions 検索条件
151
+ # @return [Object] プレイヤーを表すJSONオブジェクト
152
+ def get_by_player(name = "Player", player_id = nil)
153
+ args = {action: "get"}
154
+ args[:name] = name if name
155
+ args[:player_id] = player_id.to_s if player_id
156
+ add_action(args)
157
+ end
158
+
159
+ # ゲームデータからplayer_idに対応するゲームデータを返します
160
+ #
161
+ # @param [String] name 対象となるコレクション名
162
+ # @param [String] player_id 対象となるplayer_id
163
+ # @param [Hash] conditions 検索条件
164
+ # @return [Object] ゲームデータを表すJSONオブジェクト
165
+ def get_by_game_data(name = "GameData", player_id = nil)
166
+ args = {action: "get"}
167
+ args[:name] = name if name
168
+ args[:player_id] = player_id.to_s if player_id
169
+ add_action(args)
170
+ end
171
+
172
+
173
+
174
+
175
+ # ログあるいは履歴を登録します。
176
+ #
177
+ # @param [String] name 対象となるコレクション名
178
+ # @param [Hash] attrs 属性
179
+ # @return
180
+ def create(name, attrs)
181
+ args = {action: "create", name: name, attrs: attrs}
182
+ add_action(args)
183
+ end
184
+
185
+ # プレイヤー、ゲームデータを更新します。
186
+ # @param [String] name 対象となるコレクション名
187
+ # @param [Hash] player_id 対象を特定するためのID。
188
+ # @param [Hash] attrs 属性。対象を特定するためのplayer_idを含みません。
189
+ # @return
190
+ def update(name, attrs, player_id = nil)
191
+ args = {action: "update", name: name, attrs: attrs}
192
+ args[:player_id] = player_id.to_s if player_id
193
+ add_action(args)
194
+ end
195
+
196
+
197
+ # 確率テーブルに従って、発生させた乱数から得られた値
198
+ # @param [String] name 対象となるコレクション名
199
+ # @param [Hash] conditions 検索条件
200
+ # @return [Object] 確率テーブルの値
201
+ def dice(name, conditions = nil)
202
+ args = {action: "dice", name: name}
203
+ args[:conditions] = conditions if conditions
204
+ add_action(args)
205
+ end
206
+
207
+ # ストアドスクリプトを実行します。
208
+ # @param [String] name 対象となるコレクション名
209
+ # @param [Hash] key 対象となるスクリプトのキー
210
+ # @param [Hash] args スクリプトに渡す引数
211
+ # @return [Object] ストアドスクリプトの結果
212
+ def execute(name, key, args = nil)
213
+ action_args = {action: "execute", name: name, key: key}
214
+ action_args[:args] = args if args
215
+ add_action(action_args)
216
+ end
217
+
218
+
219
+
220
+ # サーバの現在時刻を返します。
221
+ # @return [Time] 現在時刻を表すUNIX時刻
222
+ def server_time()
223
+ add_action(action: "server_time")
224
+ end
225
+
226
+ # 引数timeに指定された時刻の運用日付を返します。
227
+ # 「運用日付」とは AppGarden の[ゲーム内日付変更時刻]で
228
+ # 設定された時刻を日付の開始時刻とした場合の日付(Ruby
229
+ # ストアドスクリプト内ではDateオブジェクト)を返します。
230
+ #
231
+ # @param [Time] time time に指定された時刻(省略時は現在時刻)の運用日付
232
+ # @return [Date] timeが属する運用日付
233
+ def server_date(time = nil)
234
+ args = {action: "server_date"}
235
+ args[:time] = time if time
236
+ add_action(args)
237
+ end
238
+
239
+
240
+
241
+ # # フレンドシップを更新します。
242
+ # # @param [String] name 対象となるコレクション名
243
+ # # @param [Hash] attrs 属性。対象を特定するためのIDを含みます。
244
+ # # @return
245
+ # def update_friendship(name, attrs)
246
+ # end
247
+
248
+ # # フレンドシップを削除します。
249
+ # # @param [String] name 対象となるコレクション名
250
+ # # @param [Hash] target 対象となるフレンドのID
251
+ # # @return
252
+ # def delete_friendship(name, target)
253
+ # end
254
+
255
+ # フレンドシップを申請をします。
256
+ # @param [String] name 対象となるコレクション名
257
+ # @param [Hash] target 対象となるフレンドのID
258
+ # @return
259
+ def apply(name, target)
260
+ args = {action: "apply", name: name, target: target}
261
+ add_action(args)
262
+ end
263
+
264
+ # フレンドシップの申請を承認します。
265
+ # @param [String] name 対象となるコレクション名
266
+ # @param [Hash] target 対象となるフレンドのID
267
+ # @return
268
+ def approve(name, target)
269
+ args = {action: "approve", name: name, target: target}
270
+ add_action(args)
271
+ end
272
+
273
+ # フレンドシップの申請のキャンセル、申請却下、フレンド解除をします。
274
+ # @param [String] name 対象となるコレクション名
275
+ # @param [Hash] target 対象となるフレンドのID
276
+ # @return
277
+ def breakoff(name, target)
278
+ args = {action: "breakoff", name: name, target: target}
279
+ add_action(args)
280
+ end
281
+
282
+ # フレンドをブロック(ブラックリスト追加)します。
283
+ # @param [String] name 対象となるコレクション名
284
+ # @param [Hash] target 対象となるフレンドのID
285
+ # @return
286
+ def block(name, target)
287
+ args = {action: "block", name: name, target: target}
288
+ add_action(args)
289
+ end
290
+
291
+ # フレンドをブロックの解除(ブラックリストから除外)します。
292
+ # @param [String] name 対象となるコレクション名
293
+ # @param [Hash] target 対象となるフレンドのID
294
+ # @return
295
+ def unblock(name, target)
296
+ args = {action: "unblock", name: name, target: target}
297
+ add_action(args)
298
+ end
299
+
300
+ end
301
+
302
+ end
@@ -0,0 +1,29 @@
1
+ # -*- coding: utf-8 -*-
2
+ module Libgss
3
+ class AssetRequest
4
+
5
+ STATUS_PREPARING = 0
6
+ STATUS_SENDING = 1
7
+ STATUS_WAITING = 2
8
+ STATUS_RECEIVED = 3
9
+ STATUS_SUCCESS = 4
10
+ STATUS_ERROR = 5
11
+ STATUS_TIMEOUT = 6
12
+
13
+ attr_reader :url, :status, :response_data
14
+
15
+ # コンストラクタ
16
+ def initialize(httpclient, url)
17
+ @httpclient = httpclient
18
+ @url = url
19
+ @response_data = nil
20
+ @status = STATUS_PREPARING
21
+ end
22
+
23
+ def send_request(&callback)
24
+ res = @httpclient.get(url)
25
+ @response_data = res.body
26
+ callback.call(@response_data) if callback
27
+ end
28
+ end
29
+ end
@@ -0,0 +1,105 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'libgss'
3
+
4
+ require 'httpclient'
5
+ require 'json'
6
+ require 'uri'
7
+
8
+ module Libgss
9
+
10
+ class Network
11
+
12
+ API_VERSION = "1.0.0".freeze
13
+
14
+ attr_reader :base_url
15
+ attr_reader :ssl_base_url
16
+ attr_reader :ssl_disabled
17
+
18
+ attr_reader :auth_token, :signature_key
19
+
20
+ attr_accessor :api_version
21
+ attr_accessor :platform
22
+ attr_accessor :player_id
23
+ attr_accessor :public_asset_url_prefix
24
+ attr_accessor :public_asset_url_suffix
25
+
26
+
27
+ DEFAULT_HTTP_PORT = (ENV['DEFAULT_HTTP_PORT'] || 80).to_i
28
+ DEFAULT_HTTPS_PORT = (ENV['DEFAULT_HTTPS_PORT'] || 443).to_i
29
+
30
+ def initialize(base_url_or_host, options = {})
31
+ @ssl_disabled = options.delete(:ssl_disabled)
32
+ if base_url_or_host =~ URI.regexp
33
+ @base_url = base_url_or_host
34
+ uri = URI.parse(@base_url)
35
+ @ssl_base_url = build_https_url(uri)
36
+ else
37
+ uri = URI::Generic.build({scheme: "http", host: base_url_or_host, port: DEFAULT_HTTP_PORT}.update(options))
38
+ @base_url = uri.to_s
39
+ @ssl_base_url = build_https_url(uri)
40
+ end
41
+ @ssl_base_url = @base_url if @ssl_disabled
42
+ @platform = "fontana"
43
+ @httpclient = HTTPClient.new
44
+ @httpclient.ssl_config.verify_mode = nil # 自己署名の証明書をOKにする
45
+ end
46
+
47
+ def login
48
+ raise "player_id is not set." if player_id.nil? || player_id.empty?
49
+ res = @httpclient.post(login_url, "player[id]" => player_id)
50
+ case res.status
51
+ when 200...300 then # OK
52
+ when 300...400 then return false # リダイレクト対応はしません
53
+ when 400...500 then return false
54
+ when 500...600 then return false
55
+ else raise "invalid http status: #{res.status}"
56
+ end
57
+ begin
58
+ obj = JSON.parse(res.content)
59
+ rescue JSON::ParserError => e
60
+ return false
61
+ end
62
+ @auth_token = obj["auth_token"]
63
+ @signature_key = obj["signature_key"]
64
+ true
65
+ end
66
+
67
+ def new_action_request
68
+ ActionRequest.new(@httpclient, action_url)
69
+ end
70
+
71
+ def new_public_asset_request(asset_path)
72
+ AssetRequest.new(@httpclient, public_asset_url(asset_path))
73
+ end
74
+
75
+ def new_protected_asset_request(asset_path)
76
+ AssetRequest.new(@httpclient, protected_asset_url(asset_path))
77
+ end
78
+
79
+ private
80
+
81
+ def build_https_url(uri)
82
+ uri.scheme = "https"
83
+ uri.port = DEFAULT_HTTPS_PORT
84
+ uri.to_s
85
+ end
86
+
87
+ def login_url
88
+ @login_url ||= ssl_base_url + "/platforms/#{platform}/sign_in.json"
89
+ end
90
+
91
+ def action_url
92
+ @action_url ||= base_url + "/api/#{API_VERSION}/actions.json?auth_token=#{auth_token}"
93
+ end
94
+
95
+ def public_asset_url(asset_path)
96
+ "#{@public_asset_url_prefix}#{asset_path}#{@public_asset_url_suffix}"
97
+ end
98
+
99
+ def protected_asset_url(asset_path)
100
+ path = URI.encode(asset_path) # パラメータとして渡されるのでURLエンコードする必要がある
101
+ @action_url ||= base_url + "/api/#{API_VERSION}/assets?path=#{path}&auth_token=#{auth_token}"
102
+ end
103
+ end
104
+
105
+ end
@@ -0,0 +1,23 @@
1
+ # -*- coding: utf-8 -*-
2
+ require 'libgss'
3
+
4
+ require 'forwardable'
5
+
6
+ module Libgss
7
+
8
+ class Outputs
9
+ extend Forwardable
10
+
11
+ def initialize(array)
12
+ @array = array
13
+ end
14
+
15
+ # メソッドを@arrayに移譲する
16
+ def_delegators :@array, :[], :length, :first, :last
17
+
18
+ def get(id)
19
+ @array.detect{|output| output["id"] == id}
20
+ end
21
+
22
+ end
23
+ end
@@ -0,0 +1,3 @@
1
+ module Libgss
2
+ VERSION = "0.0.1"
3
+ end
data/lib/libgss.rb ADDED
@@ -0,0 +1,11 @@
1
+ require "libgss/version"
2
+
3
+ module Libgss
4
+
5
+ autoload :Network , "libgss/network"
6
+ autoload :Action , "libgss/action"
7
+ autoload :ActionRequest, "libgss/action_request"
8
+ autoload :Outputs , "libgss/outputs"
9
+
10
+ autoload :AssetRequest , "libgss/asset_request"
11
+ end
data/libgss.gemspec ADDED
@@ -0,0 +1,27 @@
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require 'libgss/version'
5
+
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "libgss"
8
+ spec.version = Libgss::VERSION
9
+ spec.authors = ["akima"]
10
+ spec.email = ["t-akima@groovenauts.jp"]
11
+ spec.description = %q{network library for Groovenauts GSS}
12
+ spec.summary = %q{network library for Groovenauts GSS}
13
+ spec.homepage = "http://www.groovenauts.jp/service/#gss"
14
+ spec.license = "MIT"
15
+
16
+ spec.files = `git ls-files`.split($/)
17
+ spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
18
+ spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
19
+ spec.require_paths = ["lib"]
20
+
21
+ spec.add_development_dependency "bundler", "~> 1.3"
22
+ spec.add_development_dependency "rake"
23
+ spec.add_development_dependency "rspec"
24
+
25
+ spec.add_runtime_dependency "httpclient"
26
+ spec.add_runtime_dependency "json"
27
+ end