lib/lutaml/model/type/time.rb
require "time" module Lutaml module Model module Type class Time < Value def self.cast(value) return nil if value.nil? case value when ::Time then value when ::DateTime then value.to_time else ::Time.parse(value.to_s) end rescue ArgumentError nil end def self.serialize(value) return nil if value.nil? value = cast(value) # value&.strftime("%Y-%m-%dT%H:%M:%S%:z") value&.iso8601 end # # xs:time format (HH:MM:SS.mmm±HH:MM) def to_xml value&.iso8601 end # # ISO8601 time format # def to_json # value&.iso8601 # end # YAML timestamp format (native) def to_yaml value&.iso8601 end # # TOML time format (HH:MM:SS.mmm) # def to_toml # value&.strftime("%H:%M:%S.%L") # end end end end end