geo_master_jp 0.1.25 → 0.1.27

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: e37df4a089fc32f61b506648b3335984f8c1dce556e78d358e7e1c9a79ddb9aa
4
- data.tar.gz: 19fb76758bc175698394db53048286a7a1b9eaa453072a4115892d50cf5af75b
3
+ metadata.gz: bdbb79f24d837f43fc96dc1ddf04fe14bd43d1b234e9928d9e8435f3445f6216
4
+ data.tar.gz: 06a43b3aa8e7ac69bc00e1dfc8fa7df61e8f7fff830652be49febcceccf6e901
5
5
  SHA512:
6
- metadata.gz: f2d121d737c1f492d54175baff56f2f07218f8f6fe8ba04ddd83215809bac5cbc7416e9580f9b4452a3527dc87d70f3ec23b9dffb7d6fd73aa1395e967fc4ac2
7
- data.tar.gz: 254fd7458157d3b9ec67253f446d0c58d0edb459169f1ed35e3214c434206e8097cfe97438dc4591d62ad768a44c050f354ec1b71a9a959b0ebacc3d0bf2d2f0
6
+ metadata.gz: e994cc5ab019eed3de83acff48524e0cd97f1bb047f1313d816ac2951861a2455fb917af49fe7d2f05ad917295794dc7791f3f7f9a9c72e9ed9b6581c8d3e8ed
7
+ data.tar.gz: 355268293ef44ba5a4009cda8a951935b9bede0d82d20f1ac3efcff91d290db9b43ec94bd384e3a4ad62f4b2c8d0b858243e3e99e1254b8bbf878659a89d6c70
data/README.md CHANGED
@@ -45,6 +45,34 @@ rails g geo_master_jp:install_area_data
45
45
  rails g geo_master_jp:install_railway_data
