Sha256: d6d1168e75aefab390fd962b66a39e39ebbc29ee4203d4a0e7eaea08235054f9

Contents?: true

Size: 746 Bytes

Versions: 6

Compression:

Stored size: 746 Bytes

Contents

class Time
  
  def self.iso8601(time)
    cached_date_formatter("yyyy-MM-dd'T'HH:mm:ss'Z'").
      dateFromString(time)
  end
  
  def self.iso8601_with_timezone(time)
    cached_date_formatter("yyyy-MM-dd'T'HH:mm:ssZZZZZ").
      dateFromString(time)
  end
  
  def self.iso8601_with_fractional_seconds(time)
    cached_date_formatter("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'").
      dateFromString(time)
  end

  private

  def self.cached_date_formatter(dateFormat)
    Thread.current[:date_formatters] ||= {}
    Thread.current[:date_formatters][dateFormat] ||= 
      NSDateFormatter.alloc.init.tap do |formatter|
        formatter.dateFormat = dateFormat
        formatter.timeZone   = NSTimeZone.timeZoneWithAbbreviation "UTC"
      end
  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
bubble-wrap-1.7.1 motion/core/time.rb
bubble-wrap-1.7.0 motion/core/time.rb
bubble-wrap-1.6.0 motion/core/time.rb
bubble-wrap-1.6.0.rc1 motion/core/time.rb
bubble-wrap-1.5.0 motion/core/time.rb
bubble-wrap-1.5.0.rc1 motion/core/time.rb