my_zipcode_gem 0.1.4 → 0.2.0

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: 7d3ec6ac0913b1985b5a253854cc8dcd8ca4a368
4
- data.tar.gz: 0bfdcd2e8f58e7331d6f3c10a59b069e8e0777d2
3
+ metadata.gz: 70c300c19c90f28c2ac614a2795c600bfb3f0d4d
4
+ data.tar.gz: 671303664dee6662adbd54f57ab3b8d9f3046f41
5
5
  SHA512:
6
- metadata.gz: 0f40da7399ab9d2bbcf797ac9c6161ad3bad987ca5e0555484603b84f58e83a40c67dd2ed2843aa73b0b65b1637f4438bd2d56225664712bddc6dfd26f5e2fe0
7
- data.tar.gz: e7eba2596d384366fea8fc4bf76e7809d5fb55804b3ae5fa9b372a1b7514532603e473b4d5292aed3a84e477818f2d7879b8a41854fbd3adef72076f189f8947
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 "http://rubygems.org"
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/development.sqlite3",
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
@@ -3,6 +3,8 @@ require 'rspec'
3
3
  require 'rails'
4
4
  require 'active_record'
5
5
 
6
+ ENV["RAILS_ENV"] = "test"
7
+
6
8
  Before do
7
9
  # FileUtils.rm_rf "tmp/rails_app"
8
10
  end
@@ -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", :group => :test" in file "Gemfile"
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 create_migration
36
- migration_template 'migration.rb', "db/migrate/create_my_zipcode_gem_models.rb"
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/
@@ -1,5 +1,6 @@
1
+ require 'memoist'
1
2
  class County < ActiveRecord::Base
2
- extend ActiveSupport::Memoizable
3
+ extend Memoist
3
4
  attr_accessible :state_id, :region_id, :abbr, :name, :count_seat
4
5
 
5
6
  belongs_to :state
@@ -1,5 +1,6 @@
1
+ require 'memoist'
1
2
  class State < ActiveRecord::Base
2
- extend ActiveSupport::Memoizable
3
+ extend Memoist
3
4
  attr_accessible :abbr, :name
4
5
 
5
6
  has_many :zipcodes
@@ -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
- find(:first, :conditions => "city like '#{city}%' AND states.abbr like '%#{state}%'", :include => [:county => :state])
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.find_or_initialize_by_abbr(row['abbr'])
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.find_or_initialize_by_name_and_state_id(row['name'], state.to_param)
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.find_or_initialize_by_code(row['code'])
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,
@@ -1,3 +1,3 @@
1
1
  module MyZipcodeGem
2
- VERSION = "0.1.4"
2
+ VERSION = '0.2.0'.freeze
3
3
  end
@@ -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('rubigen', '1.5.6')
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.1.4
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: 2015-11-05 00:00:00.000000000 Z
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: rubigen
29
+ name: memoist
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - '='
32
+ - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: 1.5.6
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: 1.5.6
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.4.5
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.