area 0.6.0 → 0.6.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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