eew_parser 0.1.6 → 0.1.7
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 +5 -5
- data/.travis.yml +5 -0
- data/LICENSE.txt +1 -1
- data/README.md +34 -0
- data/Rakefile +2 -0
- data/eew_parser.gemspec +6 -4
- data/lib/area_code.rb +1 -1
- data/lib/eew_parser.rb +86 -25
- data/lib/epicenter_code.rb +1 -1
- data/spec/eew_parser_spec.rb +17 -1
- metadata +38 -11
- data/README.rdoc +0 -27
- data/VERSION +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 2b294cfd9c1382b61a98de3a48840965b5385cc47f9b94660ec4083139be23ab
|
4
|
+
data.tar.gz: 72da81378e933180388a00b0208ef833810e1916d691e4204d699629310ad0aa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 52285f840a2de4ac27e9a8061fbf71d626966999a75d61d9f23a08b2c279a38c69995b4670d04fd06ef08742b2a829b2ccbe0858280990a6ed12800bcfe36111
|
7
|
+
data.tar.gz: e375ab94a68a98dc9a2e45948631742a7aedb6dd73d778abb3def74b6761e94b48e8ac816c629f3878b2699948c3f7e296ff08c522482939928e427bdc8e1432
|
data/.travis.yml
ADDED
data/LICENSE.txt
CHANGED
data/README.md
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# EEW::Parser
|
2
|
+
|
3
|
+
[](https://travis-ci.org/mmasaki/eew_parser)
|
4
|
+
|
5
|
+
高度利用者向け緊急地震速報コード電文フォーマットを扱う為のライブラリです。
|
6
|
+
http://eew.mizar.jp/excodeformat を元に作成しました。
|
7
|
+
詳しくは http://www.rubydoc.info/gems/eew_parser を参照して下さい。
|
8
|
+
|
9
|
+
```ruby
|
10
|
+
str = <<EOS
|
11
|
+
37 03 00 110415005029 C11
|
12
|
+
110415004944
|
13
|
+
ND20110415005001 NCN001 JD////////////// JN///
|
14
|
+
189 N430 E1466 070 41 02 RK66204 RT10/// RC/////
|
15
|
+
9999=
|
16
|
+
EOS
|
17
|
+
|
18
|
+
|
19
|
+
eew = EEWParser.new(str)
|
20
|
+
puts "最大予測震度: #{fc.seismic_intensity}"
|
21
|
+
```
|
22
|
+
|
23
|
+
## インストール
|
24
|
+
|
25
|
+
```
|
26
|
+
gem install eew_parser
|
27
|
+
```
|
28
|
+
|
29
|
+
でインストールできます。
|
30
|
+
|
31
|
+
## Copyright
|
32
|
+
|
33
|
+
Copyright (c) 2018 Masaki Matsushita. See LICENSE.txt for
|
34
|
+
further details.
|
data/Rakefile
CHANGED
data/eew_parser.gemspec
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
Gem::Specification.new do |spec|
|
2
2
|
spec.name = "eew_parser"
|
3
|
-
spec.version = "0.1.
|
3
|
+
spec.version = "0.1.7"
|
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}
|
7
7
|
spec.description = %q{Parser for Earthquake Early Warning from JMA}
|
8
|
-
spec.homepage = %q{https://github.com/
|
8
|
+
spec.homepage = %q{https://github.com/mmasaki/eew_parser}
|
9
9
|
spec.license = "MIT"
|
10
10
|
|
11
11
|
spec.files = `git ls-files -z`.split("\x0")
|
@@ -13,6 +13,8 @@ Gem::Specification.new do |spec|
|
|
13
13
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
14
14
|
spec.require_paths = ["lib"]
|
15
15
|
|
16
|
-
spec.add_development_dependency "bundler", "~> 1.
|
17
|
-
spec.add_development_dependency "rake", "~>
|
16
|
+
spec.add_development_dependency "bundler", "~> 1.16"
|
17
|
+
spec.add_development_dependency "rake", "~> 11.2"
|
18
|
+
spec.add_development_dependency "rspec", "~> 3.7"
|
19
|
+
spec.add_development_dependency "rspec-its", "~> 1.2"
|
18
20
|
end
|
data/lib/area_code.rb
CHANGED
data/lib/eew_parser.rb
CHANGED
@@ -4,8 +4,7 @@ require_relative "epicenter_code"
|
|
4
4
|
require_relative "area_code"
|
5
5
|
|
6
6
|
# 緊急地震速報パーサ
|
7
|
-
# Author::
|
8
|
-
# License:: NYSL Version 0.9982
|
7
|
+
# Author:: mmasaki
|
9
8
|
#
|
10
9
|
# 高度利用者向け緊急地震速報コード電文フォーマットを扱う為のライブラリです。
|
11
10
|
# http://eew.mizar.jp/excodeformat を元に作成しました。
|
@@ -30,14 +29,19 @@ module EEW
|
|
30
29
|
raise ArgumentError unless str.is_a?(String)
|
31
30
|
@fastcast = str.dup
|
32
31
|
@fastcast.freeze
|
33
|
-
raise Error, "電文の形式が不正です" if @fastcast.
|
32
|
+
raise Error, "電文の形式が不正です" if @fastcast.bytesize < 135
|
34
33
|
end
|
35
34
|
|
36
35
|
attr_reader :fastcast
|
37
36
|
|
38
37
|
# initializeに与えられた電文を返します。
|
39
38
|
def to_s
|
40
|
-
@fastcast
|
39
|
+
@fastcast.dup
|
40
|
+
end
|
41
|
+
|
42
|
+
# 電文のサイズを返します。
|
43
|
+
def size
|
44
|
+
@fastcast.bytesize
|
41
45
|
end
|
42
46
|
|
43
47
|
# 緊急地震速報の内容をテキストで出力します。
|
@@ -94,8 +98,16 @@ module EEW
|
|
94
98
|
return hash
|
95
99
|
end
|
96
100
|
|
101
|
+
# 正しい電文であるかを返します
|
102
|
+
def verify
|
103
|
+
Attributes.each do |attribute|
|
104
|
+
__send__(attribute)
|
105
|
+
end
|
106
|
+
return true
|
107
|
+
end
|
108
|
+
|
97
109
|
def inspect
|
98
|
-
"#<EEWParser:#{id}>"
|
110
|
+
"#<EEWParser:#{id} (第#{number}報) #{epicenter} #{seismic_intensity}>"
|
99
111
|
end
|
100
112
|
|
101
113
|
def ==(other)
|
@@ -103,7 +115,7 @@ module EEW
|
|
103
115
|
end
|
104
116
|
|
105
117
|
def <=>(other)
|
106
|
-
|
118
|
+
__id__ <=> other.__id__
|
107
119
|
end
|
108
120
|
|
109
121
|
# 電文種別コード
|
@@ -162,6 +174,18 @@ module EEW
|
|
162
174
|
end
|
163
175
|
end
|
164
176
|
|
177
|
+
# 訓練かどうか
|
178
|
+
def drill?
|
179
|
+
case @fastcast[6, 2]
|
180
|
+
when "00", "10", "20"
|
181
|
+
return false
|
182
|
+
when "01", "11", "30"
|
183
|
+
return true
|
184
|
+
else
|
185
|
+
raise Error, "電文の形式が不正です(識別符)"
|
186
|
+
end
|
187
|
+
end
|
188
|
+
|
165
189
|
# 電文の発表時刻のTimeオブジェクトを返します。
|
166
190
|
def report_time
|
167
191
|
Time.local("20" + @fastcast[9, 2], @fastcast[11, 2], @fastcast[13, 2], @fastcast[15, 2], @fastcast[17, 2], @fastcast[19, 2])
|
@@ -170,8 +194,9 @@ module EEW
|
|
170
194
|
# 電文がこの電文を含め何通あるか(Integer)
|
171
195
|
def number_of_telegram
|
172
196
|
number_of_telegram = @fastcast[23]
|
173
|
-
|
174
|
-
|
197
|
+
return Integer(number_of_telegram, 10)
|
198
|
+
rescue ArgumentError
|
199
|
+
raise Error, "電文の形式が不正です"
|
175
200
|
end
|
176
201
|
|
177
202
|
# コードが続くかどうか
|
@@ -194,8 +219,14 @@ module EEW
|
|
194
219
|
# 地震識別番号(String)
|
195
220
|
def id
|
196
221
|
id = @fastcast[41, 14]
|
197
|
-
|
198
|
-
id
|
222
|
+
Integer(id, 10) # verify
|
223
|
+
return id
|
224
|
+
rescue ArgumentError
|
225
|
+
raise Error, "電文の形式が不正です(地震識別番号: #{id})"
|
226
|
+
end
|
227
|
+
|
228
|
+
def __id__
|
229
|
+
id + number.to_s
|
199
230
|
end
|
200
231
|
|
201
232
|
# 発表状況(訂正等)の指示
|
@@ -218,6 +249,12 @@ module EEW
|
|
218
249
|
end
|
219
250
|
end
|
220
251
|
|
252
|
+
# 第1報であればtrueを、そうでなければfalseを返します。
|
253
|
+
def first?
|
254
|
+
return true if self.number == 1
|
255
|
+
return false
|
256
|
+
end
|
257
|
+
|
221
258
|
# 最終報であればtrueを、そうでなければfalseを返します。
|
222
259
|
def final?
|
223
260
|
case @fastcast[59]
|
@@ -233,17 +270,22 @@ module EEW
|
|
233
270
|
# 発表する高度利用者向け緊急地震速報の番号(地震単位での通番)(Integer)
|
234
271
|
def number
|
235
272
|
number = @fastcast[60, 2]
|
236
|
-
|
237
|
-
|
273
|
+
return Integer(number, 10)
|
274
|
+
rescue ArgumentError
|
275
|
+
raise Error, "電文の形式が不正です(高度利用者向け緊急地震速報の番号)"
|
238
276
|
end
|
239
277
|
|
240
278
|
alias :revision :number
|
241
279
|
|
242
280
|
# 震央の名称
|
243
281
|
def epicenter
|
244
|
-
|
245
|
-
|
246
|
-
EpicenterCode
|
282
|
+
code = @fastcast[86, 3]
|
283
|
+
code = Integer(code, 10)
|
284
|
+
EpicenterCode.fetch(code)
|
285
|
+
rescue KeyError
|
286
|
+
raise Error, "電文の形式が不正です(震央地名コード: #{code})"
|
287
|
+
rescue ArgumentError
|
288
|
+
raise Error, "電文の形式が不正です(震央の名称)"
|
247
289
|
end
|
248
290
|
|
249
291
|
# 震央の位置
|
@@ -252,7 +294,7 @@ module EEW
|
|
252
294
|
if position == "//// /////"
|
253
295
|
"不明又は未設定"
|
254
296
|
else
|
255
|
-
raise Error, "電文の形式が不正です(震央の位置)"
|
297
|
+
raise Error, "電文の形式が不正です(震央の位置)" unless position.match(/N\d{3} E\d{4}/)
|
256
298
|
position.insert(3, ".").insert(10, ".")
|
257
299
|
end
|
258
300
|
end
|
@@ -261,11 +303,12 @@ module EEW
|
|
261
303
|
def depth
|
262
304
|
depth = @fastcast[101, 3]
|
263
305
|
if depth == "///"
|
264
|
-
"不明又は未設定"
|
306
|
+
return "不明又は未設定"
|
265
307
|
else
|
266
|
-
|
267
|
-
depth.to_i
|
308
|
+
return Integer(depth, 10)
|
268
309
|
end
|
310
|
+
rescue ArgumentError
|
311
|
+
raise Error, "電文の形式が不正です(震源の深さ)"
|
269
312
|
end
|
270
313
|
|
271
314
|
# マグニチュード
|
@@ -274,11 +317,12 @@ module EEW
|
|
274
317
|
def magnitude
|
275
318
|
magnitude = @fastcast[105, 2]
|
276
319
|
if magnitude == "//"
|
277
|
-
"不明又は未設定"
|
320
|
+
return "不明又は未設定"
|
278
321
|
else
|
279
|
-
|
280
|
-
(magnitude[0] + "." + magnitude[1]).to_f
|
322
|
+
return Float(magnitude[0] + "." + magnitude[1])
|
281
323
|
end
|
324
|
+
rescue ArgumentError
|
325
|
+
raise Error, "電文の形式が不正です(マグニチュード)"
|
282
326
|
end
|
283
327
|
|
284
328
|
# 電文フォーマットの震度を文字列に変換
|
@@ -312,8 +356,6 @@ module EEW
|
|
312
356
|
# 最大予測震度
|
313
357
|
def seismic_intensity
|
314
358
|
to_seismic_intensity(@fastcast[108, 2])
|
315
|
-
rescue Error
|
316
|
-
raise Error, "電文の形式が不正です(最大予測震度)"
|
317
359
|
end
|
318
360
|
|
319
361
|
# 震央の確からしさ
|
@@ -486,6 +528,16 @@ module EEW
|
|
486
528
|
end
|
487
529
|
end
|
488
530
|
|
531
|
+
# 最大予測震度に変化があったかどうか
|
532
|
+
def changed?
|
533
|
+
case @fastcast[129]
|
534
|
+
when "0", "3".."9", "/"
|
535
|
+
return false
|
536
|
+
when "1", "2"
|
537
|
+
return true
|
538
|
+
end
|
539
|
+
end
|
540
|
+
|
489
541
|
# 最大予測震度の変化の理由
|
490
542
|
def reason_of_change
|
491
543
|
case @fastcast[130]
|
@@ -508,6 +560,15 @@ module EEW
|
|
508
560
|
end
|
509
561
|
end
|
510
562
|
|
563
|
+
# EBIを含むかどうか
|
564
|
+
def has_ebi?
|
565
|
+
if @fastcast[135, 3] == "EBI"
|
566
|
+
return true
|
567
|
+
else
|
568
|
+
return false
|
569
|
+
end
|
570
|
+
end
|
571
|
+
|
511
572
|
# 地域毎の警報の判別、最大予測震度及び主要動到達予測時刻
|
512
573
|
# EBIがあればHashを格納したArrayを、なければ空のArrayを返します。Hashに格納されるkeyとvalueはそれぞれ次のようになっています。
|
513
574
|
# :area_name 地域名称
|
@@ -519,7 +580,7 @@ module EEW
|
|
519
580
|
data = []
|
520
581
|
return data unless @fastcast[135, 3] == "EBI"
|
521
582
|
i = 139
|
522
|
-
while i + 20 < @fastcast.
|
583
|
+
while i + 20 < @fastcast.bytesize
|
523
584
|
local = {}
|
524
585
|
local[:area_code] = @fastcast[i, 3].to_i
|
525
586
|
local[:area_name] = AreaCode[local[:area_code]] # 地域名称
|
data/lib/epicenter_code.rb
CHANGED
data/spec/eew_parser_spec.rb
CHANGED
@@ -21,14 +21,24 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
|
|
21
21
|
EEW::Parser.new(fastcast)
|
22
22
|
end
|
23
23
|
|
24
|
+
let(:different_id) do
|
25
|
+
_fastcast = fastcast.dup
|
26
|
+
_fastcast[61] = "6" # 第6報にセット
|
27
|
+
EEW::Parser.new(_fastcast)
|
28
|
+
end
|
29
|
+
|
24
30
|
subject do
|
25
31
|
EEW::Parser.new(fastcast)
|
26
32
|
end
|
27
33
|
|
28
34
|
describe "#==" do
|
29
|
-
it "同じ地震ID
|
35
|
+
it "同じ地震IDと第n報目であればtrue" do
|
30
36
|
expect(subject).to eq(same_id)
|
31
37
|
end
|
38
|
+
|
39
|
+
it "同じ地震IDでも第n報目かが異なればfalse" do
|
40
|
+
expect(subject).not_to eq(different_id)
|
41
|
+
end
|
32
42
|
end
|
33
43
|
|
34
44
|
its(:type) { is_expected.to eq("マグニチュード、最大予測震度及び主要動到達予測時刻の高度利用者向け緊急地震速報(グリッドサーチ法、EPOS自動処理手法)") }
|
@@ -37,6 +47,8 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
|
|
37
47
|
|
38
48
|
its(:drill_type) { is_expected.to eq("通常") }
|
39
49
|
|
50
|
+
it { is_expected.not_to be_drill }
|
51
|
+
|
40
52
|
describe "#report_time" do
|
41
53
|
let(:report_time) { Time.parse("2011-04-15 23:34:53 +0900") }
|
42
54
|
its(:report_time) { is_expected.to eq(report_time) }
|
@@ -55,6 +67,8 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
|
|
55
67
|
|
56
68
|
its(:status) { is_expected.to eq("通常発表") }
|
57
69
|
|
70
|
+
it { is_expected.not_to be_first }
|
71
|
+
|
58
72
|
it { is_expected.not_to be_final }
|
59
73
|
|
60
74
|
its(:number) { is_expected.to eq(5) }
|
@@ -85,6 +99,8 @@ EBI 251 S6+6- ////// 11 300 S5+5- ////// 11 250 S5+5- ////// 11
|
|
85
99
|
|
86
100
|
its(:change) { is_expected.to eq("最大予測震度が1.0以上大きくなった") }
|
87
101
|
|
102
|
+
it { is_expected.to be_changed }
|
103
|
+
|
88
104
|
its(:reason_of_change) { is_expected.to eq("M及び震源位置が変化したため") }
|
89
105
|
|
90
106
|
describe "#ebi" do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: eew_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Masaki Matsushita
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-06-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,28 +16,56 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1.
|
19
|
+
version: '1.16'
|
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
|
-
version: '1.
|
26
|
+
version: '1.16'
|
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
|
-
version: '
|
33
|
+
version: '11.2'
|
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
|
-
version: '
|
40
|
+
version: '11.2'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '3.7'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '3.7'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rspec-its
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '1.2'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '1.2'
|
41
69
|
description: Parser for Earthquake Early Warning from JMA
|
42
70
|
email:
|
43
71
|
- glass.saga@gmail.com
|
@@ -47,18 +75,18 @@ extra_rdoc_files: []
|
|
47
75
|
files:
|
48
76
|
- ".document"
|
49
77
|
- ".gitignore"
|
78
|
+
- ".travis.yml"
|
50
79
|
- Gemfile
|
51
80
|
- LICENSE.txt
|
52
|
-
- README.
|
81
|
+
- README.md
|
53
82
|
- Rakefile
|
54
|
-
- VERSION
|
55
83
|
- eew_parser.gemspec
|
56
84
|
- lib/area_code.rb
|
57
85
|
- lib/eew_parser.rb
|
58
86
|
- lib/epicenter_code.rb
|
59
87
|
- spec/eew_parser_spec.rb
|
60
88
|
- spec/spec_helper.rb
|
61
|
-
homepage: https://github.com/
|
89
|
+
homepage: https://github.com/mmasaki/eew_parser
|
62
90
|
licenses:
|
63
91
|
- MIT
|
64
92
|
metadata: {}
|
@@ -78,11 +106,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
78
106
|
version: '0'
|
79
107
|
requirements: []
|
80
108
|
rubyforge_project:
|
81
|
-
rubygems_version: 2.
|
109
|
+
rubygems_version: 2.7.7
|
82
110
|
signing_key:
|
83
111
|
specification_version: 4
|
84
112
|
summary: Parser for Earthquake Early Warning from JMA
|
85
113
|
test_files:
|
86
114
|
- spec/eew_parser_spec.rb
|
87
115
|
- spec/spec_helper.rb
|
88
|
-
has_rdoc:
|
data/README.rdoc
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
= eew_parser
|
2
|
-
|
3
|
-
高度利用者向け緊急地震速報コード電文フォーマットを扱う為のライブラリです。
|
4
|
-
http://eew.mizar.jp/excodeformat を元に作成しました。
|
5
|
-
詳しくは http://glasssaga.dip.jp/eew_parser_doc/EEWParser.html を参照して下さい。
|
6
|
-
|
7
|
-
str = <<EOS
|
8
|
-
37 03 00 110415005029 C11
|
9
|
-
110415004944
|
10
|
-
ND20110415005001 NCN001 JD////////////// JN///
|
11
|
-
189 N430 E1466 070 41 02 RK66204 RT10/// RC/////
|
12
|
-
9999=
|
13
|
-
EOS
|
14
|
-
|
15
|
-
eew = EEWParser.new(str)
|
16
|
-
puts "最大予測震度: #{fc.seismic_intensity}"
|
17
|
-
|
18
|
-
== インストール
|
19
|
-
|
20
|
-
gem install eew_parser
|
21
|
-
|
22
|
-
でインストールできます。
|
23
|
-
|
24
|
-
== Copyright
|
25
|
-
|
26
|
-
Copyright (c) 2014 Masaki Matsushita. See LICENSE.txt for
|
27
|
-
further details.
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.1.3
|