class Icalendar::Offset

def self.build(value, params, timezone_store)

def self.build(value, params, timezone_store)
  return nil if params.nil? || params['tzid'].nil?
  tzid = Array(params['tzid']).first
  [
    Icalendar::Offset::ActiveSupportExact,
    Icalendar::Offset::TimeZoneStore,
    Icalendar::Offset::ActiveSupportPartial,
    Icalendar::Offset::Null
  ].lazy.map { |klass| klass.new(tzid, value, timezone_store) }.detect(&:valid?)
end

def initialize(tzid, value, timezone_store)

def initialize(tzid, value, timezone_store)
  @tzid = tzid
  @value = value
  @timezone_store = timezone_store
end

def normalized_tzid

def normalized_tzid
  Array(tzid)
end

def support_classes_defined?

def support_classes_defined?
  defined?(ActiveSupport::TimeZone) &&
    defined?(Icalendar::Values::Helpers::ActiveSupportTimeWithZoneAdapter)
end