module Icalendar::Values::Helpers::TimeWithZone
def __getobj__
def __getobj__ orig_value = super if set_offset? orig_value else new_value = Icalendar::Offset.build(orig_value, ical_params, timezone_store)&.normalized_value __setobj__(new_value) unless new_value.nil? new_value || orig_value end end
def initialize(value, params = {})
def initialize(value, params = {}) params = Icalendar::DowncasedHash(params) @tz_utc = params['tzid'] == 'UTC' @timezone_store = params.delete 'x-tz-store' offset = Icalendar::Offset.build(value, params, timezone_store) @offset_value = offset&.normalized_value params['tzid'] = offset.normalized_tzid if offset super (@offset_value || value), params end
def params_ical
def params_ical ical_params.delete 'tzid' if tz_utc super end
def set_offset?
def set_offset? !!@offset_value end