admiral_stats_parser 0.1.3 → 0.1.4
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 +4 -4
- data/README.md +23 -10
- data/lib/admiral_stats_parser.rb +26 -8
- data/lib/admiral_stats_parser/model/event_info.rb +174 -0
- data/lib/admiral_stats_parser/parser/character_list_info_parser.rb +2 -2
- data/lib/admiral_stats_parser/parser/event_info_parser.rb +123 -0
- data/lib/admiral_stats_parser/version.rb +1 -1
- metadata +16 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1252d0f0a0892001344347cf23dcde7b91c31026
|
4
|
+
data.tar.gz: c52f091e0cedcafdb7d7b09dede68d5c62f7dcf5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e1f668fedae8dc76698784d09cc14200aa1495b45c0c0b8441c15a299071c28c340e22147b139959b101d1eadfe7c4eb4de056470524f69861283f33a6467841
|
7
|
+
data.tar.gz: bf5a5db1862efee5fe6b9b7365fe20f6cf738c2c83119e00df7f1edbd9411c2aada3670c45c7241ea15a39da43ee1a43f4d0bb3abb58e2143bc8f50721741dd5
|
data/README.md
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
# admiral_stats_parser
|
2
2
|
|
3
|
+
[](https://gitter.im/muziyoshiz/admiral_stats?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
4
|
+
|
3
5
|
Parser for admiral stats JSON data exported from kancolle-arcade.net
|
4
6
|
|
5
7
|
## Installation
|
@@ -38,6 +40,9 @@ AdmiralStatsParser.parse_character_list_info(json, api_version)
|
|
38
40
|
|
39
41
|
# 装備一覧
|
40
42
|
AdmiralStatsParser.parse_equip_list_info(json, api_version)
|
43
|
+
|
44
|
+
# イベント海域情報
|
45
|
+
AdmiralStatsParser.parse_event_info(json, api_version)
|
41
46
|
```
|
42
47
|
|
43
48
|
## Specification
|
@@ -50,19 +55,27 @@ AdmiralStatsParser は、以下の API version をサポートしています。
|
|
50
55
|
|------------:|:-----|
|
51
56
|
| 1 | 2016-04-26 〜 2016-06-29 |
|
52
57
|
| 2 | 2016-06-30(REVISION 2 のリリース日)〜 2016-09-14 |
|
53
|
-
| 3 | 2016-09-15 〜 |
|
58
|
+
| 3 | 2016-09-15 〜 2016-10-26 |
|
59
|
+
| 4 | 2016-10-27 〜 |
|
54
60
|
|
55
61
|
各 API version でパースできる JSON の種類は以下の通りです。また、同じ情報でも、API version によって、含まれる情報量が異なる場合があります。その場合は Supported (1), Supported (2) のように記載して区別しています。
|
56
62
|
|
57
|
-
| 提督情報での表示 | URL | API version 1 | API version 2 |
|
58
|
-
|
59
|
-
| 基本情報 | Personal/basicInfo | Supported (1) | Supported (2) |
|
60
|
-
| 海域情報 | Area/captureInfo | Supported (1) | Supported (2) |
|
61
|
-
| 艦娘図鑑 | TcBook/info | Supported (1) | Supported (2) |
|
62
|
-
| 装備図鑑 | EquipBook/info | Supported | Supported |
|
63
|
-
|
64
|
-
|
|
65
|
-
|
63
|
+
| 提督情報での表示 | URL | API version 1 | API version 2〜4 |
|
64
|
+
|:----------------|:----|:--------------|:--------------|
|
65
|
+
| 基本情報 | Personal/basicInfo | Supported (1) | Supported (2) |
|
66
|
+
| 海域情報 | Area/captureInfo | Supported (1) | Supported (2) |
|
67
|
+
| 艦娘図鑑 | TcBook/info | Supported (1) | Supported (2) |
|
68
|
+
| 装備図鑑 | EquipBook/info | Supported | Supported |
|
69
|
+
|
70
|
+
| 提督情報での表示 | URL | API version 2 | API version 3〜4 |
|
71
|
+
|:----------------|:----|:--------------|:-------------|
|
72
|
+
| 艦娘一覧 | CharacterList/info | Supported (1) | Supported (2) |
|
73
|
+
| 装備一覧 | EquipList/info | Supported | Supported |
|
74
|
+
| 任務一覧 | Quest/info | Unsupported | Unsupported |
|
75
|
+
|
76
|
+
| 提督情報での表示 | URL | API version 4 |
|
77
|
+
|:----------------|:----|:--------------|
|
78
|
+
| イベント海域情報 | Event/info | Supported (1) |
|
66
79
|
|
67
80
|
## Development
|
68
81
|
|
data/lib/admiral_stats_parser.rb
CHANGED
@@ -6,11 +6,12 @@ require 'admiral_stats_parser/parser/tc_book_info_parser'
|
|
6
6
|
require 'admiral_stats_parser/parser/equip_book_info_parser'
|
7
7
|
require 'admiral_stats_parser/parser/character_list_info_parser'
|
8
8
|
require 'admiral_stats_parser/parser/equip_list_info_parser'
|
9
|
+
require 'admiral_stats_parser/parser/event_info_parser'
|
9
10
|
|
10
11
|
module AdmiralStatsParser
|
11
12
|
# 最新の API バージョンを返します。
|
12
13
|
def self.get_latest_api_version
|
13
|
-
return
|
14
|
+
return 4
|
14
15
|
end
|
15
16
|
|
16
17
|
# エクスポート時刻を元に、API バージョンを推測して返します。
|
@@ -21,6 +22,9 @@ module AdmiralStatsParser
|
|
21
22
|
# version 3 の開始日
|
22
23
|
return 2 if exported_at < Time.parse('2016-09-15T07:00:00+0900')
|
23
24
|
|
25
|
+
# version 4 の開始日
|
26
|
+
return 3 if exported_at < Time.parse('2016-10-27T07:00:00+0900')
|
27
|
+
|
24
28
|
return self.get_latest_api_version
|
25
29
|
end
|
26
30
|
|
@@ -29,7 +33,7 @@ module AdmiralStatsParser
|
|
29
33
|
case api_version
|
30
34
|
when 1
|
31
35
|
PersonalBasicInfoParser.parse(json, 1)
|
32
|
-
when 2
|
36
|
+
when 2..4
|
33
37
|
PersonalBasicInfoParser.parse(json, 2)
|
34
38
|
else
|
35
39
|
raise 'unsupported API version'
|
@@ -41,7 +45,7 @@ module AdmiralStatsParser
|
|
41
45
|
case api_version
|
42
46
|
when 1
|
43
47
|
AreaCaptureInfoParser.parse(json, 1)
|
44
|
-
when 2
|
48
|
+
when 2..4
|
45
49
|
AreaCaptureInfoParser.parse(json, 2)
|
46
50
|
else
|
47
51
|
raise 'unsupported API version'
|
@@ -53,7 +57,7 @@ module AdmiralStatsParser
|
|
53
57
|
case api_version
|
54
58
|
when 1
|
55
59
|
TcBookInfoParser.parse(json, 1)
|
56
|
-
when 2
|
60
|
+
when 2..4
|
57
61
|
TcBookInfoParser.parse(json, 2)
|
58
62
|
else
|
59
63
|
raise 'unsupported API version'
|
@@ -63,7 +67,7 @@ module AdmiralStatsParser
|
|
63
67
|
# 装備図鑑をパースします。
|
64
68
|
def self.parse_equip_book_info(json, api_version)
|
65
69
|
case api_version
|
66
|
-
when 1
|
70
|
+
when 1..4
|
67
71
|
EquipBookInfoParser.parse(json)
|
68
72
|
else
|
69
73
|
raise 'unsupported API version'
|
@@ -75,8 +79,10 @@ module AdmiralStatsParser
|
|
75
79
|
case api_version
|
76
80
|
when 1
|
77
81
|
raise 'API version 1 does not support character list info'
|
78
|
-
when 2
|
79
|
-
CharacterListInfoParser.parse(json,
|
82
|
+
when 2
|
83
|
+
CharacterListInfoParser.parse(json, 1)
|
84
|
+
when 3..4
|
85
|
+
CharacterListInfoParser.parse(json, 2)
|
80
86
|
else
|
81
87
|
raise 'unsupported API version'
|
82
88
|
end
|
@@ -87,10 +93,22 @@ module AdmiralStatsParser
|
|
87
93
|
case api_version
|
88
94
|
when 1
|
89
95
|
raise 'API version 1 does not support equip list info'
|
90
|
-
when 2
|
96
|
+
when 2..4
|
91
97
|
EquipListInfoParser.parse(json)
|
92
98
|
else
|
93
99
|
raise 'unsupported API version'
|
94
100
|
end
|
95
101
|
end
|
102
|
+
|
103
|
+
# イベント海域情報をパースします。
|
104
|
+
def self.parse_event_info(json, api_version)
|
105
|
+
case api_version
|
106
|
+
when 1..3
|
107
|
+
raise "API version #{api_version} does not support event info"
|
108
|
+
when 4
|
109
|
+
EventInfoParser.parse(json, 1)
|
110
|
+
else
|
111
|
+
raise 'unsupported API version'
|
112
|
+
end
|
113
|
+
end
|
96
114
|
end
|
@@ -0,0 +1,174 @@
|
|
1
|
+
# 限定海域情報
|
2
|
+
class EventInfo
|
3
|
+
# イベント回数
|
4
|
+
EVENT_NUMBERS = {
|
5
|
+
1000 => 1,
|
6
|
+
}
|
7
|
+
|
8
|
+
# 海域番号と海域名の対応関係
|
9
|
+
EVENT_AREA_NAMES = {
|
10
|
+
1000 => '敵艦隊前線泊地殴り込み',
|
11
|
+
}
|
12
|
+
|
13
|
+
# サブ海域番号と海域名の対応関係
|
14
|
+
EVENT_AREA_SUB_NAMES = {
|
15
|
+
1000 => {
|
16
|
+
1 => '前哨戦',
|
17
|
+
2 => '警戒線突破',
|
18
|
+
3 => '湾内突入!',
|
19
|
+
4 => '敵泊地強襲!',
|
20
|
+
5 => '掃討戦',
|
21
|
+
6 => '前哨戦',
|
22
|
+
7 => '警戒線突破',
|
23
|
+
8 => '湾内突入!',
|
24
|
+
9 => '敵泊地強襲!',
|
25
|
+
10 => '掃討戦',
|
26
|
+
},
|
27
|
+
}
|
28
|
+
|
29
|
+
# 海域番号
|
30
|
+
# 期間限定海域「敵艦隊前線泊地殴り込み」では、共通して 1000
|
31
|
+
attr_accessor :area_id
|
32
|
+
|
33
|
+
# サブ海域番号
|
34
|
+
# 期間限定海域「敵艦隊前線泊地殴り込み」では、1 〜 10
|
35
|
+
attr_accessor :area_sub_id
|
36
|
+
|
37
|
+
# 難易度
|
38
|
+
# "HEI": 丙
|
39
|
+
# "OTU": 乙
|
40
|
+
attr_accessor :level
|
41
|
+
|
42
|
+
# 海域の種類
|
43
|
+
# ボス戦は "BOSS"
|
44
|
+
# 掃討戦は "SWEEP"
|
45
|
+
# それ以外は "NORMAL"
|
46
|
+
attr_accessor :area_kind
|
47
|
+
|
48
|
+
# 作戦時間(秒)
|
49
|
+
# 未表示の場合は 0
|
50
|
+
attr_accessor :limit_sec
|
51
|
+
|
52
|
+
# 必要GP
|
53
|
+
# 未表示の場合は 0
|
54
|
+
attr_accessor :require_gp
|
55
|
+
|
56
|
+
# 出撃条件の有無(true ならある)
|
57
|
+
attr_accessor :sortie_limit
|
58
|
+
|
59
|
+
# 海域画像のファイル名
|
60
|
+
attr_accessor :stage_image_name
|
61
|
+
|
62
|
+
# 作戦名
|
63
|
+
# 未表示の場合は "?"
|
64
|
+
attr_accessor :stage_mission_name
|
65
|
+
|
66
|
+
# 作戦内容
|
67
|
+
# 未表示の場合は "?"
|
68
|
+
attr_accessor :stage_mission_info
|
69
|
+
|
70
|
+
# 海域撃破ボーナス(EventInfoReward)のリスト
|
71
|
+
attr_accessor :reward_list
|
72
|
+
|
73
|
+
# 主な出現アイテム
|
74
|
+
# アイテムを表す文字列の配列(要素数は4固定)
|
75
|
+
attr_accessor :stage_drop_item_info
|
76
|
+
|
77
|
+
# クリア状態を表す文字列
|
78
|
+
# CLEAR: クリア済み
|
79
|
+
# NOTCLEAR: 出撃可能だが未クリア
|
80
|
+
# NOOPEN: 出撃不可
|
81
|
+
attr_accessor :area_clear_state
|
82
|
+
|
83
|
+
# 海域ゲージの状態
|
84
|
+
# "NORMAL": 攻略中
|
85
|
+
# "BREAK": 攻略後
|
86
|
+
attr_accessor :military_gauge_status
|
87
|
+
|
88
|
+
# 海域ゲージの最大値
|
89
|
+
# E-1 攻略開始前は 1000、攻略後も 1000
|
90
|
+
attr_accessor :ene_military_gauge_val
|
91
|
+
|
92
|
+
# 海域ゲージの現在値
|
93
|
+
# E-1 攻略開始前は 1000、攻略後は 0
|
94
|
+
attr_accessor :military_gauge_left
|
95
|
+
|
96
|
+
# ボスのランク
|
97
|
+
# 泊地棲鬼は "ONI"
|
98
|
+
# ゲージ半減して泊地棲姫になると "HIME"
|
99
|
+
# それ以外は "NONE"
|
100
|
+
attr_accessor :boss_status
|
101
|
+
|
102
|
+
# 周回数
|
103
|
+
# E-1 攻略開始前は 1、攻略後も 1
|
104
|
+
attr_accessor :loop_count
|
105
|
+
|
106
|
+
# イベント回数を返します。
|
107
|
+
# 第壱回期間限定海域「敵艦隊前線泊地殴り込み」は 1
|
108
|
+
def event_no
|
109
|
+
EVENT_NUMBERS[@area_id]
|
110
|
+
end
|
111
|
+
|
112
|
+
# 海域を表す数値を、海域名に変換して返します。
|
113
|
+
def area_id_to_s
|
114
|
+
EVENT_AREA_NAMES.include?(@area_id) ? EVENT_AREA_NAMES[@area_id] : @area_id.to_s
|
115
|
+
end
|
116
|
+
|
117
|
+
# サブ海域を表す数値を、海域名に変換して返します。
|
118
|
+
def area_sub_id_to_s
|
119
|
+
return "#{@area_id}-#{@area_sub_id}" unless EVENT_AREA_SUB_NAMES.include?(@area_id)
|
120
|
+
|
121
|
+
if EVENT_AREA_SUB_NAMES[@area_id].include?(@area_sub_id)
|
122
|
+
EVENT_AREA_SUB_NAMES[@area_id][@area_sub_id]
|
123
|
+
else
|
124
|
+
"#{@area_id}-#{@area_sub_id}"
|
125
|
+
end
|
126
|
+
end
|
127
|
+
|
128
|
+
# 与えられたリストから、現在の周回数を返します。
|
129
|
+
def self.current_loop_counts(event_info_list, level)
|
130
|
+
# 指定されたレベルの情報のみ取り出し
|
131
|
+
list = event_info_list.select{|info| info.level == level }
|
132
|
+
|
133
|
+
# 現在の周回数
|
134
|
+
list.map{|i| i.loop_count }.max
|
135
|
+
end
|
136
|
+
|
137
|
+
# 与えられたリストから、クリア済みの周回数を返します。
|
138
|
+
def self.cleared_loop_counts(event_info_list, level)
|
139
|
+
# 指定されたレベルの情報のみ取り出し
|
140
|
+
list = event_info_list.select{|info| info.level == level }
|
141
|
+
|
142
|
+
# その周回をクリア済みかどうか
|
143
|
+
cleared = (list.size == list.select{|i| i.area_clear_state == 'CLEAR' }.size)
|
144
|
+
|
145
|
+
# 現在の周回数
|
146
|
+
loop_count = EventInfo.current_loop_counts(event_info_list, level)
|
147
|
+
|
148
|
+
cleared ? loop_count : loop_count - 1
|
149
|
+
end
|
150
|
+
|
151
|
+
# 海域撃破ボーナス
|
152
|
+
class EventInfoReward
|
153
|
+
# 初回攻略時か2回目以降かを表すフラグ
|
154
|
+
# "FIRST": 初回
|
155
|
+
# "SECOND": 2回目以降
|
156
|
+
# 未公開状態の場合は、項目なし
|
157
|
+
attr_accessor :reward_type
|
158
|
+
|
159
|
+
# 表示順(0 〜)
|
160
|
+
attr_accessor :data_id
|
161
|
+
|
162
|
+
# ボーナスの種類
|
163
|
+
# "NONE": 未公開状態
|
164
|
+
# "RESULT_POINT": 戦果
|
165
|
+
# "STRATEGY_POINT": 戦略ポイント
|
166
|
+
# "ROOM_ITEM_ICON": 家具コイン
|
167
|
+
# "ROOM_ITEM_MEISTER": 特注家具職人
|
168
|
+
# "EQUIP": 装備
|
169
|
+
attr_accessor :kind
|
170
|
+
|
171
|
+
# 数値(戦果の場合はポイント数、家具コインの場合はコイン枚数)
|
172
|
+
attr_accessor :value
|
173
|
+
end
|
174
|
+
end
|
@@ -3,7 +3,7 @@ require 'admiral_stats_parser/model/character_list_info'
|
|
3
3
|
|
4
4
|
class CharacterListInfoParser
|
5
5
|
MANDATORY_KEYS = {
|
6
|
-
|
6
|
+
1 => {
|
7
7
|
:book_no => Integer,
|
8
8
|
:lv => Integer,
|
9
9
|
:ship_type => String,
|
@@ -12,7 +12,7 @@ class CharacterListInfoParser
|
|
12
12
|
:ship_name => String,
|
13
13
|
:status_img => String,
|
14
14
|
},
|
15
|
-
|
15
|
+
2 => {
|
16
16
|
:book_no => Integer,
|
17
17
|
:lv => Integer,
|
18
18
|
:ship_type => String,
|
@@ -0,0 +1,123 @@
|
|
1
|
+
require 'json'
|
2
|
+
require 'admiral_stats_parser/model/event_info'
|
3
|
+
|
4
|
+
class EventInfoParser
|
5
|
+
MANDATORY_KEYS = {
|
6
|
+
1 => {
|
7
|
+
:area_id => Integer,
|
8
|
+
:area_sub_id => Integer,
|
9
|
+
:level => String,
|
10
|
+
:area_kind => String,
|
11
|
+
:limit_sec => Integer,
|
12
|
+
:require_gp => Integer,
|
13
|
+
:sortie_limit => :boolean,
|
14
|
+
:stage_image_name => String,
|
15
|
+
:stage_mission_name => String,
|
16
|
+
:stage_mission_info => String,
|
17
|
+
:reward_list => :reward_list,
|
18
|
+
:stage_drop_item_info => Array,
|
19
|
+
:area_clear_state => String,
|
20
|
+
:military_gauge_status => String,
|
21
|
+
:ene_military_gauge_val => Integer,
|
22
|
+
:military_gauge_left => Integer,
|
23
|
+
:boss_status => String,
|
24
|
+
:loop_count => Integer,
|
25
|
+
}
|
26
|
+
}
|
27
|
+
|
28
|
+
REWARD_LIST_MANDATORY_KEYS = {
|
29
|
+
:data_id => Integer,
|
30
|
+
:kind => String,
|
31
|
+
:value => Integer,
|
32
|
+
}
|
33
|
+
|
34
|
+
REWARD_LIST_OPTIONAL_KEYS = {
|
35
|
+
:reward_type => String,
|
36
|
+
}
|
37
|
+
|
38
|
+
def self.parse(json, api_version)
|
39
|
+
items_array = JSON.parse(json)
|
40
|
+
|
41
|
+
unless items_array.is_a?(Array)
|
42
|
+
raise 'json is not an Array'
|
43
|
+
end
|
44
|
+
|
45
|
+
results = []
|
46
|
+
items_array.each do |items|
|
47
|
+
result = EventInfo.new
|
48
|
+
|
49
|
+
MANDATORY_KEYS[api_version].each do |key, key_class|
|
50
|
+
# 必須のキーが含まれなければエラー
|
51
|
+
camel_case_key = key.to_s.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
|
52
|
+
unless items.include?(camel_case_key)
|
53
|
+
raise "Mandatory key #{key} does not exist"
|
54
|
+
end
|
55
|
+
|
56
|
+
# 結果のクラスが合わなければエラー
|
57
|
+
# 海域撃破ボーナスを格納するために、特別な処理を追加
|
58
|
+
if key_class == :reward_list
|
59
|
+
result.instance_variable_set(
|
60
|
+
"@#{key.to_s}", EventInfoParser.parse_reward_list(items[camel_case_key]))
|
61
|
+
next
|
62
|
+
end
|
63
|
+
|
64
|
+
# ruby には Boolean クラスがないので、そこだけ特別な処理を用意する
|
65
|
+
if key_class == :boolean
|
66
|
+
unless [true, false].include?(items[camel_case_key])
|
67
|
+
raise "Mandatory key #{key} is not boolean"
|
68
|
+
end
|
69
|
+
else
|
70
|
+
unless items[camel_case_key].is_a?(key_class)
|
71
|
+
raise "Mandatory key #{key} is not class #{key_class}"
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
result.instance_variable_set("@#{key.to_s}", items[camel_case_key])
|
76
|
+
end
|
77
|
+
|
78
|
+
results << result
|
79
|
+
end
|
80
|
+
|
81
|
+
results
|
82
|
+
end
|
83
|
+
|
84
|
+
def self.parse_reward_list(rewards)
|
85
|
+
results = []
|
86
|
+
|
87
|
+
rewards.each do |reward|
|
88
|
+
result = EventInfo::EventInfoReward.new
|
89
|
+
|
90
|
+
REWARD_LIST_MANDATORY_KEYS.each do |key, key_class|
|
91
|
+
# 必須のキーが含まれなければエラー
|
92
|
+
camel_case_key = key.to_s.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
|
93
|
+
unless reward.include?(camel_case_key)
|
94
|
+
raise "Mandatory key #{key} does not exist"
|
95
|
+
end
|
96
|
+
|
97
|
+
# 結果のクラスが合わなければエラー
|
98
|
+
unless reward[camel_case_key].is_a?(key_class)
|
99
|
+
raise "Mandatory key #{key} is not class #{key_class}"
|
100
|
+
end
|
101
|
+
|
102
|
+
result.instance_variable_set("@#{key.to_s}", reward[camel_case_key])
|
103
|
+
end
|
104
|
+
|
105
|
+
REWARD_LIST_OPTIONAL_KEYS.each do |key, key_class|
|
106
|
+
# キーが含まれなければ、処理をスキップ
|
107
|
+
camel_case_key = key.to_s.split('_').inject([]){ |buffer,e| buffer.push(buffer.empty? ? e : e.capitalize) }.join
|
108
|
+
next unless reward.include?(camel_case_key)
|
109
|
+
|
110
|
+
# 結果のクラスが合わなければエラー
|
111
|
+
unless reward[camel_case_key].is_a?(key_class)
|
112
|
+
raise "Optional key #{key} is not class #{key_class}"
|
113
|
+
end
|
114
|
+
|
115
|
+
result.instance_variable_set("@#{key.to_s}", reward[camel_case_key])
|
116
|
+
end
|
117
|
+
|
118
|
+
results << result
|
119
|
+
end
|
120
|
+
|
121
|
+
results
|
122
|
+
end
|
123
|
+
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: admiral_stats_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masahiro Yoshizawa
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-
|
11
|
+
date: 2016-10-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '1.12'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '1.12'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '10.0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '10.0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rspec
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '3.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '3.0'
|
55
55
|
description: Parser for admiral stats JSON data exported from kancolle-arcade.net
|
@@ -59,9 +59,9 @@ executables: []
|
|
59
59
|
extensions: []
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
|
-
- .gitignore
|
63
|
-
- .rspec
|
64
|
-
- .travis.yml
|
62
|
+
- ".gitignore"
|
63
|
+
- ".rspec"
|
64
|
+
- ".travis.yml"
|
65
65
|
- CODE_OF_CONDUCT.md
|
66
66
|
- Gemfile
|
67
67
|
- LICENSE.txt
|
@@ -75,12 +75,14 @@ files:
|
|
75
75
|
- lib/admiral_stats_parser/model/character_list_info.rb
|
76
76
|
- lib/admiral_stats_parser/model/equip_book_info.rb
|
77
77
|
- lib/admiral_stats_parser/model/equip_list_info.rb
|
78
|
+
- lib/admiral_stats_parser/model/event_info.rb
|
78
79
|
- lib/admiral_stats_parser/model/personal_basic_info.rb
|
79
80
|
- lib/admiral_stats_parser/model/tc_book_info.rb
|
80
81
|
- lib/admiral_stats_parser/parser/area_capture_info_parser.rb
|
81
82
|
- lib/admiral_stats_parser/parser/character_list_info_parser.rb
|
82
83
|
- lib/admiral_stats_parser/parser/equip_book_info_parser.rb
|
83
84
|
- lib/admiral_stats_parser/parser/equip_list_info_parser.rb
|
85
|
+
- lib/admiral_stats_parser/parser/event_info_parser.rb
|
84
86
|
- lib/admiral_stats_parser/parser/personal_basic_info_parser.rb
|
85
87
|
- lib/admiral_stats_parser/parser/tc_book_info_parser.rb
|
86
88
|
- lib/admiral_stats_parser/version.rb
|
@@ -94,17 +96,17 @@ require_paths:
|
|
94
96
|
- lib
|
95
97
|
required_ruby_version: !ruby/object:Gem::Requirement
|
96
98
|
requirements:
|
97
|
-
- -
|
99
|
+
- - ">="
|
98
100
|
- !ruby/object:Gem::Version
|
99
101
|
version: '0'
|
100
102
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
101
103
|
requirements:
|
102
|
-
- -
|
104
|
+
- - ">="
|
103
105
|
- !ruby/object:Gem::Version
|
104
106
|
version: '0'
|
105
107
|
requirements: []
|
106
108
|
rubyforge_project:
|
107
|
-
rubygems_version: 2.
|
109
|
+
rubygems_version: 2.5.1
|
108
110
|
signing_key:
|
109
111
|
specification_version: 4
|
110
112
|
summary: JSON data parser for kancolle-arcade.net
|