eew_parser 0.1.7 → 0.1.8

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
  SHA256:
3
- metadata.gz: 2b294cfd9c1382b61a98de3a48840965b5385cc47f9b94660ec4083139be23ab
4
- data.tar.gz: 72da81378e933180388a00b0208ef833810e1916d691e4204d699629310ad0aa
3
+ metadata.gz: ae8383181310f29874188dc3942d9df92bb0ac30169c75d996f03348d5782cb2
4
+ data.tar.gz: ca535df81cb46272641ec3e96b8ec61998c636b24a1e24abdf0648d080b60038
5
5
  SHA512:
6
- metadata.gz: 52285f840a2de4ac27e9a8061fbf71d626966999a75d61d9f23a08b2c279a38c69995b4670d04fd06ef08742b2a829b2ccbe0858280990a6ed12800bcfe36111
7
- data.tar.gz: e375ab94a68a98dc9a2e45948631742a7aedb6dd73d778abb3def74b6761e94b48e8ac816c629f3878b2699948c3f7e296ff08c522482939928e427bdc8e1432
6
+ metadata.gz: 163f87126e02cf19187825a36cce18b590a7e3c3868c079ab99b40da9fbb8a6a014127c54bb44d3f8c516289488b7fcd4a8872d01ba7004b474e200bca493ea0
7
+ data.tar.gz: 66d9e28110c3b743d3a4faa771b015ee69d0352ff9e3a9c44a7df5bae176875b1cdc7a3dfdbed30e7d3634c3d0db1af96dd707d83dc9a82b662a0efc9dde5f3e
data/eew_parser.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "eew_parser"
3
- spec.version = "0.1.7"
3
+ spec.version = "0.1.8"
4
4
  spec.authors = ["Masaki Matsushita"]
5
5
  spec.email = ["glass.saga@gmail.com"]
6
6
  spec.summary = %q{Parser for Earthquake Early Warning from JMA}
data/lib/eew_parser.rb CHANGED
@@ -46,41 +46,46 @@ module EEW
46
46
 
47
47
  # 緊急地震速報の内容をテキストで出力します。
48
48
  def print
