couchrest_model/lib/couchrest/monkeypatches.rb

38 lines
1.2 KiB
Ruby
Raw Normal View History

2008-09-30 08:39:57 +02:00
# This file must be loaded after the JSON gem and any other library that beats up the Time class.
2008-09-12 06:09:39 +02:00
class Time
2008-09-26 23:31:29 +02:00
# This date format sorts lexicographically
2008-09-30 08:39:57 +02:00
# and is compatible with Javascript's <tt>new Date(time_string)</tt> constructor.
2008-09-26 23:31:29 +02:00
# Note this this format stores all dates in UTC so that collation
2008-09-30 08:39:57 +02:00
# order is preserved. (There's no longer a need to set <tt>ENV['TZ'] = 'UTC'</tt>
2008-09-26 23:31:29 +02:00
# in your application.)
2008-09-12 06:09:39 +02:00
def to_json(options = nil)
2008-09-26 23:31:29 +02:00
u = self.utc
2009-01-14 05:08:58 +01:00
%("#{u.strftime("%Y/%m/%d %H:%M:%S +0000")}")
2008-09-12 06:09:39 +02:00
end
2008-09-26 23:31:29 +02:00
# Decodes the JSON time format to a UTC time.
# Based on Time.parse from ActiveSupport. ActiveSupport's version
# is more complete, returning a time in your current timezone,
# rather than keeping the time in UTC. YMMV.
2008-09-12 06:09:39 +02:00
# def self.parse string, fallback=nil
# d = DateTime.parse(string).new_offset
# self.utc(d.year, d.month, d.day, d.hour, d.min, d.sec)
# rescue
# fallback
# end
end
module RestClient
def self.copy(url, headers={})
Request.execute(:method => :copy,
:url => url,
:headers => headers)
end
def self.move(url, headers={})
Request.execute(:method => :move,
:url => url,
:headers => headers)
end
2008-09-12 06:09:39 +02:00
end