File tree Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Expand file tree Collapse file tree 1 file changed +14
-1
lines changed Original file line number Diff line number Diff line change @@ -5,7 +5,7 @@ def self.schedule_from_ical(ical_string, options = {})
5
5
ical_string . each_line do |line |
6
6
( property , value ) = line . split ( ":" )
7
7
( property , tzid ) = property . split ( ";" )
8
- zone = Time . find_zone ( tzid ) if tzid . present?
8
+ zone = find_zone ( tzid ) if tzid . present?
9
9
case property
10
10
when "DTSTART"
11
11
value = { time : value , zone : zone } if zone . present?
@@ -92,5 +92,18 @@ def self.rule_from_ical(ical)
92
92
93
93
Rule . from_hash ( params )
94
94
end
95
+
96
+ private_class_method def self . find_zone ( tzid )
97
+ ( _ , zone ) = tzid &.split ( "=" )
98
+ begin
99
+ Time . find_zone! ( zone ) if zone . present?
100
+ rescue ArgumentError
101
+ ( rails_zone , _tzinfo_id ) = ActiveSupport ::TimeZone ::MAPPING . find do |( k , _ ) |
102
+ Time . find_zone! ( k ) . now . strftime ( "%Z" ) == zone
103
+ end
104
+
105
+ Time . find_zone ( rails_zone )
106
+ end
107
+ end
95
108
end
96
109
end
You can’t perform that action at this time.
0 commit comments