Sha256: ba3cb68a173c374414fa6f2f6403ec08568fe066688f99ef7392878ae80a300e

Contents?: true

Size: 1.14 KB

Versions: 4

Compression:

Stored size: 1.14 KB

Contents

# typed: true
# frozen_string_literal: true

require 'time'

module Workato
  module Connector
    module Sdk
      class Schema
        module Type
          class Time < ::Time
            PRECISION = 6

            def to_s(*args)
              if args.present?
                super
              else
                xmlschema(PRECISION)
              end
            end

            def self.from_time(value)
              new(
                value.year,
                value.month,
                value.day,
                value.hour,
                value.min,
                value.sec + Rational(value.nsec, 1_000_000_000),
                value.utc_offset
              )
            end

            def self.from_date_time(value)
              new(
                value.year,
                value.month,
                value.day,
                value.hour,
                value.min,
                value.sec + Rational(value.nsec, 1_000_000_000),
                value.zone
              )
            end

            def self.xmlschema(str)
              from_time(super)
            end
          end
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
workato-connector-sdk-1.3.14 lib/workato/connector/sdk/schema/type/time.rb
workato-connector-sdk-1.3.13 lib/workato/connector/sdk/schema/type/time.rb
workato-connector-sdk-1.3.12 lib/workato/connector/sdk/schema/type/time.rb
workato-connector-sdk-1.3.11 lib/workato/connector/sdk/schema/type/time.rb