require 'tzinfo' require_relative 'base' module Amsi class AttributeParser # Parse the response value of a date with time attribute. class DateTime < Base # AMSI time strings are assumed to be in Central time. TIME_ZONE = TZInfo::Timezone.get('America/Chicago') private_constant :TIME_ZONE # @return [Date] the parsed attribute value def parse return if value == '' date_time = ::DateTime.parse(value) TIME_ZONE.local_to_utc(date_time) { |periods| periods.last } rescue ArgumentError raise Error::InvalidResponse, "Invalid date/time response value: #{value}" end end end end