jp_zip_code 0.1.2 → 0.1.3
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/lib/jp_zip_code/filer.rb +91 -0
- data/lib/jp_zip_code/updater.rb +2 -2
- data/lib/jp_zip_code/version.rb +1 -1
- data/lib/jp_zip_code.rb +1 -3
- metadata +2 -4
- data/lib/jp_zip_code/filer/base.rb +0 -55
- data/lib/jp_zip_code/filer/jp.rb +0 -29
- data/lib/jp_zip_code/filer/roman.rb +0 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3524bca9cdb88daacd1f053247ee11406cd2f17b
|
4
|
+
data.tar.gz: 443ff9193fb193f70ea0ad3bde73964b0fe06c57
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3aeebe5cbf4017997fd2c0f2f9373419ce4516288bc8998d57972c273a35937c8ed4f0ad05d867323d5ed3a7bb23d71c3e51607e1f26942a789151f140b2a39e
|
7
|
+
data.tar.gz: f5eb9d87aecf55f4b14d3088c68fdd7722c7bfe4fb31fcee98861c7e2b6f7ca3b3e683170ea61a229c98161ddca5f7eb532d9ac4e18ed8cfc84e163adbeb4a13
|
@@ -0,0 +1,91 @@
|
|
1
|
+
require 'open-uri'
|
2
|
+
require 'zip'
|
3
|
+
require 'yaml'
|
4
|
+
|
5
|
+
module JpZipCode
|
6
|
+
class Filer
|
7
|
+
def initialize(type)
|
8
|
+
@type = type.to_sym
|
9
|
+
end
|
10
|
+
|
11
|
+
def download_url
|
12
|
+
case @type
|
13
|
+
when :jp
|
14
|
+
'http://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip'
|
15
|
+
when :roman
|
16
|
+
'http://www.post.japanpost.jp/zipcode/dl/roman/ken_all_rome.zip'
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def fetch_data
|
21
|
+
download_file
|
22
|
+
unzip_file_and_get_data
|
23
|
+
end
|
24
|
+
|
25
|
+
def zip_file_name
|
26
|
+
File.basename(download_url)
|
27
|
+
end
|
28
|
+
|
29
|
+
def download_file
|
30
|
+
open(zip_file_name, 'wb') do |file|
|
31
|
+
open(download_url) do |data|
|
32
|
+
file.write(data.read)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def unzip_file_and_get_data
|
38
|
+
hash = {}
|
39
|
+
unzip(zip_file_name) do |file|
|
40
|
+
get_row(file).each do |row|
|
41
|
+
row_data = to_hash(row.split(',').map(&:strip))
|
42
|
+
hash[row_data[:zip_code]] = row_data
|
43
|
+
end
|
44
|
+
end
|
45
|
+
hash
|
46
|
+
end
|
47
|
+
|
48
|
+
def unzip(file_name)
|
49
|
+
Zip::File.open(file_name) do |csv_files|
|
50
|
+
csv_files.each do |file|
|
51
|
+
yield(file)
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
|
56
|
+
def get_row(file)
|
57
|
+
file.get_input_stream.read.encode('utf-8', 'cp932').delete('"').split("\n")
|
58
|
+
end
|
59
|
+
|
60
|
+
def to_hash(datas)
|
61
|
+
case @type
|
62
|
+
when :jp
|
63
|
+
{
|
64
|
+
code: datas[0],
|
65
|
+
old_zip_code: datas[1],
|
66
|
+
zip_code: datas[2],
|
67
|
+
pref_kana: datas[3],
|
68
|
+
city_kana: datas[4],
|
69
|
+
town_kana: datas[5],
|
70
|
+
pref_kanji: datas[6],
|
71
|
+
city_kanji: datas[7],
|
72
|
+
town_kanji: datas[8]
|
73
|
+
}
|
74
|
+
when :roman
|
75
|
+
{
|
76
|
+
zip_code: datas[0],
|
77
|
+
pref_kanji: datas[1],
|
78
|
+
city_kanji: datas[2],
|
79
|
+
town_kanji: datas[3],
|
80
|
+
pref_roman: datas[4],
|
81
|
+
city_roman: datas[5],
|
82
|
+
town_roman: datas[6]
|
83
|
+
}
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def clean
|
88
|
+
File.delete(zip_file_name) if File.exist?(zip_file_name)
|
89
|
+
end
|
90
|
+
end
|
91
|
+
end
|
data/lib/jp_zip_code/updater.rb
CHANGED
@@ -2,8 +2,8 @@ module JpZipCode
|
|
2
2
|
class Updater
|
3
3
|
def initialize(dry_run = true)
|
4
4
|
@dry_run = dry_run
|
5
|
-
@jp_filer = JpZipCode::Filer
|
6
|
-
@roman_filer = JpZipCode::Filer
|
5
|
+
@jp_filer = JpZipCode::Filer.new(:jp)
|
6
|
+
@roman_filer = JpZipCode::Filer.new(:roman)
|
7
7
|
end
|
8
8
|
|
9
9
|
def execute
|
data/lib/jp_zip_code/version.rb
CHANGED
data/lib/jp_zip_code.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jp_zip_code
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- kimromi
|
@@ -1726,9 +1726,7 @@ files:
|
|
1726
1726
|
- data/zip_code/9998.json
|
1727
1727
|
- jp_zip_code.gemspec
|
1728
1728
|
- lib/jp_zip_code.rb
|
1729
|
-
- lib/jp_zip_code/filer
|
1730
|
-
- lib/jp_zip_code/filer/jp.rb
|
1731
|
-
- lib/jp_zip_code/filer/roman.rb
|
1729
|
+
- lib/jp_zip_code/filer.rb
|
1732
1730
|
- lib/jp_zip_code/updater.rb
|
1733
1731
|
- lib/jp_zip_code/version.rb
|
1734
1732
|
homepage: http://kimromi.hatenablog.jp/
|
@@ -1,55 +0,0 @@
|
|
1
|
-
require 'open-uri'
|
2
|
-
require 'zip'
|
3
|
-
require 'yaml'
|
4
|
-
|
5
|
-
module JpZipCode
|
6
|
-
module Filer
|
7
|
-
class Base
|
8
|
-
attr_accessor :download_url
|
9
|
-
|
10
|
-
def fetch_data
|
11
|
-
download_file
|
12
|
-
unzip_file_and_get_data
|
13
|
-
end
|
14
|
-
|
15
|
-
def zip_file_name
|
16
|
-
File.basename(download_url)
|
17
|
-
end
|
18
|
-
|
19
|
-
def download_file
|
20
|
-
open(zip_file_name, 'wb') do |file|
|
21
|
-
open(download_url) do |data|
|
22
|
-
file.write(data.read)
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def unzip_file_and_get_data
|
28
|
-
hash = {}
|
29
|
-
unzip(zip_file_name) do |file|
|
30
|
-
get_row(file).each do |row|
|
31
|
-
row_data = to_hash(row)
|
32
|
-
hash[row_data[:zip_code]] = row_data
|
33
|
-
end
|
34
|
-
end
|
35
|
-
hash
|
36
|
-
end
|
37
|
-
|
38
|
-
def unzip(file_name)
|
39
|
-
Zip::File.open(file_name) do |csv_files|
|
40
|
-
csv_files.each do |file|
|
41
|
-
yield(file)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
45
|
-
|
46
|
-
def get_row(file)
|
47
|
-
file.get_input_stream.read.encode('utf-8', 'cp932').delete('"').split("\n")
|
48
|
-
end
|
49
|
-
|
50
|
-
def clean
|
51
|
-
File.delete(zip_file_name) if File.exist?(zip_file_name)
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
data/lib/jp_zip_code/filer/jp.rb
DELETED
@@ -1,29 +0,0 @@
|
|
1
|
-
require 'open-uri'
|
2
|
-
require 'zip'
|
3
|
-
require 'yaml'
|
4
|
-
|
5
|
-
module JpZipCode
|
6
|
-
module Filer
|
7
|
-
class Jp < Base
|
8
|
-
def initialize
|
9
|
-
self.download_url = 'http://www.post.japanpost.jp/zipcode/dl/kogaki/zip/ken_all.zip'
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_hash(row)
|
13
|
-
datas = row.split(',').map(&:strip)
|
14
|
-
{
|
15
|
-
code: datas[0],
|
16
|
-
old_zip_code: datas[1],
|
17
|
-
zip_code: datas[2],
|
18
|
-
pref_kana: datas[3],
|
19
|
-
city_kana: datas[4],
|
20
|
-
town_kana: datas[5],
|
21
|
-
pref_kanji: datas[6],
|
22
|
-
city_kanji: datas[7],
|
23
|
-
town_kanji: datas[8]
|
24
|
-
}
|
25
|
-
end
|
26
|
-
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
@@ -1,26 +0,0 @@
|
|
1
|
-
require 'open-uri'
|
2
|
-
require 'zip'
|
3
|
-
require 'yaml'
|
4
|
-
|
5
|
-
module JpZipCode
|
6
|
-
module Filer
|
7
|
-
class Roman < Base
|
8
|
-
def initialize
|
9
|
-
self.download_url = 'http://www.post.japanpost.jp/zipcode/dl/roman/ken_all_rome.zip'
|
10
|
-
end
|
11
|
-
|
12
|
-
def to_hash(row)
|
13
|
-
datas = row.split(',').map(&:strip)
|
14
|
-
{
|
15
|
-
zip_code: datas[0],
|
16
|
-
pref_kanji: datas[1],
|
17
|
-
city_kanji: datas[2],
|
18
|
-
town_kanji: datas[3],
|
19
|
-
pref_roman: datas[4],
|
20
|
-
city_roman: datas[5],
|
21
|
-
town_roman: datas[6]
|
22
|
-
}
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|