49
- str = <<-EOS
50
- 電文種別: #{self.type}
51
- 発信官署: #{self.from}
52
- 訓練等の識別符: #{self.drill_type}
53
- 電文の発表時刻: #{self.report_time}
54
- 電文がこの電文を含め何通あるか: #{self.number_of_telegram}
55
- コードが続くかどうか: #{self.continue?}
56
- 地震発生時刻もしくは地震検知時刻: #{self.earthquake_time}
57
- 地震識別番号: #{self.id}
58
- 発表状況(訂正等)の指示: #{self.status}
59
- 発表する高度利用者向け緊急地震速報の番号(地震単位での通番): #{self.number}
60
- 震央地名: #{self.epicenter}
61
- 震央の位置: #{self.position}
62
- 震源の深さ(単位 km)(不明・未設定時,キャンセル時:///): #{self.depth}
63
- マグニチュード(不明・未設定時、キャンセル時:///): #{self.magnitude}
64
- 最大予測震度(不明・未設定時、キャンセル時://): #{self.seismic_intensity}
65
- 震央の確からしさ: #{self.probability_of_position}
66
- 震源の深さの確からしさ: #{self.probability_of_depth}
67
- マグニチュードの確からしさ: #{self.probability_of_magnitude}
68
- 震央の確からしさ(気象庁の部内システムでの利用): #{self.probability_of_position_jma}
69
- 震源の深さの確からしさ(気象庁の部内システムでの利用): #{self.probability_of_depth_jma}
70
- 震央位置の海陸判定: #{self.land_or_sea}
71
- 警報を含む内容かどうか: #{self.warning?}
72
- 最大予測震度の変化: #{self.change}
73
- 最大予測震度の変化の理由: #{self.reason_of_change}
49
+ return @print.dup if @print
50
+
51
+ @print = <<-EOS
52
+ 緊急地震速報 (第#{number}報)
53
+ 電文種別: #{type}
54
+ 発信官署: #{from}
55
+ 訓練等の識別符: #{drill_type}
56
+ 電文の発表時刻: #{report_time.strftime("%F %T")}
57
+ 電文がこの電文を含め何通あるか: #{number_of_telegram}
58
+ コードが続くかどうか: #{continue?}
59
+ 地震発生時刻もしくは地震検知時刻: #{earthquake_time.strftime("%F %T")}
60
+ 地震識別番号: #{id}
61
+ 発表状況(訂正等)の指示: #{status}
62
+ 発表する高度利用者向け緊急地震速報の番号(地震単位での通番): #{number}
63
+ 震央地名: #{epicenter}
64
+ 震央の位置: #{position}
65
+ 震源の深さ(単位 km)(不明・未設定時,キャンセル時:///): #{depth}
66
+ マグニチュード(不明・未設定時、キャンセル時:///): #{magnitude}
67
+ 最大予測震度(不明・未設定時、キャンセル時://): #{seismic_intensity}
68
+ 震央の確からしさ: #{probability_of_position}
69
+ 震源の深さの確からしさ: #{probability_of_depth}
70
+ マグニチュードの確からしさ: #{probability_of_magnitude}
71
+ 震央の確からしさ(気象庁の部内システムでの利用): #{probability_of_position_jma}
72
+ 震源の深さの確からしさ(気象庁の部内システムでの利用): #{probability_of_depth_jma}
73
+ 震央位置の海陸判定: #{land_or_sea}
74
+ 警報を含む内容かどうか: #{warning?}
75
+ 最大予測震度の変化: #{change}
76
+ 最大予測震度の変化の理由: #{reason_of_change}
74
77
  EOS
75
78
 
76
- unless self.ebi.empty?
77
- str << "\n地域毎の警報の判別、最大予測震度及び主要動到達予測時刻(EBI):"
78
- self.ebi.each do |local|
79
- str << "地域名: #{local[:area_name]} 最大予測震度: #{local[:intensity]} 予想到達時刻: #{local[:arrival_time]} 警報を含むかどうか: #{local[:warning]} 既に到達しているかどうか: #{local[:arrival]}\n"
79
+ if has_ebi?
80
+ @print << "\n地域毎の警報の判別、最大予測震度及び主要動到達予測時刻(EBI):\n"
81
+ ebi.each do |local|
82
+ arrival_time = local[:arrival] ? "すでに到達" : local[:arrival_time]&.strftime("%T")
83
+ @print << "#{local[:area_name]} 最大予測震度: #{local[:intensity]} 予想到達時刻: #{arrival_time} 警報: #{local[:warning]}\n"
80
84
  end
81
85
  end
82
86
 
83
- return str
87
+ @print.freeze
88
+ return @print.dup
84
89
  end
85
90
 
86
91
  Attributes = [
@@ -107,7 +112,7 @@ module EEW
107
112
  end
108
113
 
109
114
  def inspect
110
- "#<EEWParser:#{id} (第#{number}報) #{epicenter} #{seismic_intensity}>"
115
+ "#<EEWParser:#{id} (第#{number}報) #{epicenter} 震度#{seismic_intensity}>"
111
116
  end
112
117
 
113
118
  def ==(other)
@@ -189,6 +194,8 @@ module EEW
189
194
  # 電文の発表時刻のTimeオブジェクトを返します。
190
195
  def report_time
191
196
  Time.local("20" + @fastcast[9, 2], @fastcast[11, 2], @fastcast[13, 2], @fastcast[15, 2], @fastcast[17, 2], @fastcast[19, 2])
197
+ rescue ArgumentError
198
+ raise Error, "電文の形式が不正です (発表時刻: #{@fastcast[9, 12]})"
192
199
  end
193
200
 
194
201
  # 電文がこの電文を含め何通あるか(Integer)
@@ -214,6 +221,8 @@ module EEW
214
221
  # 地震発生時刻もしくは地震検知時刻のTimeオブジェクトを返します。
215
222
  def earthquake_time
216
223
  Time.local("20" + @fastcast[26, 2], @fastcast[28, 2], @fastcast[30, 2], @fastcast[32, 2], @fastcast[34, 2], @fastcast[36, 2])
224
+ rescue ArgumentError
225
+ raise Error, "電文の形式が不正です (地震発生時刻: #{@fastcast[26, 12]})"
217
226
  end
218
227
 
219
228
  # 地震識別番号(String)
@@ -226,7 +235,7 @@ module EEW
226
235
  end
227
236
 
228
237
  def __id__
229
- id + number.to_s
238
+ (id * 10) + number
230
239
  end
231
240
 
232
241
  # 発表状況(訂正等)の指示
@@ -249,6 +258,12 @@ module EEW
249
258
  end
250
259
  end
251
260
 
261
+ # 発表状況と訓練識別が通常かどうか
262
+ def normal?
263
+ return true if @fastcast[59] == "0" && @fastcast[6, 2] == "00"
264
+ return false
265
+ end
266
+
252
267
  # 第1報であればtrueを、そうでなければfalseを返します。
253
268
  def first?
254
269
  return true if self.number == 1
@@ -272,7 +287,7 @@ module EEW
272
287
  number = @fastcast[60, 2]
273
288
  return Integer(number, 10)
274
289
  rescue ArgumentError
275
- raise Error, "電文の形式が不正です(高度利用者向け緊急地震速報の番号)"
290
+ raise Error, "電文の形式が不正です(高度利用者向け緊急地震速報の番号: #{number})"
276
291
  end
277
292
 
278
293
  alias :revision :number
@@ -282,10 +297,8 @@ module EEW
282
297
  code = @fastcast[86, 3]
283
298
  code = Integer(code, 10)
284
299
  EpicenterCode.fetch(code)
285
- rescue KeyError
300
+ rescue ArgumentError, KeyError
286
301
  raise Error, "電文の形式が不正です(震央地名コード: #{code})"
287
- rescue ArgumentError
288
- raise Error, "電文の形式が不正です(震央の名称)"
289
302
  end
290
303
 
291
304
  # 震央の位置
@@ -294,7 +307,7 @@ module EEW
294
307
  if position == "//// /////"
295
308
  "不明又は未設定"
296
309
  else
297
- raise Error, "電文の形式が不正です(震央の位置)" unless position.match(/N\d{3} E\d{4}/)
310
+ raise Error, "電文の形式が不正です(震央の位置)" unless position.match(/(?:N|S)\d{3} (?:E|W)\d{4}/)
298
311
  position.insert(3, ".").insert(10, ".")
299
312
  end
300
313
  end
@@ -325,32 +338,24 @@ module EEW
325
338
  raise Error, "電文の形式が不正です(マグニチュード)"
326
339
  end
327
340
 
341
+ SeismicIntensity = {
342
+ "//" => "不明又は未設定",
343
+ "01" => "1",
344
+ "02" => "2",
345
+ "03" => "3",
346
+ "04" => "4",
347
+ "5-" => "5弱",
348
+ "5+" => "5強",
349
+ "6-" => "6弱",
350
+ "6+" => "6強",
351
+ "07" => "7"
352
+ }.freeze
353
+
328
354
  # 電文フォーマットの震度を文字列に変換
329
355
  def to_seismic_intensity(str)
330
- case str
331
- when "//"
332
- "不明又は未設定"
333
- when "01"
334
- "1"
335
- when "02"
336
- "2"
337
- when "03"
338
- "3"
339
- when "04"
340
- "4"
341
- when "5-"
342
- "5弱"
343
- when "5+"
344
- "5強"
345
- when "6-"
346
- "6弱"
347
- when "6+"
348
- "6強"
349
- when "07"
350
- "7"
351
- else
352
- raise Error, "電文の形式が不正です(震度)"
353
- end
356
+ SeismicIntensity.fetch(str)
357
+ rescue KeyError
358
+ raise Error, "電文の形式が不正です(震度: #{str})"
354
359
  end
355
360
 
356
361
  # 最大予測震度
@@ -358,60 +363,31 @@ module EEW
358
363
  to_seismic_intensity(@fastcast[108, 2])
359
364
  end
360
365
 
366
+ OriginProbability = {
367
+ "1" => "P波/S波レベル越え、またはIPF法(1点) または仮定震源要素の場合",
368
+ "2" => "IPF法(2点)",
369
+ "3" => "IPF法(3点/4点)",
370
+ "4" => "IPF法(5点)",
371
+ "5" => "防災科研システム(4点以下、または精度情報なし)[防災科研Hi-netデータ]",
372
+ "6" => "防災科研システム(5点以上)[防災科研Hi-netデータ]",
373
+ "7" => "EPOS(海域[観測網外])",
374
+ "8" => "EPOS(内陸[観測網内])",
375
+ "9" => "予備",
376
+ "/" =>"不明又は未設定"
377
+ }.freeze
378
+
361
379
  # 震央の確からしさ
362
380
  def probability_of_position
363
- case @fastcast[113]
364
- when "1"
365
- "P波/S波レベル越え、またはテリトリー法(1点)[気象庁データ]"
366
- when "2"
367
- "テリトリー法(2点)[気象庁データ]"
368
- when "3"
369
- "グリッドサーチ法(3点/4点)[気象庁データ]"
370
- when "4"
371
- "グリッドサーチ法(5点)[気象庁データ]"
372
- when "5"
373
- "防災科研システム(4点以下、または精度情報なし)[防災科学技術研究所データ]"
374
- when "6"
375
- "防災科研システム(5点以上)[防災科学技術研究所データ]"
376
- when "7"
377
- "EPOS(海域[観測網外])[気象庁データ]"
378
- when "8"
379
- "EPOS(内陸[観測網内])[気象庁データ]"
380
- when "9"
381
- "予備"
382
- when "/"
383
- "不明又は未設定"
384
- else
385
- raise Error, "電文の形式が不正です(震央の確からしさ)"
386
- end
381
+ OriginProbability.fetch(@fastcast[113])
382
+ rescue KeyError
383
+ raise Error, "電文の形式が不正です(震央の確からしさ)"
387
384
  end
388
385
 
389
386
  # 震源の深さの確からしさ
390
387
  def probability_of_depth
391
- case @fastcast[114]
392
- when "1"
393
- "P波/S波レベル越え、またはテリトリー法(1点)[気象庁データ]"
394
- when "2"
395
- "テリトリー法(2点)[気象庁データ]"
396
- when "3"
397
- "グリッドサーチ法(3点/4点)[気象庁データ]"
398
- when "4"
399
- "グリッドサーチ法(5点)[気象庁データ]"
400
- when "5"
401
- "防災科研システム(4点以下、または精度情報なし)[防災科学技術研究所データ]"
402
- when "6"
403
- "防災科研システム(5点以上)[防災科学技術研究所データ]"
404
- when "7"
405
- "EPOS(海域[観測網外])[気象庁データ]"
406
- when "8"
407
- "EPOS(内陸[観測網内])[気象庁データ]"
408
- when "9"
409
- "予備"
410
- when "/", "0"
411
- "不明又は未設定"
412
- else
413
- raise Error, "電文の形式が不正です(震源の深さの確からしさ)"
414
- end
388
+ OriginProbability.fetch(@fastcast[114])
389
+ rescue KeyError
390
+ raise Error, "電文の形式が不正です(震央の確からしさ)"
415
391
  end
416
392
 
417
393
  # マグニチュードの確からしさ
@@ -420,19 +396,19 @@ module EEW
420
396
  when "1"
421
397
  "未定義"
422
398
  when "2"
423
- "防災科研システム[防災科学技術研究所データ]"
399
+ "防災科研システム[防災科研Hi-netデータ]"
424
400
  when "3"
425
- "全点P相(最大5点)[気象庁データ]"
401
+ "全点P相"
426
402
  when "4"
427
- "P相/全相混在[気象庁データ]"
403
+ "P相/全相混在"
428
404
  when "5"
429
- "全点全相(最大5点)[気象庁データ]"
405
+ "全点全相"
430
406
  when "6"
431
- "EPOS[気象庁データ]"
407
+ "EPOS"
432
408
  when "7"
433
409
  "未定義"
434
410
  when "8"
435
- "P波/S波レベル越え[気象庁データ]"
411
+ "P波/S波レベル越え または仮定震源要素の場合"
436
412
  when "9"
437
413
  "予備"
438
414
  when "/", "0"
@@ -442,40 +418,47 @@ module EEW
442
418
  end
443
419
  end
444
420
 
445
- # 震央の確からしさ(※気象庁の部内システムでの利用)
446
- def probability_of_position_jma
421
+ # マグニチュード使用観測点(※気象庁の部内システムでの利用)
422
+ def observation_points_of_magnitude
447
423
  case @fastcast[116]
448
424
  when "1"
449
- "P波/S波レベル越え又はテリトリー法(1点)[気象庁データ]"
425
+ "1点、P波/S波レベル超え、または仮定震源要素"
450
426
  when "2"
451
- "テリトリー法(2点)[気象庁データ]"
427
+ "2点"
452
428
  when "3"
453
- "グリッドサーチ法(3点/4)[気象庁データ]"
429
+ "3点"
454
430
  when "4"
455
- "グリッドサーチ法(5)[気象庁データ]"
431
+ "4点"
432
+ when "5"
433
+ "5点以上"
456
434
  when "/"
457
435
  "不明又は未設定"
458
- when "5".."9", "0"
436
+ when "6".."9", "0"
459
437
  "未定義"
460
438
  else
461
- raise Error, "電文の形式が不正です(震央の確からしさ[気象庁の部内システムでの利用])"
439
+ raise Error, "電文の形式が不正です(マグニチュード使用観測点[気象庁の部内システムでの利用])"
462
440
  end
463
441
  end
464
442
 
443
+ # 後方互換性のため
444
+ alias probability_of_position_jma observation_points_of_magnitude
445
+
465
446
  # 震源の深さの確からしさ(※気象庁の部内システムでの利用)
466
447
  def probability_of_depth_jma
467
448
  case @fastcast[117]
468
449
  when "1"
469
- "P波/S波レベル越え又はテリトリー法(1点)[気象庁データ]"
450
+ "P波/S波レベル越え、IPF法(1点)、または仮定震源要素"
470
451
  when "2"
471
- "テリトリー法(2点)[気象庁データ]"
452
+ "IPF法(2点)"
472
453
  when "3"
473
- "グリッドサーチ法(3点/4点)[気象庁データ]"
454
+ "IPF法(3点/4点)"
474
455
  when "4"
475
- "グリッドサーチ法(5)[気象庁データ]"
456
+ "IPF法(5点以上)"
457
+ when "9"
458
+ "震源とマグニチュードに基づく震度予測手法の精度が最終報相当"
476
459
  when "/"
477
460
  "不明又は未設定"
478
- when "5".."9", "0"
461
+ when "5".."8", "0"
479
462
  "未定義"
480
463
  else
481
464
  raise Error, "電文の形式が不正です(震源の深さの確からしさ[気象庁の部内システムでの利用])"
@@ -510,6 +493,20 @@ module EEW
510
493
  end
511
494
  end
512
495
 
496
+ # 予測手法
497
+ def warning?
498
+ case @fastcast[123]
499
+ when "9"
500
+ "震源とマグニチュードによる震度推定手法において震源要素が推定できず、PLUM 法による震度予測のみが有効である場合"
501
+ when "0".."8"
502
+ "未定義"
503
+ when "/"
504
+ "不明又は未設定"
505
+ else
506
+ raise Error, "電文の形式が不正です(警報の判別)"
507
+ end
508
+ end
509
+
513
510
  # 最大予測震度の変化
514
511
  def change
515
512
  case @fastcast[129]
@@ -551,9 +548,11 @@ module EEW
551
548
  "M及び震源位置が変化したため"
552
549
  when "4"
553
550
  "震源の深さが変化したため"
551
+ when "9"
552
+ "PLUM 法による予測により変化したため"
554
553
  when "/"
555
554
  "不明又は未設定"
556
- when "5".."9"
555
+ when "5".."8"
557
556
  "未定義"
558
557
  else
559
558
  raise Error, "電文の形式が不正です(最大予測震度の変化の理由)"
@@ -577,8 +576,10 @@ module EEW
577
576
  # :warning 警報を含んでいればtrue、含んでいなければfalse、電文にこの項目が設定されていなければnil
578
577
  # :arrival 既に到達していればtrue、そうでなければfalse、電文にこの項目が設定されていなければnil
579
578
  def ebi
580
- data = []
581
- return data unless @fastcast[135, 3] == "EBI"
579
+ return [] unless has_ebi?
580
+ return @ebi.dup if @ebi
581
+
582
+ @ebi = []
582
583
  i = 139
583
584
  while i + 20 < @fastcast.bytesize
584
585
  local = {}
@@ -617,10 +618,11 @@ module EEW
617
618
  else
618
619
  raise Error, "電文の形式が不正でです(主要動の到達予測状況[EBI])"
619
620
  end
620
- data << local
621
+ @ebi << local
621
622
  i += 20
622
623
  end
623
- data
624
+ @ebi.freeze
625
+ return @ebi.dup
624
626
  end
625
627
  end
626
628
  end
@@ -677,4 +679,7 @@ FC
677
679
  puts "地域コード: #{local[:area_code]} 地域名: #{local[:area_name]} 最大予測震度: #{local[:intensity]} 予想到達時刻: #{local[:arrival_time]}"
678
680
  puts "警報を含むかどうか: #{local[:warning]} 既に到達しているかどうか: #{local[:arrival]}"
679
681
  end
682
+
683
+ puts fc.print
684
+ p EEW::AreaCode.values.max_by(&:size).size
680
685
  end
@@ -67,6 +67,8 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
67
67
 
68
68
  its(:status) { is_expected.to eq("通常発表") }
69
69
 
70
+ it { is_expected.to be_normal }
71
+
70
72
  it { is_expected.not_to be_first }
71
73
 
72
74
  it { is_expected.not_to be_final }
@@ -83,15 +85,17 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
83
85
 
84
86
  its(:seismic_intensity) { is_expected.to eq("6強") }
85
87
 
86
- its(:probability_of_position) { is_expected.to eq("防災科研システム(5点以上)[防災科学技術研究所データ]") }
88
+ its(:probability_of_position) { is_expected.to eq("防災科研システム(5点以上)[防災科研Hi-netデータ]") }
89
+
90
+ its(:probability_of_depth) { is_expected.to eq("防災科研システム(5点以上)[防災科研Hi-netデータ]") }
87
91
 
88
- its(:probability_of_depth) { is_expected.to eq("防災科研システム(5点以上)[防災科学技術研究所データ]") }
92
+ its(:probability_of_magnitude) { is_expected.to eq("全点P相") }
89
93
 
90
- its(:probability_of_magnitude) { is_expected.to eq("全点P相(最大5)[気象庁データ]") }
94
+ its(:observation_points_of_magnitude) { is_expected.to eq("2点") }
91
95
 
92
- its(:probability_of_position_jma) { is_expected.to eq("テリトリー法(2点)[気象庁データ]") }
96
+ its(:probability_of_position_jma) { is_expected.to eq("2点") }
93
97
 
94
- its(:probability_of_depth_jma) { is_expected.to eq("グリッドサーチ法(5)[気象庁データ]") }
98
+ its(:probability_of_depth_jma) { is_expected.to eq("IPF法(5点以上)") }
95
99
 
96
100
  its(:land_or_sea) { is_expected.to eq("陸域") }
97
101
 
@@ -158,10 +162,25 @@ ND20110415005001 NCN001 JD////////////// JN///
158
162
  "37 03 00 141215195526 C11\n141215195426\nND20141215195438 NCN903 JD////////////// JN003\n309 N350 E1403 070 38 02 RK77604 RT10/// RC0////\n9999="
159
163
  end
160
164
 
161
- it "doesn't raise EEW::Parser::Error" do
165
+ it "can be verified" do
166
+ expect {
167
+ eew = EEW::Parser.new(invalid)
168
+ eew.verify
169
+ }.not_to raise_error
170
+ end
171
+ end
172
+
173
+ context "南緯と西経" do
174
+ let(:sw) do
175
+ "37 03 00 141215195526 C11\n141215195426\nND20141215195438 NCN903 JD////////////// JN003\n309 S350 W1403 070 38 02 RK77604 RT10/// RC0////\n9999="
176
+ end
177
+
178
+ it "can be verified" do
179
+ eew = nil
162
180
  expect {
163
- EEW::Parser.new(invalid)
181
+ eew = EEW::Parser.new(sw)
164
182
  }.not_to raise_error
183
+ expect(eew.position).to eq("S35.0 W140.3")
165
184
  end
166
185
  end
167
186
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: eew_parser
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Masaki Matsushita