tztime 0.1.0

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.
@@ -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