tzip 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ # TZip #
2
+
3
+ TZip makes it a little bit easier to set TimeZones in a rails app, since it can figure out the appropriate identifier from a ZIP code.
4
+
5
+ ## Usage ##
6
+
7
+ config.time_zone = ActiveSupport::TimeZone.find_by_zipcode('90210')
@@ -0,0 +1,18 @@
1
+ require 'rubygems'
2
+ require 'active_support'
3
+ require 'active_support/time'
4
+
5
+ require 'tzip/base'
6
+ require 'tzip/values/zone_names'
7
+ require 'tzip/values/zonings'
8
+ require 'tzip/values/eastern'
9
+ require 'tzip/values/central'
10
+ require 'tzip/values/mountain'
11
+ require 'tzip/values/arizona'
12
+ require 'tzip/values/pacific'
13
+ require 'tzip/values/alaska'
14
+ require 'tzip/values/hawaii'
15
+ require 'tzip/values/unused'
16
+ require 'tzip/mapping'
17
+
18
+ ActiveSupport::TimeZone.send(:extend, TZip::ClassMethods) if Object.const_defined?("ActiveSupport")
@@ -0,0 +1,10 @@
1
+ module TZip
2
+ module ClassMethods
3
+ def find_by_zipcode(zipcode)
4
+ [5,4,3,2,1].each do |i|
5
+ return MAPPING[zipcode.to_s[0,i]] if MAPPING.has_key?(zipcode.to_s[0,i])
6
+ end
7
+ return nil
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,8 @@
1
+ module TZip
2
+ MAPPING = {}
3
+ ZONINGS.each do |zone, prefixes|
4
+ prefixes.each do |prefix|
5
+ MAPPING[prefix] = ((zone == :unused) ? nil : ZONE_NAMES[zone])
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,3 @@
1
+ module TZip
2
+ ZONINGS[:alaska] = %w{995 996 996 998 999}
3
+ end
@@ -0,0 +1,3 @@
1
+ module TZip
2
+ ZONINGS[:arizona] = %w{0 1 2}
3
+ end
@@ -0,0 +1,6 @@
1
+ module TZip
2
+ ZONINGS[:central] = %w{35 36 39}
3
+ ZONINGS[:central] += %w{50 51 52 53 54 55 56}
4
+ ZONINGS[:central] += %w{60 61 62 63 64 65}
5
+ ZONINGS[:central] += %w{7}
6
+ end
@@ -0,0 +1,6 @@
1
+ module TZip
2
+ ZONINGS[:eastern] = %w{0 1 2}
3
+ ZONINGS[:eastern] += %w{30 31 33 34 398 399}
4
+ ZONINGS[:eastern] += %w{43 44 45}
5
+ ZONINGS[:eastern] += %w{569}
6
+ end
@@ -0,0 +1,3 @@
1
+ module TZip
2
+ ZONINGS[:hawaii] = %w{967 968}
3
+ end
@@ -0,0 +1,5 @@
1
+ module TZip
2
+ ZONINGS[:mountain] = %w{59}
3
+ ZONINGS[:mountain] += %w{798 799}
4
+ ZONINGS[:mountain] += %w{80 81 82 83 831 84 87 88}
5
+ end
@@ -0,0 +1,4 @@
1
+ module TZip
2
+ ZONINGS[:pacific] = %w{835 838 889 89}
3
+ ZONINGS[:pacific] += %w{90 91 92 93 94 95 960 961 98 990 991 992 993 994}
4
+ end
@@ -0,0 +1,11 @@
1
+ module TZip
2
+ ZONINGS[:unused] = %w{000 002 003 004 099}
3
+ ZONINGS[:unused] += %w{213 269}
4
+ ZONINGS[:unused] += %w{343 348 353}
5
+ ZONINGS[:unused] += %w{419 429}
6
+ ZONINGS[:unused] += %w{517 518 519 529 533 536 552 568 578 579 589}
7
+ ZONINGS[:unused] += %w{621 632 642 643 659 663 682 694 695 696 697 698 699}
8
+ ZONINGS[:unused] += %w{702 709 715 732 742 771}
9
+ ZONINGS[:unused] += %w{817 818 819 839 848 849 854 858 861 862 866 867 868 869 876 886 887 888 892 896 899}
10
+ ZONINGS[:unused] += %w{909 929 987}
11
+ end
@@ -0,0 +1,11 @@
1
+ module TZip
2
+ ZONE_NAMES = {
3
+ :hawaii => "Hawaii",
4
+ :alaska => "Alaska",
5
+ :pacific => "Pacific Time (US & Canada)",
6
+ :mountain => "Mountain Time (US & Canada)",
7
+ :arizona => "Arizona",
8
+ :central => "Central Time (US & Canada)",
9
+ :eastern => "Eastern Time (US & Canada)"
10
+ }
11
+ end
@@ -0,0 +1,3 @@
1
+ module TZip
2
+ ZONINGS = {}
3
+ end
@@ -0,0 +1,3 @@
1
+ module TZip
2
+ VERSION = "0.0.1" unless defined?(::TZip::VERSION)
3
+ end
metadata ADDED
@@ -0,0 +1,99 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tzip
3
+ version: !ruby/object:Gem::Version
4
+ hash: 29
5
+ prerelease:
6
+ segments:
7
+ - 0
8
+ - 0
9
+ - 1
10
+ version: 0.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Chris Kalafarski
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2011-02-27 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ name: activesupport
23
+ prerelease: false
24
+ requirement: &id001 !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ">="
28
+ - !ruby/object:Gem::Version
29
+ hash: 7
30
+ segments:
31
+ - 3
32
+ - 0
33
+ - 0
34
+ version: 3.0.0
35
+ type: :runtime
36
+ version_requirements: *id001
37
+ description: TZip can resolve United States ZIP codes into the appropriate Rails time zone identifier. This makes it easier to setup your rails app, or change time zones based on user input.
38
+ email:
39
+ - chris@farski.com
40
+ executables: []
41
+
42
+ extensions: []
43
+
44
+ extra_rdoc_files: []
45
+
46
+ files:
47
+ - lib/tzip/base.rb
48
+ - lib/tzip/mapping.rb
49
+ - lib/tzip/values/alaska.rb
50
+ - lib/tzip/values/arizona.rb
51
+ - lib/tzip/values/central.rb
52
+ - lib/tzip/values/eastern.rb
53
+ - lib/tzip/values/hawaii.rb
54
+ - lib/tzip/values/mountain.rb
55
+ - lib/tzip/values/pacific.rb
56
+ - lib/tzip/values/unused.rb
57
+ - lib/tzip/values/zone_names.rb
58
+ - lib/tzip/values/zonings.rb
59
+ - lib/tzip/version.rb
60
+ - lib/tzip.rb
61
+ - README.md
62
+ has_rdoc: true
63
+ homepage: http://github.com/farski/tzip
64
+ licenses: []
65
+
66
+ post_install_message:
67
+ rdoc_options: []
68
+
69
+ require_paths:
70
+ - lib
71
+ required_ruby_version: !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ">="
75
+ - !ruby/object:Gem::Version
76
+ hash: 3
77
+ segments:
78
+ - 0
79
+ version: "0"
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ hash: 23
86
+ segments:
87
+ - 1
88
+ - 3
89
+ - 6
90
+ version: 1.3.6
91
+ requirements: []
92
+
93
+ rubyforge_project:
94
+ rubygems_version: 1.5.2
95
+ signing_key:
96
+ specification_version: 3
97
+ summary: Simplifies defining time zones in Rails apps with ZIP codes.
98
+ test_files: []
99
+