tztime 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,64 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+ require 'tztime/activerecord'
3
+
4
+ class TestActiveRecord < ::Test::Unit::TestCase
5
+ def setup
6
+ ActiveRecord::Base.establish_connection(
7
+ :adapter => "sqlite3",
8
+ :database => "./test.sqlite3"
9
+ )
10
+ ActiveRecord::Base.connection.execute("CREATE TABLE settings (id PRIMARY KEY, time_zone_name VARCHAR, created_at DATETIME);")
11
+ @setting = Setting.create :time_zone_name => 'America/Los_Angeles'
12
+ end
13
+
14
+ def teardown
15
+ ActiveRecord::Base.remove_connection
16
+ File.delete("./test.sqlite3")
17
+ end
18
+
19
+ def test_created_at_is_utc
20
+ assert_equal "UTC", @setting.created_at.zone
21
+ end
22
+
23
+ def test_local_created_at_is_pdt
24
+ assert_equal "PDT", @setting.local_created_at.zone
25
+ end
26
+
27
+ def test_local_get_now_is_utc
28
+ assert_equal "UTC", @setting.get_now.zone
29
+ end
30
+
31
+ def test_local_get_now_is_pdt
32
+ assert_equal "PDT", @setting.local_get_now.zone
33
+ end
34
+
35
+ def test_local_get_now_is_local_time
36
+ assert_equal TZTime::LocalTime, @setting.local_get_now.class
37
+ end
38
+
39
+ def test_accessor_name
40
+ assert @setting.respond_to?(:time_builder)
41
+ end
42
+
43
+ def test_builder_time_zone
44
+ assert_equal :PDT, @setting.time_builder.now.time_zone_abbreviation
45
+ end
46
+
47
+ def test_builder_time
48
+ assert_equal 4, @setting.time_builder.utc(2008, 3, 1, 12).hour
49
+ end
50
+
51
+ def test_assign_builder_object
52
+ @setting.time_builder = TZTime::LocalTime::Builder.new('America/Denver')
53
+ assert_equal 'America/Denver', @setting.time_zone_name
54
+ end
55
+ end
56
+
57
+ class Setting < ActiveRecord::Base
58
+ acts_as_local_time :time_zone_field => :time_zone_name,
59
+ :time_builder_accessor => :time_builder
60
+
61
+ def get_now
62
+ Time.now
63
+ end
64
+ end
@@ -0,0 +1,14 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+ require 'active_support'
3
+
4
+ class TestActiveSupport < ::Test::Unit::TestCase
5
+ TimeZone.all.each do |tz|
6
+ def_name = tz.name.gsub(/[\s()'&-]+/, '_').gsub('.', '').downcase
7
+ class_eval <<-EOF
8
+ def test_#{def_name}
9
+ tz = TZTime::LocalTime::Builder.get_time_zone(%q[#{tz.name}])
10
+ assert_not_nil tz, %q[#{tz.to_s} does not have a conversion]
11
+ end
12
+ EOF
13
+ end
14
+ end
@@ -0,0 +1,18 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestFormat < ::Test::Unit::TestCase
4
+ def setup
5
+ @builder = TZTime::LocalTime::Builder.new('America/New_York')
6
+ @time = @builder.local(2008, 4, 1, 14)
7
+ end
8
+
9
+ def test_time_zone
10
+ assert_equal "EDT %Z", @time.strftime("%Z %%Z")
11
+ assert_equal "%Z EDT", @time.strftime("%%Z %Z")
12
+ end
13
+
14
+ def test_meridian_indicator
15
+ assert_equal "p %P", @time.strftime("%P %%P")
16
+ assert_equal "%P p", @time.strftime("%%P %P")
17
+ end
18
+ end
@@ -0,0 +1,2 @@
1
+ require 'test/unit'
2
+ require File.dirname(__FILE__) + '/../lib/tztime'
@@ -0,0 +1,77 @@
1
+ require File.dirname(__FILE__) + '/test_helper.rb'
2
+
3
+ class TestTimeZone < ::Test::Unit::TestCase
4
+ include TZTime::TimeZoneElement
5
+
6
+ def test_offset_edt_dst
7
+ self.time_zone = 'America/New_York'
8
+ time = local_time_builder.local(2008, 6, 1)
9
+ assert_equal(-14400, time.time_zone_offset)
10
+ end
11
+
12
+ def test_offset_edt_no_dst
13
+ self.time_zone = 'America/New_York'
14
+ time = local_time_builder.local(2008, 1, 1)
15
+ assert_equal(-18000, time.time_zone_offset)
16
+ end
17
+
18
+ def test_offset_pst_dst
19
+ self.time_zone = 'America/Los_Angeles'
20
+ time = local_time_builder.local(2008, 6, 1)
21
+ assert_equal(-25200, time.time_zone_offset)
22
+ end
23
+
24
+ def test_offset_pst_no_dst
25
+ self.time_zone = 'America/Los_Angeles'
26
+ time = local_time_builder.local(2008, 1, 1)
27
+ assert_equal(-28800, time.time_zone_offset)
28
+ end
29
+
30
+ def test_time_zone_abbreviation_est
31
+ self.time_zone = 'America/New_York'
32
+ time = local_time_builder.local(2007, 12, 16)
33
+ assert_equal(:EST, time.time_zone_abbreviation)
34
+ end
35
+
36
+ def test_time_zone_abbreviation_edt
37
+ self.time_zone = 'America/New_York'
38
+ time = local_time_builder.local(2008, 4, 16)
39
+ assert_equal(:EDT, time.time_zone_abbreviation)
40
+ end
41
+
42
+ def test_time_zone_abbreviation_pst
43
+ self.time_zone = 'America/Los_Angeles'
44
+ time = local_time_builder.local(2007, 12, 16)
45
+ assert_equal(:PST, time.time_zone_abbreviation)
46
+ end
47
+
48
+ def test_time_zone_abbreviation_pdt
49
+ self.time_zone = 'America/Los_Angeles'
50
+ time = local_time_builder.local(2008, 4, 16)
51
+ assert_equal(:PDT, time.time_zone_abbreviation)
52
+ end
53
+
54
+ def test_at_local
55
+ self.time_zone = 'America/Los_Angeles'
56
+ time = Time.local(2008, 4, 10, 19, 25)
57
+ assert_equal 19, local_time_builder. at_local(time).hour
58
+ end
59
+
60
+ def test_at_utc
61
+ self.time_zone = 'America/Los_Angeles'
62
+ time = Time.local(2008, 4, 10, 19, 25)
63
+ assert_equal 12, local_time_builder.at_utc(time).hour
64
+ end
65
+
66
+ def test_convert
67
+ self.time_zone = 'America/Los_Angeles'
68
+ time = Time.utc(2008, 4, 10, 19, 25)
69
+ assert_equal 12, local_time_builder.convert(time).hour
70
+ end
71
+
72
+ def test_convert_explicit
73
+ self.time_zone = 'America/Los_Angeles'
74
+ time = Time.utc(2008, 4, 10, 19, 25)
75
+ assert_equal 16, local_time_builder.convert(time, 'America/New_York').hour
76
+ end
77
+ end
metadata ADDED
@@ -0,0 +1,85 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: tztime
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jeremy Larkin
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-04-10 00:00:00 -04:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: tzinfo
17
+ version_requirement:
18
+ version_requirements: !ruby/object:Gem::Requirement
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: 0.3.8
23
+ version:
24
+ description:
25
+ email: jeremy@formcollective.com
26
+ executables: []
27
+
28
+ extensions: []
29
+
30
+ extra_rdoc_files:
31
+ - README
32
+ - LICENSE
33
+ - HISTORY
34
+ files:
35
+ - lib/tztime/activerecord/acts/local_time.rb
36
+ - lib/tztime/activerecord.rb
37
+ - lib/tztime/local_time/builder.rb
38
+ - lib/tztime/local_time.rb
39
+ - lib/tztime/time_zone_element.rb
40
+ - lib/tztime.rb
41
+ - test/test_active_record.rb
42
+ - test/test_active_support.rb
43
+ - test/test_format.rb
44
+ - test/test_helper.rb
45
+ - test/test_time_zone.rb
46
+ - README
47
+ - LICENSE
48
+ - HISTORY
49
+ has_rdoc: true
50
+ homepage: http://tztime.rubyforge.org
51
+ post_install_message:
52
+ rdoc_options:
53
+ - --title
54
+ - TZTime
55
+ - --main
56
+ - README
57
+ - --inline-source
58
+ - --line-numbers
59
+ require_paths:
60
+ - lib
61
+ required_ruby_version: !ruby/object:Gem::Requirement
62
+ requirements:
63
+ - - ">="
64
+ - !ruby/object:Gem::Version
65
+ version: "0"
66
+ version:
67
+ required_rubygems_version: !ruby/object:Gem::Requirement
68
+ requirements:
69
+ - - ">="
70
+ - !ruby/object:Gem::Version
71
+ version: "0"
72
+ version:
73
+ requirements: []
74
+
75
+ rubyforge_project: tztime
76
+ rubygems_version: 1.1.0
77
+ signing_key:
78
+ specification_version: 2
79
+ summary: Time zone localization with compatibility for Rails/ActiveRecord
80
+ test_files:
81
+ - test/test_active_record.rb
82
+ - test/test_active_support.rb
83
+ - test/test_format.rb
84
+ - test/test_helper.rb
85
+ - test/test_time_zone.rb