chinese_regions_rails 0.0.2.rc1

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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 869404e06d0cdeab7beb3396f12edc2b2044fa45
4
+ data.tar.gz: e22fedd70b26d1ba507e3dc14d504c104ab8f62b
5
+ SHA512:
6
+ metadata.gz: 17a7760767a5e08d1153b02d7bd482c99f3f89dd9ecdadecdb1c44d0cc74b34ac06a0e4b41d0b8c30d609538a62508acf32ae842373d1855771565a408caa63b
7
+ data.tar.gz: 9b8943c5fabf36f4cecd44b23a1132a4b8c5a35cd4abfdb960086c2e784026dd107c15077a08aef17a7d6fff9d0dc46a91ce768daeaadb7ac1492c594e88ce72
data/Gemfile ADDED
@@ -0,0 +1,10 @@
1
+ source "http://ruby.taobao.org"
2
+
3
+ gemspec
4
+
5
+ gem "rails", "~> 3.2.0"
6
+ gem "sqlite3"
7
+
8
+ group :test do
9
+ gem 'rspec'
10
+ end
@@ -0,0 +1,24 @@
1
+ # chinese_regions_rails
2
+
3
+ 中国省市区县数据库,包含 行政编码,邮政编码,地区拼音和简拼。 数据来源 https://github.com/xixilive/chinese_regions_db
4
+
5
+ ## 使用
6
+
7
+ Gemfile
8
+
9
+ ```
10
+ gem 'chinese_regions_rails'
11
+ ```
12
+
13
+ generate `Region` model
14
+
15
+ ```
16
+ rails g chinese_regions:install
17
+ ```
18
+
19
+ db migration and seed
20
+
21
+ ```
22
+ rake db:migrate
23
+ rake db:seed:regions
24
+ ```
@@ -0,0 +1,11 @@
1
+ require "bundler/gem_tasks"
2
+ require "rspec/core/rake_task"
3
+
4
+ Dir['lib/tasks/*.rake'].each { |rake| load rake }
5
+
6
+ RSpec::Core::RakeTask.new do |t|
7
+ t.pattern = "spec/chinese_regions_rails/**/*_spec.rb"
8
+ end
9
+
10
+ task :default => :spec
11
+ task :test => :spec
@@ -0,0 +1,6 @@
1
+ require "chinese_regions_rails/version"
2
+ require "chinese_regions_rails/db"
3
+
4
+ module ChineseRegionsRails
5
+ require "chinese_regions_rails/railtie" if defined?(Rails)
6
+ end
@@ -0,0 +1,32 @@
1
+ require "sqlite3"
2
+
3
+ module ChineseRegionsRails
4
+ class DB
5
+
6
+ class << self
7
+
8
+ def query_regions
9
+ db.execute("select * from regions") do |row|
10
+ hash = {code: row[0],
11
+ parent_code: row[1],
12
+ name: row[2],
13
+ alias: row[3],
14
+ pinyin: row[4],
15
+ abbr: row[5],
16
+ zip: row[6],
17
+ level: row[7]
18
+ }
19
+
20
+ yield(hash) if block_given?
21
+ end
22
+ end
23
+
24
+ def db
25
+ db_file = File.expand_path("../../regions.db", __FILE__)
26
+ db = SQLite3::Database.new db_file
27
+ db
28
+ end
29
+
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,12 @@
1
+ require "rails"
2
+
3
+ module ChineseRegionsRails
4
+
5
+ class Railtie < Rails::Railtie
6
+ rake_tasks do
7
+ # 加载 /lib/tasks/***.rake 文件
8
+ Dir[File.join(File.dirname(__FILE__), '../tasks/*.rake')].each { |f| load f }
9
+ end
10
+ end
11
+
12
+ end
@@ -0,0 +1,3 @@
1
+ module ChineseRegionsRails
2
+ VERSION = '0.0.2.rc1'
3
+ end
@@ -0,0 +1,14 @@
1
+ require "rails/generators"
2
+
3
+ module ChineseRegions
4
+ class InstallGenerator < Rails::Generators::Base
5
+
6
+ desc "Generate region model. Default model name is 'Region'"
7
+
8
+ def install
9
+ class_name = "region"
10
+ generate "model", "#{class_name} code:string parent_code:string name:string alias:string pinyin:string abbr:string zip:string level:integer"
11
+ end
12
+
13
+ end
14
+ end
Binary file
@@ -0,0 +1,32 @@
1
+ # default model regions
2
+ # rake db:seed:regions
3
+
4
+ # TODO: rake db:seed:regions xxx_regions
5
+ # custom model to xxx_regions
6
+ require 'active_support/core_ext/string/inflections'
7
+ require "chinese_regions_rails"
8
+
9
+ namespace :db do
10
+
11
+ namespace :seed do
12
+ # TODO: reseed
13
+
14
+ desc "seed regions data to db"
15
+ task regions: :environment do
16
+ args ||= {}
17
+ args[:model_class] = 'region'
18
+ region_class = args[:model_class].classify.constantize
19
+
20
+ ChineseRegionsRails::DB.query_regions do |region_param|
21
+ region_class.create(region_param)
22
+ end
23
+
24
+ puts "insert regions"
25
+ puts "total : #{format("%4d", region_class.count)}"
26
+ (1..3).each do |level|
27
+ puts "level #{level}: #{format("%4d", region_class.where(level: level).count)}"
28
+ end
29
+ end
30
+ end
31
+
32
+ end
@@ -0,0 +1,16 @@
1
+ require "helper"
2
+
3
+ require "chinese_regions_rails/db"
4
+
5
+ describe "db" do
6
+ it "db" do
7
+ db = ChineseRegionsRails::DB.db
8
+ expect(db).to be_truthy
9
+ end
10
+
11
+ it "query regions" do
12
+ ChineseRegionsRails::DB.query_regions do |region_param|
13
+ expect(region_param).to be_truthy
14
+ end
15
+ end
16
+ end
@@ -0,0 +1 @@
1
+ require 'rspec'
metadata ADDED
@@ -0,0 +1,91 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: chinese_regions_rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2.rc1
5
+ platform: ruby
6
+ authors:
7
+ - Basten Gao
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2014-06-24 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '3.2'
20
+ - - <
21
+ - !ruby/object:Gem::Version
22
+ version: '5'
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: !ruby/object:Gem::Requirement
26
+ requirements:
27
+ - - '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '3.2'
30
+ - - <
31
+ - !ruby/object:Gem::Version
32
+ version: '5'
33
+ - !ruby/object:Gem::Dependency
34
+ name: sqlite3
35
+ requirement: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ~>
38
+ - !ruby/object:Gem::Version
39
+ version: '1.3'
40
+ type: :runtime
41
+ prerelease: false
42
+ version_requirements: !ruby/object:Gem::Requirement
43
+ requirements:
44
+ - - ~>
45
+ - !ruby/object:Gem::Version
46
+ version: '1.3'
47
+ description: 中国省市区县数据库,包含 行政编码,邮政编码,地区拼音和简拼。 数据来源 https://github.com/xixilive/chinese_regions_db
48
+ email: bastengao@gmail.com
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - Gemfile
54
+ - README.md
55
+ - Rakefile
56
+ - lib/chinese_regions_rails.rb
57
+ - lib/chinese_regions_rails/db.rb
58
+ - lib/chinese_regions_rails/railtie.rb
59
+ - lib/chinese_regions_rails/version.rb
60
+ - lib/generators/chinese_regions/install_generator.rb
61
+ - lib/regions.db
62
+ - lib/tasks/seed.rake
63
+ - spec/chinese_regions_rails/db_spec.rb
64
+ - spec/helper.rb
65
+ homepage: https://github.com/bastengao/chinese_regions_rails
66
+ licenses:
67
+ - MIT
68
+ metadata: {}
69
+ post_install_message:
70
+ rdoc_options: []
71
+ require_paths:
72
+ - lib
73
+ required_ruby_version: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - '>='
76
+ - !ruby/object:Gem::Version
77
+ version: 1.9.3
78
+ required_rubygems_version: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - '>='
81
+ - !ruby/object:Gem::Version
82
+ version: 1.8.11
83
+ requirements: []
84
+ rubyforge_project:
85
+ rubygems_version: 2.2.2
86
+ signing_key:
87
+ specification_version: 4
88
+ summary: 中国省市区县数据库
89
+ test_files:
90
+ - spec/chinese_regions_rails/db_spec.rb
91
+ - spec/helper.rb