46
46
  ```
47
47
 
48
+ ## Usage
49
+
50
+ ### Use Area Data Examples
51
+
52
+ ```ruby
53
+ prefectures = GeoMasterJp::Prefecture.all
54
+
55
+ tokyo = prefectures.find_by(code: '13')
56
+ cities = tokyo.cities
57
+
58
+ shinjuku = cities.find_by(code: '13104')
59
+ towns = shinjuku.towns
60
+ ```
61
+
62
+ ### Use Area Data API
63
+
64
+ Add the following line to your `config/routes.rb`:
65
+
66
+ ```ruby
67
+ GeoMasterJp.set_routes(self)
68
+ ```
69
+
70
+ Then you can use the following API:
71
+
72
+ - `/geo_master_jp/api/prefectures`
73
+ - `/geo_master_jp/api/cities?prefecture_code=13`
74
+ - `/geo_master_jp/api/towns?city_code=13104`
75
+
48
76
  ## Contributing
49
77
  Contribution directions go here.
50
78
 
@@ -0,0 +1,4 @@
1
+ module GeoMasterJp
2
+ class ApplicationController < ActionController::Base
3
+ end
4
+ end
@@ -0,0 +1,48 @@
1
+ module GeoMasterJp
2
+ class AreaApiController < ApplicationController
3
+ def prefectures
4
+ prefectures = GeoMasterJp::Prefecture.all
5
+
6
+ render json: {
7
+ prefectures: prefectures.map{|prefecture|
8
+ prefecture.as_json(only: [:code, :name, :name_kana, :name_alphabet, :short_name])
9
+ },
10
+ initials: prefectures.sort_by(&:name_kana).group_by(&:head_kana).sort_by(&:first).to_h
11
+ }
12
+ end
13
+
14
+ def cities
15
+ if params[:prefecture_code].blank?
16
+ return render json: {
17
+ message: 'prefecture_code is required.'
18
+ }, status: 400
19
+ end
20
+
21
+ cities = GeoMasterJp::Prefecture.find_by(code: params[:prefecture_code]).cities
22
+
23
+ render json: {
24
+ cities: cities.map{|city|
25
+ city.as_json(only: [:code, :name, :name_kana, :name_alphabet, :short_name])
26
+ },
27
+ initials: cities.sort_by(&:name_kana).group_by(&:head_kana).sort_by(&:first).to_h
28
+ }
29
+ end
30
+
31
+ def towns
32
+ if params[:city_code].blank?
33
+ return render json: {
34
+ message: 'city_code is required.'
35
+ }, status: 400
36
+ end
37
+
38
+ towns = GeoMasterJp::City.find_by(code: params[:city_code]).towns
39
+
40
+ render json: {
41
+ towns: towns.map{|town|
42
+ town.as_json(only: [:zip_code, :code, :name, :name_kana, :name_alphabet, :short_name])
43
+ },
44
+ initials: towns.sort_by(&:name_kana).group_by(&:head_kana).sort_by(&:first).to_h
45
+ }
46
+ end
47
+ end
48
+ end
@@ -17,5 +17,9 @@ module GeoMasterJp
17
17
 
18
18
  super
19
19
  end
20
+
21
+ def town_select_options
22
+ self.towns.map{|town| [town.name, town.code] }
23
+ end
20
24
  end
21
25
  end
@@ -17,5 +17,13 @@ module GeoMasterJp
17
17
 
18
18
  super
19
19
  end
20
+
21
+ def city_select_options
22
+ self.cities.map{|city| [city.name, city.code] }
23
+ end
24
+
25
+ def self.select_options
26
+ self.all.map{|prefecture| [prefecture.name, prefecture.code] }
27
+ end
20
28
  end
21
29
  end
data/config/routes.rb ADDED
@@ -0,0 +1,7 @@
1
+ GeoMasterJp::Engine.routes.draw do
2
+ scope :api, as: 'api' do
3
+ get 'prefectures', to: 'area_api#prefectures'
4
+ get 'cities', to: 'area_api#cities'
5
+ get 'towns', to: 'area_api#towns'
6
+ end
7
+ end
@@ -1,4 +1,12 @@
1
1
  module GeoMasterJp
2
+ def self.config
3
+ @config ||= GeoMasterJp::Config.new
4
+ end
5
+
6
+ def self.configure(&block)
7
+ yield(config) if block_given?
8
+ end
9
+
2
10
  class Config
3
11
  # Variables detail is writen in lib/generators/templates/geo_master_jp.rb.
4
12
  attr_accessor :alternative_class_names, :use_models
@@ -1,27 +1,12 @@
1
- require 'geo_master_jp/config'
2
1
  module GeoMasterJp
3
- def self.config
4
- @config ||= GeoMasterJp::Config.new
2
+ # GeoMasterJp用のroutingを設定する。
3
+ class Engine < ::Rails::Engine
4
+ isolate_namespace GeoMasterJp
5
5
  end
6
-
7
- def self.configure(&block)
8
- yield(config) if block_given?
6
+ def self.set_routes(rails_router)
7
+ rails_router.mount Engine, at: '/geo_master_jp'
9
8
  end
10
9
  end
11
10
 
12
- if GeoMasterJp.config.use_models.include?(:area)
13
- require 'geo_master_jp/models/prefecture'
14
- require 'geo_master_jp/models/city'
15
- require 'geo_master_jp/models/town'
16
- end
17
- if GeoMasterJp.config.use_models.include?(:railway)
18
- require 'geo_master_jp/models/railway_company'
19
- require 'geo_master_jp/models/line'
20
- require 'geo_master_jp/models/station'
21
- require 'geo_master_jp/models/station_connection'
22
- end
23
- require 'geo_master_jp/models/version'
24
-
25
11
  require 'active_record'
26
12
  require 'activerecord-import'
27
-
@@ -1,3 +1,3 @@
1
1
  module GeoMasterJp
2
- VERSION = '0.1.25'
2
+ VERSION = '0.1.27'
3
3
  end
data/lib/geo_master_jp.rb CHANGED
@@ -1,4 +1,5 @@
1
1
  require "geo_master_jp/railtie"
2
+ require "geo_master_jp/config"
2
3
  require "geo_master_jp/engine"
3
4
  require "geo_master_jp/association_helper"
4
5
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: geo_master_jp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.25
4
+ version: 0.1.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - ykogure
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-11-02 00:00:00.000000000 Z
11
+ date: 2023-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -90,6 +90,17 @@ files:
90
90
  - MIT-LICENSE
91
91
  - README.md
92
92
  - Rakefile
93
+ - app/controllers/geo_master_jp/application_controller.rb
94
+ - app/controllers/geo_master_jp/area_api_controller.rb
95
+ - app/models/geo_master_jp/city.rb
96
+ - app/models/geo_master_jp/line.rb
97
+ - app/models/geo_master_jp/prefecture.rb
98
+ - app/models/geo_master_jp/railway_company.rb
99
+ - app/models/geo_master_jp/station.rb
100
+ - app/models/geo_master_jp/station_connection.rb
101
+ - app/models/geo_master_jp/town.rb
102
+ - app/models/geo_master_jp/version.rb
103
+ - config/routes.rb
93
104
  - lib/generators/geo_master_jp/data/company20180424.csv.zip
94
105
  - lib/generators/geo_master_jp/data/join20190405.csv.zip
95
106
  - lib/generators/geo_master_jp/data/line20190405free.csv.zip
@@ -112,14 +123,6 @@ files:
112
123
  - lib/geo_master_jp/association_helper.rb
113
124
  - lib/geo_master_jp/config.rb
114
125
  - lib/geo_master_jp/engine.rb
115
- - lib/geo_master_jp/models/city.rb
116
- - lib/geo_master_jp/models/line.rb
117
- - lib/geo_master_jp/models/prefecture.rb
118
- - lib/geo_master_jp/models/railway_company.rb
119
- - lib/geo_master_jp/models/station.rb
120
- - lib/geo_master_jp/models/station_connection.rb
121
- - lib/geo_master_jp/models/town.rb
122
- - lib/geo_master_jp/models/version.rb
123
126
  - lib/geo_master_jp/railtie.rb
124
127
  - lib/geo_master_jp/version.rb
125
128
  - lib/tasks/geo_master_jp_tasks.rake