File tree Expand file tree Collapse file tree 1 file changed +16
-1
lines changed
Expand file tree Collapse file tree 1 file changed +16
-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,20 @@ 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+ Time . find_zone! ( k ) . now . strftime ( "%Z" ) == zone
105+ end
106+
107+ Time . find_zone ( rails_zone )
108+ end
109+ end
95110 end
96111end
You can’t perform that action at this time.
0 commit comments