mexican-states 0.1.2 → 0.2.1

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
  SHA1:
3
- metadata.gz: fdf2855e1d844aaf6c1ce9552d90e01eb5ae17a2
4
- data.tar.gz: d1210642482962b2471ccba92641a4f6dfd32888
3
+ metadata.gz: ddab572959e65a7bdd5776a20b92a293371685c3
4
+ data.tar.gz: adc5f9c5a668d2c3e257ec0cd9f3d25625dba901
5
5
  SHA512:
6
- metadata.gz: 1a481b8597f5ab122d7f8cdb5415b8740f807e1123eb1f1791d322c1dd188a72f7c230b686061006df0aeb6eed2b4c6588f3d580dd468a234a2f4df86f590b38
7
- data.tar.gz: a0b35e62dfd5e9512562207496b4a5559cd31f7773d6a13cb72eac0a2aef4436a3b23fb99a43deeaaa67026c6bc5327ed0053f0a40bc015c910fb32e7e9e85e9
6
+ metadata.gz: d3752d7a2e1aa3a0450e7881a24c5c2d25e3c11e228547b4f6538b5af91fc19125c6600456cf4762a4c9feec77e8818978dbca25ac0682be37e31d8b3ac6b4d2
7
+ data.tar.gz: 2374f145c48bc44cddf983b8bdb8d0177cfb5d7c07fb6774415229459f5984e86ad4ce0003007bade4ace8a122a8b3c85592ed4cb6fba06890555dd8bb9b0a32
@@ -1,6 +1,5 @@
1
1
  require 'rails/generators'
2
2
  require 'rails/generators/migration'
3
- require 'csv'
4
3
 
5
4
  module Mexican
6
5
  # States module
@@ -34,29 +33,6 @@ module Mexican
34
33
  copy_file './models/city.rb', 'app/models/city.rb'
35
34
  copy_file './models/neighborhood.rb', 'app/models/neighborhood.rb'
36
35
  end
37
-
38
- desc 'Seed models'
39
- def seed_models
40
- root = File.expand_path '../../../../support/', __FILE__
41
- Dir.glob(root + '/*.csv') do |rb_file|
42
- save_datum(File.join(rb_file))
43
- end
44
- end
45
-
46
- private
47
-
48
- def save_datum(file)
49
- CSV.foreach(file) do |row|
50
- city_name = row[2]
51
- neighborhood_name = row[1]
52
- neighborhood_zip_code = row[0]
53
- state = State.find_or_create_by(name: row[3])
54
- city = City.find_or_create_by(name: city_name, state_id: state.id)
55
- Neighborhood.find_or_create_by(name: neighborhood_name,
56
- zip_code: neighborhood_zip_code,
57
- city_id: city.id)
58
- end
59
- end
60
36
  end
61
37
  end
62
38
  end
@@ -0,0 +1,38 @@
1
+ require 'rails/generators'
2
+ require 'csv'
3
+
4
+ module Mexican
5
+ # States module
6
+ module States
7
+ # Seed generator class
8
+ class SeedGenerator < ::Rails::Generators::Base
9
+ include Rails::Generators::Migration
10
+
11
+ source_root File.expand_path('../../../templates/active_record/',
12
+ __FILE__)
13
+ desc 'Seed models'
14
+ def seed_models
15
+ root = File.expand_path '../../../../support/', __FILE__
16
+ Dir.glob(root + '/*.csv') do |rb_file|
17
+ save_datum(File.join(rb_file))
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def save_datum(file)
24
+ CSV.foreach(file) do |row|
25
+ city_name = row[2]
26
+ neighborhood_name = row[1]
27
+ neighborhood_zip_code = row[0]
28
+ state = State.find_or_create_by(name: row[3])
29
+ city = City.find_or_create_by(name: city_name, state_id: state.id)
30
+ Neighborhood.find_or_create_by(name: neighborhood_name,
31
+ zip_code: neighborhood_zip_code,
32
+ state_id: state.id,
33
+ city_id: city.id)
34
+ end
35
+ end
36
+ end
37
+ end
38
+ end
@@ -2,8 +2,13 @@
2
2
  # name:string
3
3
  # zip_code:string
4
4
  # city_id:integer
5
+ # state_id:integer
5
6
  class Neighborhood < ActiveRecord::Base
6
7
  validates :name, :zip_code, presence: true
8
+
9
+ belongs_to :city
7
10
  belongs_to :state
8
- has_many :neighborhoods
11
+
12
+ delegate :name, to: :city, prefix: true
13
+ delegate :name, to: :state, prefix: true
9
14
  end
@@ -3,4 +3,5 @@
3
3
  class State < ActiveRecord::Base
4
4
  validates :name, presence: true
5
5
  has_many :cities
6
+ has_many :neighborhoods
6
7
  end
@@ -5,6 +5,7 @@ class CreateNeighborhoods < ActiveRecord::Migration
5
5
  t.string :name
6
6
  t.string :zip_code
7
7
  t.references :city, index: true, foreign_key: true
8
+ t.references :state, index: true, foreign_key: true
8
9
 
9
10
  t.timestamps null: false
10
11
  end
@@ -1,5 +1,5 @@
1
1
  module Mexican
2
2
  module States
3
- VERSION = '0.1.2'.freeze
3
+ VERSION = '0.2.1'.freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mexican-states
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Omana
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2016-10-19 00:00:00.000000000 Z
11
+ date: 2016-10-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -70,6 +70,7 @@ files:
70
70
  - bin/console
71
71
  - bin/setup
72
72
  - lib/generators/mexican/states/install_generator.rb
73
+ - lib/generators/mexican/states/seed_generator.rb
73
74
  - lib/generators/templates/active_record/models/city.rb
74
75
  - lib/generators/templates/active_record/models/neighborhood.rb
75
76
  - lib/generators/templates/active_record/models/state.rb