area 0.6.0 → 0.6.1

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.
@@ -4,14 +4,15 @@ class Array
4
4
  Area::ZIP_CODES.each do |row|
5
5
  if row[3] == self[0].to_s and row[4] == self[1].to_s
6
6
  if options[:city]
7
- return row[1]
7
+ @area = row[1]
8
8
  elsif options[:state]
9
- return row[2]
9
+ @area = row[2]
10
10
  else
11
- return row[1] + ', ' + row[2]
11
+ @area =row[1] + ', ' + row[2]
12
12
  end
13
13
  end
14
14
  end
15
+ @area || nil
15
16
  end
16
17
 
17
18
  def to_zip
@@ -34,8 +35,10 @@ class Array
34
35
  def to_gmt_offset
35
36
  Area::ZIP_CODES.each do |row|
36
37
  if row[3] == self[0].to_s and row[4] == self[1].to_s
37
- return row[5]
38
+ @offset = row[5]
38
39
  end
39
40
  end
41
+ @offset || nil
40
42
  end
43
+
41
44
  end
@@ -3,45 +3,40 @@ class Integer
3
3
  def to_region(options = {})
4
4
  if self.to_s.length == 3 # an area code
5
5
  Area::AREA_CODES.each do |row|
6
- if row.first == self.to_s
7
- return row.last
8
- end
6
+ @region = row.last if row.first == self.to_s
9
7
  end
10
8
  else
11
- # puts "not an area code"
9
+ # puts "not an area code"
12
10
  end
11
+ @region || nil
13
12
  end
14
13
 
15
14
  def to_latlon
16
15
  Area::ZIP_CODES.each do |row|
17
- if row.first == self.to_s
18
- return row[3] + ', ' + row[4]
19
- end
16
+ @coordinates = row[3] + ', ' + row[4] if row.first == self.to_s
20
17
  end
18
+ @coordinates || nil
21
19
  end
22
20
 
23
21
  def to_lat
24
22
  Area::ZIP_CODES.each do |row|
25
- if row.first == self.to_s
26
- return row[3]
27
- end
23
+ @lat = row[3] if row.first == self.to_s
28
24
  end
25
+ @lat || nil
29
26
  end
30
27
 
31
28
  def to_lon
32
29
  Area::ZIP_CODES.each do |row|
33
- if row.first == self.to_s
34
- return row[4]
35
- end
30
+ @lon = row[4] if row.first == self.to_s
36
31
  end
32
+ @lon || nil
37
33
  end
38
34
 
39
35
  def to_gmt_offset
40
36
  Area::ZIP_CODES.each do |row|
41
- if row.first == self.to_s
42
- return row[5]
43
- end
37
+ @offset = row[5] if row.first == self.to_s
44
38
  end
39
+ @offset || nil
45
40
  end
46
41
 
47
42
  end
@@ -3,37 +3,30 @@ class String
3
3
  def to_area
4
4
  @area_codes = []
5
5
  Area::AREA_CODES.each do |row|
6
- if row[1].upcase == self
7
- @area_codes.push(row.first)
8
- end
9
- end
10
- if @area_codes.length == 1
11
- return @area_codes.first
12
- else
13
- return @area_codes
6
+ @area_codes.push(row.first) if row[1].upcase == self
14
7
  end
8
+ @area_codes.length == 1 ? @area_codes.first : @area_codes
15
9
  end
16
10
 
17
11
  def to_region(options = {})
18
12
  if self.to_s.length == 3 # an area code
19
13
  Area::AREA_CODES.each do |row|
20
- if row.first == self.to_s
21
- return row.last
22
- end
14
+ @region = row.last if row.first == self.to_s
23
15
  end
24
16
  else # more than 3 digits, assume a zipcode
25
17
  Area::ZIP_CODES.each do |row|
26
18
  if row.first == self.to_s
27
19
  if options[:city]
28
- return row[1]
20
+ @region = row[1]
29
21
  elsif options[:state]
30
- return row[2]
22
+ @region = row[2]
31
23
  else
32
- return row[1] + ', ' + row[2]
24
+ @region = row[1] + ', ' + row[2]
33
25
  end
34
26
  end
35
27
  end
36
28
  end
29
+ @region || nil
37
30
  end
38
31
 
39
32
  def to_zip
