admiral_stats_parser 0.1.3 → 0.1.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 796696607ab5a39710315dc1ed6600d0c369c288
4
- data.tar.gz: 9c4a7460c5b6d327fc7e40df0336d26c474d9e41
3
+ metadata.gz: 1252d0f0a0892001344347cf23dcde7b91c31026
4
+ data.tar.gz: c52f091e0cedcafdb7d7b09dede68d5c62f7dcf5
5
5
  SHA512:
6
- metadata.gz: c5c2a4c39242db212e3f008c5e3ac265127452d88d197fdd1644180d2da1aa00cb34d90060553720813769bd570e08eee3c6e7e9b0555237c8aa81b330fa19ba
7
- data.tar.gz: a41747e0b954ccff156a99deb229c49a8db1c058d3e70a6b70a381fbf05b815ebd826dc1eb21e1a85834f364a0cc5f79257701b82cbf249528b71fd38c261fa0
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
+ [![Join the chat at https://gitter.im/muziyoshiz/admiral_stats](https://badges.gitter.im/muziyoshiz/admiral_stats.svg)](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 | API version 3 |
58
- |:----------------|:----|:--------------|:--------------|:-------------|
59
- | 基本情報 | Personal/basicInfo | Supported (1) | Supported (2) | Supported (2) |
60
- | 海域情報 | Area/captureInfo | Supported (1) | Supported (2) | Supported (2) |
61
- | 艦娘図鑑 | TcBook/info | Supported (1) | Supported (2) | Supported (2) |
62
- | 装備図鑑 | EquipBook/info | Supported | Supported | Supported |
63
- | 艦娘一覧 | CharacterList/info | - | Supported (1) | Supported (2) |
64
- | 装備一覧 | EquipList/info | - | Supported | Supported |
65
- | 任務一覧 | Quest/info | - | Unsupported | Unsupported |
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
 
@@ -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 3
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, 3
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, 3
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, 3
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, 2, 3
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, 3
79
- CharacterListInfoParser.parse(json, api_version)
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, 3
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
- 2 => {
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
- 3 => {
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
@@ -1,3 +1,3 @@
1
1
  module AdmiralStatsParser
2
- VERSION = "0.1.3"
2
+ VERSION = "0.1.4"
3
3
  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.3
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-09-15 00:00:00.000000000 Z
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.6.6
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