class Thumbtack::Types::Time

Handles conversion and validation of Times to parameters supported by Pinboard

@api private

Constants

EARLIEST

The earliest allowable time

FORMAT

Pinboard's date time format

LATEST

The latest allowable time

NOTE_FORMAT

Pinboard's date time format for notes

Public Class Methods

deserialize(parameter) click to toggle source

Convert a parameter from Pinboard to a datetime value

@param [String] parameter

the time formatted yyyy-mm-ddTHH:MM:SSZ

@return [Time]

# File lib/thumbtack/types/time.rb, line 50
def self.deserialize(parameter)
  ::Time.strptime(parameter, FORMAT)
end
deserialize_from_note(parameter) click to toggle source

Convert a parameter from Pinboard's notes to a datetime value

@param [String] parameter

the time formatted yyyy-mm-dd HH:MM:SS

@return [Time]

# File lib/thumbtack/types/time.rb, line 60
def self.deserialize_from_note(parameter)
  ::Time.strptime(parameter, NOTE_FORMAT)
end
serialize(value) click to toggle source

Convert a time to a parameter acceptable to Pinboard

@param [Time] value

the time to convert

@return [String]

the time formatted yyyy-mm-ddTHH:MM:SSZ.
# File lib/thumbtack/types/time.rb, line 40
def self.serialize(value)
  value.strftime(FORMAT)
end
validate(value) click to toggle source

Validate a time

@param [Time] value

The time to validate

@return [self]

@raise [Types::ValidationError]

if the time is not between 0001-01-01 00:00:00 and 2100-01-01 00:00:00
# File lib/thumbtack/types/time.rb, line 28
def self.validate(value)
  RangeValidation.validate value, EARLIEST..LATEST
  self
end