@@ -44,30 +37,21 @@ class String
44
37
  @area.collect! { |a| a.strip }
45
38
 
46
39
  Area::ZIP_CODES.each do |row|
47
- if row[1] && row[1].downcase == @area[0].downcase && row[2].downcase == @area[1].downcase
48
- @zip_codes.push(row[0])
49
- end
40
+ @zip_codes.push(row[0]) if row[1] && row[1].downcase == @area[0].downcase and row[2].downcase == @area[1].downcase
50
41
  end
51
42
  else
52
43
  Area::ZIP_CODES.each do |row|
53
- if row[1] and row[1].downcase == self.downcase
54
- @zip_codes.push(row[0])
55
- end
44
+ @zip_codes.push(row[0]) if row[1] and row[1].downcase == self.downcase
56
45
  end
57
46
  end
58
-
59
- if @zip_codes.length == 1
60
- return @zip_codes.first
61
- else
62
- return @zip_codes
63
- end
47
+ @zip_codes.length == 1 ? @zip_codes.first : @zip_codes
64
48
  end
65
49
 
66
50
  def to_gmt_offset
67
51
  Area::ZIP_CODES.each do |row|
68
- if row[2].upcase == self.to_s.upcase
69
- return row[5]
70
- end
52
+ @offset = row[5] if row[2] != nil and row[2].upcase == self.to_s.upcase
71
53
  end
54
+ @offset || nil
72
55
  end
56
+
73
57
  end
@@ -1,3 +1,3 @@
1
1
  module Area
2
- VERSION = "0.6.0"
2
+ VERSION = "0.6.1"
3
3
  end
@@ -5,9 +5,9 @@ class TestInteger < MiniTest::Unit::TestCase
5
5
 
6
6
 
7
7
  def test_that_it_converts_area_code_to_region
8
- assert_equal "NY", 646.to_region
8
+ assert_equal "NY", 646.to_region
9
9
  end
10
-
10
+
11
11
  def test_that_it_converts_zip_code_to_latlon
12
12
  assert_equal "40.71209, -73.95427", 11211.to_latlon
13
13
  end
@@ -24,14 +24,22 @@ class TestInteger < MiniTest::Unit::TestCase
24
24
  assert_equal "-5", 11211.to_gmt_offset
25
25
  end
26
26
 
27
+ def test_that_it_handles_bad_area_codes
28
+ assert_nil(1234.to_region)
29
+ assert_nil(1234.to_latlon)
30
+ assert_nil(1234.to_lat)
31
+ assert_nil(1234.to_lon)
32
+ assert_nil(1234.to_gmt_offset)
33
+ end
34
+
27
35
  end
28
36
 
29
37
  class TestString < MiniTest::Unit::TestCase
30
38
 
31
39
  def test_that_it_converts_area_code_to_region
32
- assert_equal "NY", "646".to_region
40
+ assert_equal "NY", "646".to_region
33
41
  end
34
-
42
+
35
43
  def test_that_it_converts_zip_code_to_region
36
44
  assert_equal "Brooklyn, NY", "11211".to_region
37
45
  end
@@ -59,6 +67,13 @@ class TestString < MiniTest::Unit::TestCase
59
67
  assert_equal "-5", "ny".to_gmt_offset
60
68
  end
61
69
 
70
+ def test_that_it_handles_incorrect_zips
71
+ assert_equal [], "9888".to_zip
72
+ assert_nil "9888".to_region
73
+ assert_equal [], "9888".to_area
74
+ assert_nil "9888".to_gmt_offset
75
+ end
76
+
62
77
  end
63
78
 
64
79
  class TestArray < MiniTest::Unit::TestCase
@@ -83,4 +98,10 @@ class TestArray < MiniTest::Unit::TestCase
83
98
  assert_equal "11211", [40.71209123228157, -73.95488409019887].to_zip
84
99
  end
85
100
 
101
+ def test_that_it_handles_incorrect_values
102
+ assert_nil [12.12345, -40.23423].to_zip
103
+ assert_nil [12.12345, -40.23423].to_region
104
+ assert_nil [12.12345, -40.23423].to_gmt_offset
105
+ end
106
+
86
107
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: area
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-05 00:00:00.000000000 Z
12
+ date: 2012-10-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fastercsv