address_titlecase 1.0.0 → 1.1.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
  SHA256:
3
- metadata.gz: 89a94ec779de3ec14ee166a34206e1b676512f3609809dc13d204b9686e63c75
4
- data.tar.gz: 972d4ae32751ff4bdecbb93162e683219fcf2f675dd6f294cd52912b04d92cc2
3
+ metadata.gz: 974492d2050fcf627a4b956c5eeb38ff45e584c1bcb8f0bcb49b90ff05b6757b
4
+ data.tar.gz: 224eb280d4a96fdbc603a77fc271d24f81e2edd21711f90ee89755435093ec5b
5
5
  SHA512:
6
- metadata.gz: 174280271ff568569298780d87828f9783f94fab655db2e7b126fa1a41333d657b25761325c33129b4aa02ff0850cfdee35d0df3098135e290cde11a6fecc21b
7
- data.tar.gz: 83bab68c5b9c5492813bc2e8fcfef3c7a4f882e2c3fbae071b532161e74d23ac59c732668d246c41a539140ebf84092da29fa73ff1cbef47718f9eb3117ef84d
6
+ metadata.gz: 866ba854ceccfb680c1b32ab3eb6278174f76699eedaebac751ab1e6802b41de1e286f504f82098dd687196e600e7621ed5dcd2b9ac7f1f1b1846ca602402e96
7
+ data.tar.gz: b3aa3695d2d404abae90b2178515fe49b44775d04860b88684bc1f77431068da3dc4deb2431d344d80f65db2767a2f863dfc95751af7debaf5b6e40a79ea36c8
@@ -2,4 +2,7 @@ Metrics/LineLength:
2
2
  Enabled: false
3
3
 
4
4
  Metrics/MethodLength:
5
+ Enabled: false
6
+
7
+ Metrics/BlockLength:
5
8
  Enabled: false
data/README.md CHANGED
@@ -1,8 +1,9 @@
1
1
  # Address Titlecase
2
2
 
3
3
  [![Build Status](https://travis-ci.com/juliannaroen/address_titlecase.svg?token=GqtPi1VKmx9gqq9JuxSW&branch=master)](https://travis-ci.com/juliannaroen/address_titlecase)
4
+ [![Gem Version](https://badge.fury.io/rb/address_titlecase.svg)](https://badge.fury.io/rb/address_titlecase)
4
5
 
5
- Titleize US addresses so that states, directions, and other abbreviations that would normally be titlecased by [`String#titleize`](https://apidock.com/rails/String/titleize) remain uppercase.
6
+ Titleize US and Canadian addresses so that states, directions, and other abbreviations that would normally be titlecased by [`String#titleize`](https://apidock.com/rails/String/titleize) remain uppercase.
6
7
 
7
8
  ```ruby
8
9
  > "123 SESAME ST SE, SALEM, OR 97301".address_titlecase
@@ -23,9 +23,9 @@ Gem::Specification.new do |spec|
23
23
  spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
24
  spec.require_paths = ['lib']
25
25
 
26
- spec.add_development_dependency 'bundler'
27
- spec.add_development_dependency 'pry-byebug'
28
- spec.add_development_dependency 'rake'
29
- spec.add_development_dependency 'rspec'
30
- spec.add_development_dependency 'rubocop'
26
+ spec.add_development_dependency 'bundler', '~> 2.1'
27
+ spec.add_development_dependency 'pry-byebug', '~> 3.7'
28
+ spec.add_development_dependency 'rake', '~> 10.5'
29
+ spec.add_development_dependency 'rspec', '~> 3.8'
30
+ spec.add_development_dependency 'rubocop', '~> 0.72'
31
31
  end
@@ -12,27 +12,38 @@ module AddressTitlecase
12
12
  class Titleizer
13
13
  class << self
14
14
  US_STATES = %w[AL AK AZ AR CA CO CT DE FL GA HI ID IL IN IA KS KY LA ME MD MA MI MN MS MO MT NE NV NH NJ NM NY NC ND OH OK OR PA RI SC SD TN TX UT VT VA WA WV WI WY].freeze
15
- TERRITORIES = %w[AS DC FM GU MH MP PW PR VI].freeze
15
+ US_TERRITORIES = %w[AS DC FM GU MH MP PW PR VI].freeze
16
+
17
+ CA_PROVINCES = %w[AB BC MB NB NL NS ON PE QC SK].freeze
18
+ CA_TERRITORIES = %w[NT NU YT].freeze
19
+
16
20
  MILITARY = %w[APO FPO MPO AE AA AP].freeze
21
+
17
22
  DIRECTIONS = %w[NE NW SE SW].freeze
18
23
  COUNTRIES = %w[USA].freeze
19
24
  MISC = %w[PO RR].freeze
20
25
 
21
- REMAIN_UPCASE = US_STATES | TERRITORIES | MILITARY | DIRECTIONS | COUNTRIES | MISC
26
+ REMAIN_UPCASE = US_STATES | US_TERRITORIES | CA_PROVINCES | CA_TERRITORIES | MILITARY | DIRECTIONS | COUNTRIES | MISC
22
27
 
23
- def titleize(address, opts)
28
+ def titleize(address, opts = {})
24
29
  overrides = opts['overrides'] || opts[:overrides] || {}
25
30
  address.gsub(/\w+['’]?\w*/) do |word|
26
31
  overriden_word = overrides[word]
27
32
  if overriden_word
28
33
  overriden_word
29
- elsif REMAIN_UPCASE.include?(word.upcase)
34
+ elsif REMAIN_UPCASE.include?(word.upcase) || contains_digits?(word)
30
35
  word.upcase
31
36
  else
32
37
  word.capitalize
33
38
  end
34
39
  end
35
40
  end
41
+
42
+ private
43
+
44
+ def contains_digits?(word)
45
+ !word.count('0-9').zero?
46
+ end
36
47
  end
37
48
  end
38
49
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module AddressTitlecase
4
- VERSION = '1.0.0'
4
+ VERSION = '1.1.0'
5
5
  end
metadata CHANGED
@@ -1,85 +1,85 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: address_titlecase
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - juliannaroen
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-05-09 00:00:00.000000000 Z
11
+ date: 2020-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '2.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: pry-byebug
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ">="
31
+ - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '3.7'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ">="
38
+ - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '0'
40
+ version: '3.7'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ">="
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '0'
47
+ version: '10.5'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ">="
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '0'
54
+ version: '10.5'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ">="
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '0'
61
+ version: '3.8'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ">="
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '0'
68
+ version: '3.8'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rubocop
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ">="
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: '0'
75
+ version: '0.72'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: '0'
82
+ version: '0.72'
83
83
  description:
84
84
  email:
85
85
  - jsroen@gmail.com