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 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