my_zipcode_gem 0.1.4 → 0.2.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 +4 -4
- data/.travis.yml +19 -0
- data/Gemfile +22 -2
- data/features/step_definitions/common_steps.rb +1 -1
- data/features/step_definitions/rails_setup_steps.rb +1 -1
- data/features/support/env.rb +2 -0
- data/features/zipcodes.feature +1 -1
- data/lib/generators/my_zipcode_gem/models_generator.rb +10 -10
- data/lib/generators/my_zipcode_gem/templates/county_model.rb +2 -1
- data/lib/generators/my_zipcode_gem/templates/state_model.rb +2 -1
- data/lib/generators/my_zipcode_gem/templates/zipcode_model.rb +4 -4
- data/lib/generators/my_zipcode_gem/templates/zipcodes.rake +3 -3
- data/lib/generators/my_zipcode_gem/version.rb +1 -1
- data/my_zipcode_gem.gemspec +1 -10
- data/rails3_2.gemfile +21 -0
- data/rails4_0.gemfile +23 -0
- data/rails4_1.gemfile +23 -0
- metadata +12 -120
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 70c300c19c90f28c2ac614a2795c600bfb3f0d4d
|
4
|
+
data.tar.gz: 671303664dee6662adbd54f57ab3b8d9f3046f41
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1a36d6a90fea133bbd531fc0e9d7faa98c9e5f12a0e534b1babd12fa1a8aa317aff7b8d8781771c8e468e426c3119b22fc931f7557ce08a08cf1622c7d7a0215
|
7
|
+
data.tar.gz: 704517c8c1140868b71af6203cacb6ad77e3f96d9125a24d6d83b8c0249bba85362f6b3b9c1bd8308c7e6fb963ca31ec463cf0c1379c9ee00bfcb4e36366e00c
|
data/.travis.yml
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
language: ruby
|
2
|
+
bundler_args: --without development
|
3
|
+
rvm:
|
4
|
+
- 1.9.3
|
5
|
+
- 2.0
|
6
|
+
- 2.1
|
7
|
+
|
8
|
+
before_script:
|
9
|
+
# - psql -c 'create database my_zipcode_gem_test;' -U postgres
|
10
|
+
# - mysql -e 'create database my_zipcode_gem_test;'
|
11
|
+
|
12
|
+
gemfile:
|
13
|
+
- rails3_2.gemfile
|
14
|
+
- rails4_0.gemfile
|
15
|
+
- rails4_1.gemfile
|
16
|
+
|
17
|
+
branches:
|
18
|
+
only:
|
19
|
+
- master
|
data/Gemfile
CHANGED
@@ -1,4 +1,24 @@
|
|
1
|
-
source
|
1
|
+
source 'https://rubygems.org'
|
2
2
|
|
3
|
-
# Specify your gem's dependencies in my_zipcode_gem.gemspec
|
4
3
|
gemspec
|
4
|
+
|
5
|
+
# jquery-rails is used by the dummy application
|
6
|
+
gem 'jquery-rails'
|
7
|
+
gem 'sqlite3'
|
8
|
+
gem 'mysql2'
|
9
|
+
gem 'pg'
|
10
|
+
|
11
|
+
group :development do
|
12
|
+
gem 'midwire_common'
|
13
|
+
end
|
14
|
+
|
15
|
+
group :test do
|
16
|
+
gem 'capybara'
|
17
|
+
gem 'guard-rspec'
|
18
|
+
gem 'guard-spork'
|
19
|
+
gem 'shoulda', '~> 3.5'
|
20
|
+
gem 'rspec', '~> 2.12'
|
21
|
+
gem 'rspec-rails', '~> 2.12'
|
22
|
+
gem 'cucumber'
|
23
|
+
gem 'cucumber-rails', '~> 1.3.0', require: false
|
24
|
+
end
|
@@ -65,7 +65,7 @@ Then(/^I should see (\d+) records in the "([^\"]*)" table$/) do |count, table_na
|
|
65
65
|
FileUtils.chdir(@current_directory)
|
66
66
|
ActiveRecord::Base.establish_connection(
|
67
67
|
:adapter => 'sqlite3',
|
68
|
-
:database => "db/
|
68
|
+
:database => "db/test.sqlite3",
|
69
69
|
:pool => 5,
|
70
70
|
:timeout => 5000
|
71
71
|
)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
Given(/^a new Rails app$/) do
|
2
2
|
FileUtils.rm_rf "tmp/rails_app"
|
3
3
|
FileUtils.mkdir_p("tmp")
|
4
|
-
system("rails new tmp/rails_app").should be_true
|
4
|
+
system("rails new tmp/rails_app -T --no-rc").should be_true
|
5
5
|
system("ln -s ../../../lib/generators tmp/rails_app/lib/generators").should be_true
|
6
6
|
@current_directory = File.expand_path("tmp/rails_app")
|
7
7
|
end
|
data/features/support/env.rb
CHANGED
data/features/zipcodes.feature
CHANGED
@@ -13,7 +13,7 @@ Feature: My Zipcode Gem
|
|
13
13
|
| app/models/county.rb |
|
14
14
|
| lib/tasks/zipcodes.rake |
|
15
15
|
| db/migrate |
|
16
|
-
And I should see "gem "mocha"
|
16
|
+
And I should see "gem "mocha"" in file "Gemfile"
|
17
17
|
And I should successfully run "rake db:migrate"
|
18
18
|
|
19
19
|
Scenario: Update data for zipcodes, counties and states tables
|
@@ -3,19 +3,20 @@ module MyZipcodeGem
|
|
3
3
|
include Rails::Generators::Migration
|
4
4
|
|
5
5
|
source_root File.expand_path('../templates', __FILE__)
|
6
|
-
|
6
|
+
|
7
7
|
def initialize(*args, &block)
|
8
8
|
super
|
9
|
+
migration_template 'migration.rb', "db/migrate/create_my_zipcode_gem_models.rb"
|
9
10
|
end
|
10
11
|
|
11
12
|
def generate_models
|
12
13
|
# puts ">>> generate_zipcodes:"
|
13
14
|
end
|
14
|
-
|
15
|
+
|
15
16
|
def add_gems
|
16
17
|
add_gem "mocha", :group => :test
|
17
18
|
end
|
18
|
-
|
19
|
+
|
19
20
|
def create_models
|
20
21
|
template 'zipcode_model.rb', "app/models/zipcode.rb"
|
21
22
|
template 'county_model.rb', "app/models/county.rb"
|
@@ -31,16 +32,15 @@ module MyZipcodeGem
|
|
31
32
|
"%.3d" % (current_migration_number(dirname) + 1)
|
32
33
|
end
|
33
34
|
end
|
34
|
-
|
35
|
-
def
|
36
|
-
|
35
|
+
|
36
|
+
def create_zipcode_migration
|
37
|
+
destination_file = "db/migrate/create_my_zipcode_gem_models.rb"
|
38
|
+
migration_template "migration.rb", destination_file
|
37
39
|
end
|
38
|
-
|
40
|
+
|
39
41
|
def create_rakefile
|
40
42
|
template 'zipcodes.rake', "lib/tasks/zipcodes.rake"
|
41
43
|
end
|
42
|
-
|
44
|
+
|
43
45
|
end
|
44
46
|
end
|
45
|
-
|
46
|
-
# /Users/cblackburn/.rvm/gems/ruby-1.9.2-p136/gems/activerecord-3.0.3/lib/rails/generators/active_record/
|
@@ -7,13 +7,13 @@ class Zipcode < ActiveRecord::Base
|
|
7
7
|
validates :code, :uniqueness => true, :presence => true
|
8
8
|
validates :state_id, :county_id, :city, :presence => true
|
9
9
|
|
10
|
-
scope :without_county, where("county_id IS NULL")
|
11
|
-
scope :without_state, where("state_id IS NULL")
|
12
|
-
scope :ungeocoded, where("lat IS NULL OR lon IS NULL")
|
10
|
+
scope :without_county, -> { where("county_id IS NULL") }
|
11
|
+
scope :without_state, -> { where("state_id IS NULL") }
|
12
|
+
scope :ungeocoded, -> { where("lat IS NULL OR lon IS NULL") }
|
13
13
|
|
14
14
|
class << self
|
15
15
|
def find_by_city_state(city, state)
|
16
|
-
|
16
|
+
includes(:county => :state).where("city like '#{city}%' AND states.abbr like '%#{state}%'").first
|
17
17
|
end
|
18
18
|
end
|
19
19
|
|
@@ -18,7 +18,7 @@ namespace :zipcodes do
|
|
18
18
|
end
|
19
19
|
CSV.foreach(file.path, :headers => true) do |row|
|
20
20
|
puts "Updating state: [#{row['name']}]"
|
21
|
-
state = State.
|
21
|
+
state = State.where(abbr: row['abbr']).first_or_initialize
|
22
22
|
state.update_attribute(:name, row['name'])
|
23
23
|
end
|
24
24
|
data.close
|
@@ -43,7 +43,7 @@ namespace :zipcodes do
|
|
43
43
|
puts "Updating county: [#{row['name']}]"
|
44
44
|
# lookup state
|
45
45
|
state = State.find_by_abbr!(row['state'])
|
46
|
-
county = County.
|
46
|
+
county = County.where(name: row['name'], state_id: state.to_param).first_or_initialize
|
47
47
|
county.update_attribute(:county_seat, row['county_seat'])
|
48
48
|
end
|
49
49
|
data.close
|
@@ -75,7 +75,7 @@ namespace :zipcodes do
|
|
75
75
|
puts ">>>> No county found for zipcode: [#{row['code']}], '#{row['city']}, #{row['state']}, #{row['county']}... SKIPPING..."
|
76
76
|
next
|
77
77
|
end
|
78
|
-
zipcode = Zipcode.
|
78
|
+
zipcode = Zipcode.where(code: row['code']).first_or_initialize
|
79
79
|
zipcode.update_attributes!(
|
80
80
|
:city => row['city'].titleize,
|
81
81
|
:state_id => state.to_param,
|
data/my_zipcode_gem.gemspec
CHANGED
@@ -21,14 +21,5 @@ Gem::Specification.new do |s|
|
|
21
21
|
s.require_paths = ["lib"]
|
22
22
|
|
23
23
|
s.add_dependency('rails', '>= 3.0.0')
|
24
|
-
s.add_dependency('
|
25
|
-
|
26
|
-
s.add_development_dependency('sqlite3-ruby')
|
27
|
-
s.add_development_dependency('shoulda', '2.11.3')
|
28
|
-
s.add_development_dependency('rspec')
|
29
|
-
s.add_development_dependency('rspec-rails')
|
30
|
-
s.add_development_dependency('cucumber')
|
31
|
-
s.add_development_dependency('cucumber-rails')
|
32
|
-
s.add_development_dependency('pry') # For local debugging
|
33
|
-
s.add_development_dependency('midwire_common') # For rake release task
|
24
|
+
s.add_dependency('memoist', '~> 0.11.0')
|
34
25
|
end
|
data/rails3_2.gemfile
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
gem 'rails', '~> 3.2.0'
|
5
|
+
|
6
|
+
# jquery-rails is used by the dummy application
|
7
|
+
gem 'jquery-rails'
|
8
|
+
gem 'sqlite3'
|
9
|
+
gem 'mysql2'
|
10
|
+
gem 'pg'
|
11
|
+
|
12
|
+
group :test do
|
13
|
+
gem 'capybara', '~> 2.0.2'
|
14
|
+
gem 'guard-rspec'
|
15
|
+
gem 'guard-spork'
|
16
|
+
gem 'shoulda', '~> 3.5.0'
|
17
|
+
gem 'rspec'
|
18
|
+
gem 'rspec-rails', '~> 2.12.0'
|
19
|
+
gem 'cucumber'
|
20
|
+
gem 'cucumber-rails', '~> 1.3.0', require: false
|
21
|
+
end
|
data/rails4_0.gemfile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
gem 'rails', '~> 4.0.0'
|
5
|
+
|
6
|
+
gem 'protected_attributes'
|
7
|
+
|
8
|
+
# jquery-rails is used by the dummy application
|
9
|
+
gem 'jquery-rails'
|
10
|
+
gem 'sqlite3'
|
11
|
+
gem 'mysql2'
|
12
|
+
gem 'pg'
|
13
|
+
|
14
|
+
group :test do
|
15
|
+
gem 'capybara', '~> 2.0.2'
|
16
|
+
gem 'guard-rspec'
|
17
|
+
gem 'guard-spork'
|
18
|
+
gem 'shoulda', '~> 3.5.0'
|
19
|
+
gem 'rspec'
|
20
|
+
gem 'rspec-rails', '~> 2.12.0'
|
21
|
+
gem 'cucumber'
|
22
|
+
gem 'cucumber-rails', '~> 1.3.0', require: false
|
23
|
+
end
|
data/rails4_1.gemfile
ADDED
@@ -0,0 +1,23 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
gemspec
|
4
|
+
gem 'rails', '~> 4.1.0'
|
5
|
+
|
6
|
+
gem 'protected_attributes'
|
7
|
+
|
8
|
+
# jquery-rails is used by the dummy application
|
9
|
+
gem 'jquery-rails'
|
10
|
+
gem 'sqlite3'
|
11
|
+
gem 'mysql2'
|
12
|
+
gem 'pg'
|
13
|
+
|
14
|
+
group :test do
|
15
|
+
gem 'capybara', '~> 2.0.2'
|
16
|
+
gem 'guard-rspec'
|
17
|
+
gem 'guard-spork'
|
18
|
+
gem 'shoulda', '~> 3.5.0'
|
19
|
+
gem 'rspec'
|
20
|
+
gem 'rspec-rails', '~> 2.12.0'
|
21
|
+
gem 'cucumber'
|
22
|
+
gem 'cucumber-rails', '~> 1.3.0', require: false
|
23
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: my_zipcode_gem
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Chris Blackburn
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2017-01-03 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|
@@ -26,131 +26,19 @@ dependencies:
|
|
26
26
|
- !ruby/object:Gem::Version
|
27
27
|
version: 3.0.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
|
-
name:
|
29
|
+
name: memoist
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
31
31
|
requirements:
|
32
|
-
- -
|
32
|
+
- - "~>"
|
33
33
|
- !ruby/object:Gem::Version
|
34
|
-
version:
|
34
|
+
version: 0.11.0
|
35
35
|
type: :runtime
|
36
36
|
prerelease: false
|
37
37
|
version_requirements: !ruby/object:Gem::Requirement
|
38
38
|
requirements:
|
39
|
-
- -
|
39
|
+
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
|
-
version:
|
42
|
-
- !ruby/object:Gem::Dependency
|
43
|
-
name: sqlite3-ruby
|
44
|
-
requirement: !ruby/object:Gem::Requirement
|
45
|
-
requirements:
|
46
|
-
- - ">="
|
47
|
-
- !ruby/object:Gem::Version
|
48
|
-
version: '0'
|
49
|
-
type: :development
|
50
|
-
prerelease: false
|
51
|
-
version_requirements: !ruby/object:Gem::Requirement
|
52
|
-
requirements:
|
53
|
-
- - ">="
|
54
|
-
- !ruby/object:Gem::Version
|
55
|
-
version: '0'
|
56
|
-
- !ruby/object:Gem::Dependency
|
57
|
-
name: shoulda
|
58
|
-
requirement: !ruby/object:Gem::Requirement
|
59
|
-
requirements:
|
60
|
-
- - '='
|
61
|
-
- !ruby/object:Gem::Version
|
62
|
-
version: 2.11.3
|
63
|
-
type: :development
|
64
|
-
prerelease: false
|
65
|
-
version_requirements: !ruby/object:Gem::Requirement
|
66
|
-
requirements:
|
67
|
-
- - '='
|
68
|
-
- !ruby/object:Gem::Version
|
69
|
-
version: 2.11.3
|
70
|
-
- !ruby/object:Gem::Dependency
|
71
|
-
name: rspec
|
72
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
-
requirements:
|
74
|
-
- - ">="
|
75
|
-
- !ruby/object:Gem::Version
|
76
|
-
version: '0'
|
77
|
-
type: :development
|
78
|
-
prerelease: false
|
79
|
-
version_requirements: !ruby/object:Gem::Requirement
|
80
|
-
requirements:
|
81
|
-
- - ">="
|
82
|
-
- !ruby/object:Gem::Version
|
83
|
-
version: '0'
|
84
|
-
- !ruby/object:Gem::Dependency
|
85
|
-
name: rspec-rails
|
86
|
-
requirement: !ruby/object:Gem::Requirement
|
87
|
-
requirements:
|
88
|
-
- - ">="
|
89
|
-
- !ruby/object:Gem::Version
|
90
|
-
version: '0'
|
91
|
-
type: :development
|
92
|
-
prerelease: false
|
93
|
-
version_requirements: !ruby/object:Gem::Requirement
|
94
|
-
requirements:
|
95
|
-
- - ">="
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
version: '0'
|
98
|
-
- !ruby/object:Gem::Dependency
|
99
|
-
name: cucumber
|
100
|
-
requirement: !ruby/object:Gem::Requirement
|
101
|
-
requirements:
|
102
|
-
- - ">="
|
103
|
-
- !ruby/object:Gem::Version
|
104
|
-
version: '0'
|
105
|
-
type: :development
|
106
|
-
prerelease: false
|
107
|
-
version_requirements: !ruby/object:Gem::Requirement
|
108
|
-
requirements:
|
109
|
-
- - ">="
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
112
|
-
- !ruby/object:Gem::Dependency
|
113
|
-
name: cucumber-rails
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
115
|
-
requirements:
|
116
|
-
- - ">="
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '0'
|
119
|
-
type: :development
|
120
|
-
prerelease: false
|
121
|
-
version_requirements: !ruby/object:Gem::Requirement
|
122
|
-
requirements:
|
123
|
-
- - ">="
|
124
|
-
- !ruby/object:Gem::Version
|
125
|
-
version: '0'
|
126
|
-
- !ruby/object:Gem::Dependency
|
127
|
-
name: pry
|
128
|
-
requirement: !ruby/object:Gem::Requirement
|
129
|
-
requirements:
|
130
|
-
- - ">="
|
131
|
-
- !ruby/object:Gem::Version
|
132
|
-
version: '0'
|
133
|
-
type: :development
|
134
|
-
prerelease: false
|
135
|
-
version_requirements: !ruby/object:Gem::Requirement
|
136
|
-
requirements:
|
137
|
-
- - ">="
|
138
|
-
- !ruby/object:Gem::Version
|
139
|
-
version: '0'
|
140
|
-
- !ruby/object:Gem::Dependency
|
141
|
-
name: midwire_common
|
142
|
-
requirement: !ruby/object:Gem::Requirement
|
143
|
-
requirements:
|
144
|
-
- - ">="
|
145
|
-
- !ruby/object:Gem::Version
|
146
|
-
version: '0'
|
147
|
-
type: :development
|
148
|
-
prerelease: false
|
149
|
-
version_requirements: !ruby/object:Gem::Requirement
|
150
|
-
requirements:
|
151
|
-
- - ">="
|
152
|
-
- !ruby/object:Gem::Version
|
153
|
-
version: '0'
|
41
|
+
version: 0.11.0
|
154
42
|
description: A Ruby gem for looking up and manipulating US postal codes and geocodes.
|
155
43
|
email:
|
156
44
|
- chris [at] midwiretech [dot] com
|
@@ -160,6 +48,7 @@ extensions: []
|
|
160
48
|
extra_rdoc_files: []
|
161
49
|
files:
|
162
50
|
- ".gitignore"
|
51
|
+
- ".travis.yml"
|
163
52
|
- Gemfile
|
164
53
|
- MIT-LICENSE
|
165
54
|
- README.textile
|
@@ -178,6 +67,9 @@ files:
|
|
178
67
|
- lib/generators/my_zipcode_gem/version.rb
|
179
68
|
- lib/my_zipcode_gem.rb
|
180
69
|
- my_zipcode_gem.gemspec
|
70
|
+
- rails3_2.gemfile
|
71
|
+
- rails4_0.gemfile
|
72
|
+
- rails4_1.gemfile
|
181
73
|
homepage: https://github.com/midwire/my_zipcode_gem
|
182
74
|
licenses:
|
183
75
|
- MIT
|
@@ -198,7 +90,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
198
90
|
version: '0'
|
199
91
|
requirements: []
|
200
92
|
rubyforge_project: my_zipcode_gem
|
201
|
-
rubygems_version: 2.
|
93
|
+
rubygems_version: 2.5.1
|
202
94
|
signing_key:
|
203
95
|
specification_version: 4
|
204
96
|
summary: A Ruby gem to handle all things zipcode.
|