jp_municipality 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,16 @@
1
+ class CreateMunicipalities < ActiveRecord::Migration[5.2]
2
+ def up
3
+ create_table :municipalities, id: :string, primary_key: :code do |t|
4
+ t.string :prefecture_code, null: false, limit: 2
5
+ t.string :name
6
+ t.string :kana
7
+ end
8
+
9
+ change_column :municipalities, :code, :string, limit: 6
10
+ add_index :municipalities, :prefecture_code
11
+ end
12
+
13
+ def down
14
+ drop_table :municipalities
15
+ end
16
+ end
@@ -0,0 +1,23 @@
1
+ $:.push File.expand_path("../lib", __FILE__)
2
+
3
+ require "jp_municipality/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "jp_municipality"
7
+ s.version = JpMunicipality::VERSION
8
+ s.authors = ["Hayato IZUMI"]
9
+ s.email = ["h-izumi@9uelle.jp"]
10
+ s.summary = "JIS X 0402 (Identification code for cities, towns and villages) for Rails."
11
+ s.homepage = "https://jpmunicipality.9uelle.jp/"
12
+ s.license = "MIT"
13
+
14
+ s.files = %w[CHANGELOG.md CODE_OF_CONDUCT.md MIT-LICENSE README.ja.md README.md jp_municipality.gemspec]
15
+ s.files += Dir["{app,data,db,lib}/**/*"]
16
+
17
+ s.add_dependency "railties", ">= 5.1.5", "< 6.0"
18
+ s.add_dependency "activerecord", ">= 5.1.5", "< 6.0"
19
+ s.add_dependency "jp_prefecture"
20
+
21
+ s.add_development_dependency "rails", ">= 5.1.5"
22
+ s.add_development_dependency "sqlite3"
23
+ end
@@ -0,0 +1,8 @@
1
+ require 'jp_prefecture'
2
+ require 'jp_municipality/engine'
3
+
4
+ require 'jp_municipality/has_municipality'
5
+ require 'jp_municipality/has_municipalities'
6
+
7
+ module JpMunicipality
8
+ end
@@ -0,0 +1,5 @@
1
+ module JpMunicipality
2
+ class Engine < ::Rails::Engine
3
+ isolate_namespace JpMunicipality
4
+ end
5
+ end
@@ -0,0 +1,11 @@
1
+ module JpMunicipality
2
+ module HasMunicipalities
3
+ extend ActiveSupport::Concern
4
+
5
+ def municipalities
6
+ JpMunicipality::Municipality.by_prefecture(self)
7
+ end
8
+ end
9
+ end
10
+
11
+ JpPrefecture::Prefecture.send :include, JpMunicipality::HasMunicipalities
@@ -0,0 +1,15 @@
1
+ module JpMunicipality
2
+ module HasMunicipality
3
+ extend ActiveSupport::Concern
4
+
5
+ module ClassMethods
6
+ def has_municipality(foreign_key = :municipality_code, options = {})
7
+ name = options.reverse_merge({ as: :municipality })[:as]
8
+ belongs_to name, foreign_key: foreign_key,
9
+ class_name: 'JpMunicipality::Municipality'
10
+ end
11
+ end
12
+ end
13
+ end
14
+
15
+ ActiveRecord::Base.send :include, JpMunicipality::HasMunicipality
@@ -0,0 +1,3 @@
1
+ module JpMunicipality
2
+ VERSION = '0.1.0'
3
+ end
@@ -0,0 +1,6 @@
1
+ namespace :jp_municipality do
2
+ desc "Load municipalities to db."
3
+ task load_data: :environment do
4
+ JpMunicipality::Municipality.load_data!
5
+ end
6
+ end
metadata ADDED
@@ -0,0 +1,141 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: jp_municipality
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Hayato IZUMI
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-02-28 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: railties
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: 5.1.5
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '6.0'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ version: 5.1.5
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '6.0'
33
+ - !ruby/object:Gem::Dependency
34
+ name: activerecord
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: 5.1.5
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '6.0'
43
+ type: :runtime
44
+ prerelease: false
45
+ version_requirements: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: 5.1.5
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '6.0'
53
+ - !ruby/object:Gem::Dependency
54
+ name: jp_prefecture
55
+ requirement: !ruby/object:Gem::Requirement
56
+ requirements:
57
+ - - ">="
58
+ - !ruby/object:Gem::Version
59
+ version: '0'
60
+ type: :runtime
61
+ prerelease: false
62
+ version_requirements: !ruby/object:Gem::Requirement
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: '0'
67
+ - !ruby/object:Gem::Dependency
68
+ name: rails
69
+ requirement: !ruby/object:Gem::Requirement
70
+ requirements:
71
+ - - ">="
72
+ - !ruby/object:Gem::Version
73
+ version: 5.1.5
74
+ type: :development
75
+ prerelease: false
76
+ version_requirements: !ruby/object:Gem::Requirement
77
+ requirements:
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 5.1.5
81
+ - !ruby/object:Gem::Dependency
82
+ name: sqlite3
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - ">="
86
+ - !ruby/object:Gem::Version
87
+ version: '0'
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: !ruby/object:Gem::Requirement
91
+ requirements:
92
+ - - ">="
93
+ - !ruby/object:Gem::Version
94
+ version: '0'
95
+ description:
96
+ email:
97
+ - h-izumi@9uelle.jp
98
+ executables: []
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - CHANGELOG.md
103
+ - CODE_OF_CONDUCT.md
104
+ - MIT-LICENSE
105
+ - README.ja.md
106
+ - README.md
107
+ - app/models/jp_municipality/municipality.rb
108
+ - data/municipalities.csv
109
+ - db/migrate/20180226073252_create_municipalities.rb
110
+ - jp_municipality.gemspec
111
+ - lib/jp_municipality.rb
112
+ - lib/jp_municipality/engine.rb
113
+ - lib/jp_municipality/has_municipalities.rb
114
+ - lib/jp_municipality/has_municipality.rb
115
+ - lib/jp_municipality/version.rb
116
+ - lib/tasks/jp_municipality_tasks.rake
117
+ homepage: https://jpmunicipality.9uelle.jp/
118
+ licenses:
119
+ - MIT
120
+ metadata: {}
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: '0'
130
+ required_rubygems_version: !ruby/object:Gem::Requirement
131
+ requirements:
132
+ - - ">="
133
+ - !ruby/object:Gem::Version
134
+ version: '0'
135
+ requirements: []
136
+ rubyforge_project:
137
+ rubygems_version: 2.7.6
138
+ signing_key:
139
+ specification_version: 4
140
+ summary: JIS X 0402 (Identification code for cities, towns and villages) for Rails.
141
+ test_files: []