File tree Expand file tree Collapse file tree 1 file changed +17
-1
lines changed Expand file tree Collapse file tree 1 file changed +17
-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 = {})
55 ical_string . each_line do |line |
66 ( property , value ) = line . split ( ":" )
77 ( property , tzid ) = property . split ( ";" )
8- zone = Time . find_zone ( tzid ) if tzid . present?
8+ zone = find_zone ( tzid ) if tzid . present?
99 case property
1010 when "DTSTART"
1111 value = { time : value , zone : zone } if zone . present?
@@ -92,5 +92,21 @@ def self.rule_from_ical(ical)
9292
9393 Rule . from_hash ( params )
9494 end
95+
96+ private
97+
98+ def self . find_zone ( tzid )
99+ ( _ , zone ) = tzid &.split ( "=" )
100+ begin
101+ Time . find_zone! ( zone ) if zone . present?
102+ rescue ArgumentError
103+ ( rails_zone , _tzinfo_id ) = ActiveSupport ::TimeZone ::MAPPING . find do |( k , _ ) |
104+ candidate = Time . find_zone! ( k )
105+ candidate . now . strftime ( "%Z" ) == zone
106+ end
107+
108+ Time . find_zone ( rails_zone )
109+ end
110+ end
95111 end
96112end
You can’t perform that action at this time.
0 commit comments