class Object
Public Instance Methods
as_json(*args)
click to toggle source
# File lib/date_time_precision/format/json.rb, line 8 def as_json(*args) to_h end
iso8601(fraction_digits=0)
click to toggle source
# File lib/date_time_precision/format/iso8601.rb, line 20 def iso8601(fraction_digits=0) fraction_digits = fraction_digits.to_i precision = self.precision || 0 format = "" if precision > DateTimePrecision::NONE # Add date part to format format << DateTimePrecision::ISO8601_DATE_FRAGMENTS.take([3,self.precision].min).join('-') end if precision > DateTimePrecision::DAY format << "T#{DateTimePrecision::ISO8601_TIME_FRAGMENTS.take(precision - 3).join(':')}" end output = sprintf(format, year < 0 ? 5 : 4, *self.fragments) # Fractional seconds if fraction_digits > 0 && usec? && usec > 0 if fraction_digits <= 6 output << '.' + sprintf('%06d', usec)[0, fraction_digits] else output << '.' + sprintf('%06d', usec) + '0' * (fraction_digits - 6) end end # Timezone if precision > DateTimePrecision::DAY if utc? output << 'Z' else off = utc_offset sign = off < 0 ? '-' : '+' output << sprintf('%s%02d:%02d', sign, *(off.abs / 60).divmod(60)) end end output end
to_json(opts = {})
click to toggle source
# File lib/date_time_precision/format/json.rb, line 12 def to_json(opts = {}) to_h.to_json(opts) end
xmlschema(fraction_digits=0)
click to toggle source
# File lib/date_time_precision/format/iso8601.rb, line 12 def xmlschema(fraction_digits=0) iso8601(fraction_digits) end