Sha256: 0b9fb1c93d41be2f579596c383039e4c72a43d4afeb1833105377d4a69829425

Contents?: true

Size: 1.15 KB

Versions: 3

Compression:

Stored size: 1.15 KB

Contents

require File.join(File.dirname(__FILE__), 'support', 'class')
require 'timeout'

# This file must be loaded after the JSON gem and any other library that beats up the Time class.
class Time
  # This date format sorts lexicographically
  # and is compatible with Javascript's <tt>new Date(time_string)</tt> constructor.
  # Note this this format stores all dates in UTC so that collation 
  # order is preserved. (There's no longer a need to set <tt>ENV['TZ'] = 'UTC'</tt>
  # in your application.)

  def to_json(options = nil)
    u = self.getutc
    %("#{u.strftime("%Y/%m/%d %H:%M:%S +0000")}")
  end

end

# Monkey patch for faster net/http io
if RUBY_VERSION.to_f < 1.9
  class Net::BufferedIO #:nodoc:
    alias :old_rbuf_fill :rbuf_fill
    def rbuf_fill
      if @io.respond_to?(:read_nonblock)
        begin
          @rbuf << @io.read_nonblock(65536)
        rescue Errno::EWOULDBLOCK
          if IO.select([@io], nil, nil, @read_timeout)
            retry
          else
            raise Timeout::Error, "IO timeout"
          end
        end
      else
        timeout(@read_timeout) do
          @rbuf << @io.sysread(65536)
        end
      end
    end
  end
end


Version data entries

3 entries across 3 versions & 2 rubygems

Version Path
couchrest-1.0.0.beta2 lib/couchrest/monkeypatches.rb
couchrest-1.0.0.beta lib/couchrest/monkeypatches.rb
samlown-couchrest-1.0.0 lib/couchrest/monkeypatches.rb