2010-05-07 19:33:27 +00:00
|
|
|
# encoding: UTF-8
|
2011-01-17 17:26:32 +00:00
|
|
|
#
|
|
|
|
# --
|
|
|
|
# Copyright (C) 2008-2011 10gen Inc.
|
|
|
|
#
|
|
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
# you may not use this file except in compliance with the License.
|
|
|
|
# You may obtain a copy of the License at
|
|
|
|
#
|
|
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
#
|
|
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
# See the License for the specific language governing permissions and
|
|
|
|
# limitations under the License.
|
|
|
|
# ++
|
2010-05-07 19:33:27 +00:00
|
|
|
|
2009-11-25 16:43:25 +00:00
|
|
|
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
2009-10-26 19:34:45 +00:00
|
|
|
|
2009-12-01 18:49:57 +00:00
|
|
|
module Mongo
|
2011-04-01 17:54:09 +00:00
|
|
|
VERSION = "1.3.0"
|
2009-12-01 18:49:57 +00:00
|
|
|
end
|
|
|
|
|
2010-01-08 20:43:13 +00:00
|
|
|
module Mongo
|
2010-03-16 19:59:26 +00:00
|
|
|
ASCENDING = 1
|
2010-01-08 20:43:13 +00:00
|
|
|
DESCENDING = -1
|
2010-03-16 19:59:26 +00:00
|
|
|
GEO2D = '2d'
|
2010-01-08 20:43:13 +00:00
|
|
|
|
2010-12-29 23:06:31 +00:00
|
|
|
DEFAULT_MAX_BSON_SIZE = 4 * 1024 * 1024
|
|
|
|
|
2010-01-08 20:43:13 +00:00
|
|
|
module Constants
|
|
|
|
OP_REPLY = 1
|
|
|
|
OP_MSG = 1000
|
|
|
|
OP_UPDATE = 2001
|
|
|
|
OP_INSERT = 2002
|
|
|
|
OP_QUERY = 2004
|
|
|
|
OP_GET_MORE = 2005
|
|
|
|
OP_DELETE = 2006
|
|
|
|
OP_KILL_CURSORS = 2007
|
|
|
|
|
2010-07-12 16:11:01 +00:00
|
|
|
OP_QUERY_TAILABLE = 2 ** 1
|
|
|
|
OP_QUERY_SLAVE_OK = 2 ** 2
|
|
|
|
OP_QUERY_OPLOG_REPLAY = 2 ** 3
|
|
|
|
OP_QUERY_NO_CURSOR_TIMEOUT = 2 ** 4
|
|
|
|
OP_QUERY_AWAIT_DATA = 2 ** 5
|
|
|
|
OP_QUERY_EXHAUST = 2 ** 6
|
|
|
|
|
|
|
|
REPLY_CURSOR_NOT_FOUND = 2 ** 0
|
|
|
|
REPLY_QUERY_FAILURE = 2 ** 1
|
|
|
|
REPLY_SHARD_CONFIG_STALE = 2 ** 2
|
|
|
|
REPLY_AWAIT_CAPABLE = 2 ** 3
|
2010-01-08 20:43:13 +00:00
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2010-04-05 14:39:55 +00:00
|
|
|
require 'bson'
|
|
|
|
|
2010-04-06 21:56:21 +00:00
|
|
|
require 'mongo/util/conversions'
|
2009-10-22 18:10:12 +00:00
|
|
|
require 'mongo/util/support'
|
2010-03-16 17:56:30 +00:00
|
|
|
require 'mongo/util/core_ext'
|
2010-11-16 20:43:59 +00:00
|
|
|
require 'mongo/util/pool'
|
2009-10-26 18:54:33 +00:00
|
|
|
require 'mongo/util/server_version'
|
2010-12-10 21:00:35 +00:00
|
|
|
require 'mongo/util/uri_parser'
|
2009-10-20 19:44:46 +00:00
|
|
|
|
2010-01-11 16:38:35 +00:00
|
|
|
require 'mongo/collection'
|
2009-08-20 22:48:09 +00:00
|
|
|
require 'mongo/connection'
|
2010-12-10 21:00:35 +00:00
|
|
|
require 'mongo/repl_set_connection'
|
2008-11-22 01:00:51 +00:00
|
|
|
require 'mongo/cursor'
|
2010-01-11 16:38:35 +00:00
|
|
|
require 'mongo/db'
|
|
|
|
require 'mongo/exceptions'
|
2010-05-05 15:07:52 +00:00
|
|
|
require 'mongo/gridfs/grid_ext'
|
2010-02-12 23:03:07 +00:00
|
|
|
require 'mongo/gridfs/grid'
|
|
|
|
require 'mongo/gridfs/grid_io'
|
2010-10-14 20:35:13 +00:00
|
|
|
if RUBY_PLATFORM =~ /java/
|
|
|
|
require 'mongo/gridfs/grid_io_fix'
|
|
|
|
end
|
2010-02-18 21:31:25 +00:00
|
|
|
require 'mongo/gridfs/grid_file_system'
|
2010-10-14 20:35:13 +00:00
|
|
|
|
2011-03-28 15:09:27 +00:00
|
|
|
# Use SystemTimer on Ruby 1.8
|
|
|
|
if !defined?(RUBY_ENGINE) || (RUBY_ENGINE == 'ruby' && RUBY_VERSION < '1.9.0')
|
|
|
|
begin
|
|
|
|
require 'system_timer'
|
2011-03-29 15:46:29 +00:00
|
|
|
if SystemTimer.method(:timeout).arity.abs != 2
|
|
|
|
raise LoadError
|
|
|
|
end
|
2011-03-28 15:09:27 +00:00
|
|
|
Mongo::TimeoutHandler = SystemTimer
|
|
|
|
rescue LoadError
|
2011-03-29 15:46:29 +00:00
|
|
|
warn "Could not load SystemTimer >= v1.2.0. Falling back to timeout.rb. " +
|
2011-03-28 15:09:27 +00:00
|
|
|
"SystemTimer is STRONGLY recommended for timeouts in Ruby 1.8.7. " +
|
2011-03-29 15:46:29 +00:00
|
|
|
"See http://ph7spot.com/blog/system-timer-1-2-release for details."
|
2011-03-28 15:09:27 +00:00
|
|
|
require 'timeout'
|
|
|
|
Mongo::TimeoutHandler = Timeout
|
|
|
|
end
|
|
|
|
else
|
|
|
|
require 'timeout'
|
|
|
|
Mongo::TimeoutHandler = Timeout
|
|
|
|
end
|