jisx0402 0.1.0
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 +7 -0
- data/.gitignore +9 -0
- data/.travis.yml +4 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +21 -0
- data/README.md +59 -0
- data/Rakefile +6 -0
- data/bin/console +14 -0
- data/bin/setup +7 -0
- data/jisx0402.gemspec +24 -0
- data/lib/data/data.csv +1963 -0
- data/lib/jisx0402/version.rb +3 -0
- data/lib/jisx0402.rb +64 -0
- metadata +99 -0
data/lib/jisx0402.rb
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
#require "jisx0402/version"
|
2
|
+
require 'csv'
|
3
|
+
|
4
|
+
module Jisx0402
|
5
|
+
class << self
|
6
|
+
def search
|
7
|
+
data
|
8
|
+
end
|
9
|
+
|
10
|
+
def search(word, by: nil)
|
11
|
+
way = %w(code prefecture prefecture_yomi district district_yomi full full_yomi)
|
12
|
+
|
13
|
+
if by
|
14
|
+
result = data.select do |d|
|
15
|
+
d.at(way.index(by.to_s)) =~ /#{word}/
|
16
|
+
end
|
17
|
+
if result.size == 1
|
18
|
+
return Code.new(result.first)
|
19
|
+
else
|
20
|
+
return result.map{|r| Code.new(r) }
|
21
|
+
end
|
22
|
+
else
|
23
|
+
result = way.map do |w|
|
24
|
+
search(word, by: w)
|
25
|
+
end
|
26
|
+
result = result.flatten.uniq{|e| e.code }
|
27
|
+
if result.size == 1
|
28
|
+
return result.first
|
29
|
+
else
|
30
|
+
return result
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
def data
|
36
|
+
@@data ||= CSV.parse(open(File.expand_path('../data/data.csv', __FILE__)).read)
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class Code
|
41
|
+
def initialize(row)
|
42
|
+
@row = row
|
43
|
+
end
|
44
|
+
|
45
|
+
def code
|
46
|
+
@row[0]
|
47
|
+
end
|
48
|
+
|
49
|
+
def prefecture(hiragana: false)
|
50
|
+
hiragana ? @row[2] : @row[1]
|
51
|
+
end
|
52
|
+
|
53
|
+
def district(hiragana: false)
|
54
|
+
hiragana ? @row[4] : @row[3]
|
55
|
+
end
|
56
|
+
|
57
|
+
def full(hiragana: false)
|
58
|
+
hiragana ? @row[6] : @row[5]
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
63
|
+
require 'pry'
|
64
|
+
pry
|
metadata
ADDED
@@ -0,0 +1,99 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: jisx0402
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- cnosuke
|
8
|
+
autorequire:
|
9
|
+
bindir: exe
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-09-06 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.10'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.10'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '10.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rspec
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
description:
|
56
|
+
email:
|
57
|
+
- shinnosuke@gmail.com
|
58
|
+
executables: []
|
59
|
+
extensions: []
|
60
|
+
extra_rdoc_files: []
|
61
|
+
files:
|
62
|
+
- ".gitignore"
|
63
|
+
- ".travis.yml"
|
64
|
+
- CODE_OF_CONDUCT.md
|
65
|
+
- Gemfile
|
66
|
+
- LICENSE.txt
|
67
|
+
- README.md
|
68
|
+
- Rakefile
|
69
|
+
- bin/console
|
70
|
+
- bin/setup
|
71
|
+
- jisx0402.gemspec
|
72
|
+
- lib/data/data.csv
|
73
|
+
- lib/jisx0402.rb
|
74
|
+
- lib/jisx0402/version.rb
|
75
|
+
homepage: https://github.com/cnosuke/jisx0402
|
76
|
+
licenses:
|
77
|
+
- MIT
|
78
|
+
metadata: {}
|
79
|
+
post_install_message:
|
80
|
+
rdoc_options: []
|
81
|
+
require_paths:
|
82
|
+
- lib
|
83
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
84
|
+
requirements:
|
85
|
+
- - ">="
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '0'
|
88
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
89
|
+
requirements:
|
90
|
+
- - ">="
|
91
|
+
- !ruby/object:Gem::Version
|
92
|
+
version: '0'
|
93
|
+
requirements: []
|
94
|
+
rubyforge_project:
|
95
|
+
rubygems_version: 2.4.5
|
96
|
+
signing_key:
|
97
|
+
specification_version: 4
|
98
|
+
summary: Library for search District Code(全国地方公共団体コード, JIS X 0402) of Japan.
|
99
|
+
test_files: []
|