cowtech-extensions 2.0.1 → 2.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.
@@ -78,6 +78,35 @@ module Cowtech
|
|
78
78
|
def rational_offset(tz = ::Time.zone)
|
79
79
|
Rational((tz.tzinfo.current_period.utc_offset / 3600), 24)
|
80
80
|
end
|
81
|
+
|
82
|
+
def parameterize_zone(tz)
|
83
|
+
tz = tz.to_s if !tz.is_a?(String)
|
84
|
+
|
85
|
+
if tz =~ /^(\([a-z]+([+-])(\d{2}):(\d{2})\)\s(.+))$/i then
|
86
|
+
"#{$2}#{$3}#{$4}@#{$5.parameterize}"
|
87
|
+
else
|
88
|
+
tz.parameterize
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
def find_parameterized_zone(tz, as_string = false)
|
93
|
+
tz = tz.to_s if !tz.is_a?(String)
|
94
|
+
tz.gsub!(/^(.\d{4}@)?/, "")
|
95
|
+
|
96
|
+
rv = catch(:zone) do
|
97
|
+
ActiveSupport::TimeZone::MAPPING.each_key do |zone|
|
98
|
+
throw(:zone, zone) if ::DateTime.parameterize_zone(zone) == tz
|
99
|
+
end
|
100
|
+
|
101
|
+
nil
|
102
|
+
end
|
103
|
+
|
104
|
+
if rv then
|
105
|
+
(as_string ? rv : ActiveSupport::TimeZone[rv])
|
106
|
+
else
|
107
|
+
nil
|
108
|
+
end
|
109
|
+
end
|
81
110
|
end
|
82
111
|
|
83
112
|
def utc_time
|
@@ -111,6 +140,8 @@ module Cowtech
|
|
111
140
|
mrv = names[:short_months][self.month - 1]
|
112
141
|
when "%B"
|
113
142
|
mrv = names[:long_months][self.month - 1]
|
143
|
+
when "%Z"
|
144
|
+
mrv = self.formatted_offset(true) if RUBY_VERSION =~ /^1\.8/ # This is to fix ruby 1.8 bug in OSX
|
114
145
|
when "%z"
|
115
146
|
mrv = self.formatted_offset(false) if RUBY_VERSION =~ /^1\.8/ # This is to fix ruby 1.8 bug in OSX
|
116
147
|
end
|
@@ -94,6 +94,22 @@ describe Cowtech::Extensions::DateTime do
|
|
94
94
|
end
|
95
95
|
end
|
96
96
|
|
97
|
+
describe "#parameterize_zone" do
|
98
|
+
it "should return the parameterized version of the zone" do
|
99
|
+
DateTime.parameterize_zone("Mountain Time (US & Canada)").should == "mountain-time-us-canada"
|
100
|
+
DateTime.parameterize_zone("(GMT-07:00) Mountain Time (US & Canada)").should == "-0700@mountain-time-us-canada"
|
101
|
+
DateTime.parameterize_zone(ActiveSupport::TimeZone["Mountain Time (US & Canada)"]).should == "-0700@mountain-time-us-canada"
|
102
|
+
end
|
103
|
+
end
|
104
|
+
|
105
|
+
describe "#find_parameterize_zone" do
|
106
|
+
it "should return the parameterized version of the zone" do
|
107
|
+
DateTime.find_parameterized_zone("-0700@mountain-time-us-canada").should == ActiveSupport::TimeZone["Mountain Time (US & Canada)"]
|
108
|
+
DateTime.find_parameterized_zone("-0700@mountain-time-us-canada", true).should == "Mountain Time (US & Canada)"
|
109
|
+
DateTime.find_parameterized_zone("foo").should be_nil
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
97
113
|
describe "#utc_time" do
|
98
114
|
it "should convert to UTC Time" do random_reference.utc_time.should be_kind_of(Time) end
|
99
115
|
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cowtech-extensions
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 11
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 2
|
8
|
-
- 0
|
9
8
|
- 1
|
10
|
-
|
9
|
+
- 0
|
10
|
+
version: 2.1.0
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Shogun
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-06-
|
18
|
+
date: 2012-06-12 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
name: actionpack
|