diff --git a/lib/mongo.rb b/lib/mongo.rb index 33567d7..7d4a90c 100644 --- a/lib/mongo.rb +++ b/lib/mongo.rb @@ -1,9 +1,6 @@ $:.unshift(File.join(File.dirname(__FILE__), '..', 'lib')) module Mongo - ASCENDING = 1 - DESCENDING = -1 - VERSION = "0.18.2" end @@ -23,6 +20,68 @@ begin warn " mongo_ext gem is in your load path and that the mongo_ext and mongo gems are of the same version.\n" end +module Mongo + ASCENDING = 1 + DESCENDING = -1 + + 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 + + OP_QUERY_SLAVE_OK = 4 + OP_QUERY_NO_CURSOR_TIMEOUT = 16 + end + + # Generic Mongo Ruby Driver exception class. + class MongoRubyError < StandardError; end + + # Raised when MongoDB itself has returned an error. + class MongoDBError < RuntimeError; end + + # Raised when configuration options cause connections, queries, etc., to fail. + class ConfigurationError < MongoRubyError; end + + # Raised when invalid arguments are sent to Mongo Ruby methods. + class MongoArgumentError < MongoRubyError; end + + # Raised when given a string is not valid utf-8 (Ruby 1.8 only). + class InvalidStringEncoding < MongoRubyError; end + + # Raised when attempting to initialize an invalid ObjectID. + class InvalidObjectID < MongoRubyError; end + + # Raised on failures in connection to the database server. + class ConnectionError < MongoRubyError; end + + # Raised on failures in connection to the database server. + class ConnectionTimeoutError < MongoRubyError; end + + # Raised when trying to insert a document that exceeds the 4MB limit or + # when the document contains objects that can't be serialized as BSON. + class InvalidDocument < MongoDBError; end + + # Raised when a database operation fails. + class OperationFailure < MongoDBError; end + + # Raised when a connection operation fails. + class ConnectionFailure < MongoDBError; end + + # Raised when a client attempts to perform an invalid operation. + class InvalidOperation < MongoDBError; end + + # Raised when an invalid name is used. + class InvalidName < RuntimeError; end + + # Raised when the client supplies an invalid value to sort by. + class InvalidSortValueError < MongoRubyError; end +end + require 'mongo/types/binary' require 'mongo/types/code' require 'mongo/types/dbref' @@ -34,8 +93,6 @@ require 'mongo/util/conversions' require 'mongo/util/server_version' require 'mongo/util/bson_ruby' -require 'mongo/errors' -require 'mongo/constants' require 'mongo/connection' require 'mongo/db' require 'mongo/cursor' diff --git a/lib/mongo/collection.rb b/lib/mongo/collection.rb index eca749a..b697834 100644 --- a/lib/mongo/collection.rb +++ b/lib/mongo/collection.rb @@ -234,13 +234,12 @@ module Mongo # @param [Hash] selector # If specified, only matching documents will be removed. # - # Examples - # @example: remove all documents from the 'users': - # @users.remove - # @users.remove({}) + # @example remove all documents from the 'users' collection: + # users.remove + # users.remove({}) # - # @example: remove only documents that have expired: - # @users.remove({:expire => {'$lte' => Time.now}}) + # @example remove only documents that have expired: + # users.remove({:expire => {"$lte" => Time.now}}) def remove(selector={}) message = ByteBuffer.new message.put_int(0) @@ -495,8 +494,8 @@ EOS # @collection.distinct("name.age") # [27, 24] # - # You may also pass a document selector as the second parameter - # to limit the documents over which distinct is run: + # # You may also pass a document selector as the second parameter + # # to limit the documents over which distinct is run: # @collection.distinct("name.age", {"name.age" => {"$gt" => 24}}) # [27] # diff --git a/lib/mongo/connection.rb b/lib/mongo/connection.rb index 71a152d..8affafb 100644 --- a/lib/mongo/connection.rb +++ b/lib/mongo/connection.rb @@ -45,11 +45,14 @@ module Mongo # If connecting to just one server, you may specify whether connection to slave is permitted. # In all cases, the default host is "localhost" and the default port is 27017. # - # When specifying a pair, pair_or_host, is a hash with two keys: :left and :right. Each key maps to either + # When specifying a pair, +pair_or_host+, is a hash with two keys: :left and :right. Each key maps to either # * a server name, in which case port is 27017, # * a port number, in which case the server is "localhost", or # * an array containing [server_name, port_number] # + # Note that there are a few issues when using connection pooling with Ruby 1.9 on Windows. These + # should be resolved in the next release. + # # @param [String, Hash] pair_or_host See explanation above. # @param [Integer] port specify a port number here if only one host is being specified. Leave nil if # specifying a pair of servers in +pair_or_host+. @@ -62,8 +65,6 @@ module Mongo # @option options [Float] :timeout (5.0) When all of the connections to the pool are checked out, # this is the number of seconds to wait for a new connection to be released before throwing an exception. # - # @example Note that there are a few issues when using connection pooling with Ruby 1.9 on Windows. These - # should be resolved in the next release. # # @example localhost, 27017 # Connection.new @@ -78,8 +79,7 @@ module Mongo # Connection.new("localhost", 3000, :slave_ok => true) # # @example A pair of servers. The driver will always talk to master. - # # On connection errors, Mongo::ConnectionFailure will be raised. - # @see http://www.mongodb.org/display/DOCS/Replica+Pairs+in+Ruby Replica pairs in Ruby + # # On connection errors, Mongo::ConnectionFailure will be raised. # Connection.new({:left => ["db1.example.com", 27017], # :right => ["db2.example.com", 27017]}) # @@ -87,6 +87,8 @@ module Mongo # Connection.new({:left => ["db1.example.com", 27017], # :right => ["db2.example.com", 27017]}, nil, # :pool_size => 20, :timeout => 5) + # + # @see http://www.mongodb.org/display/DOCS/Replica+Pairs+in+Ruby Replica pairs in Ruby def initialize(pair_or_host=nil, port=nil, options={}) @nodes = format_pair(pair_or_host, port) diff --git a/lib/mongo/constants.rb b/lib/mongo/constants.rb deleted file mode 100644 index 3a9bb3b..0000000 --- a/lib/mongo/constants.rb +++ /dev/null @@ -1,15 +0,0 @@ -module Mongo - 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 - - OP_QUERY_SLAVE_OK = 4 - OP_QUERY_NO_CURSOR_TIMEOUT = 16 - end -end diff --git a/lib/mongo/errors.rb b/lib/mongo/errors.rb deleted file mode 100644 index e010c99..0000000 --- a/lib/mongo/errors.rb +++ /dev/null @@ -1,60 +0,0 @@ -# Copyright 2009 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. - -# Exceptions raised by the MongoDB driver. - -module Mongo - # Generic Mongo Ruby Driver exception class. - class MongoRubyError < StandardError; end - - # Raised when MongoDB itself has returned an error. - class MongoDBError < RuntimeError; end - - # Raised when configuration options cause connections, queries, etc., to fail. - class ConfigurationError < MongoRubyError; end - - # Raised when invalid arguments are sent to Mongo Ruby methods. - class MongoArgumentError < MongoRubyError; end - - # Raised when given a string is not valid utf-8 (Ruby 1.8 only). - class InvalidStringEncoding < MongoRubyError; end - - # Raised when attempting to initialize an invalid ObjectID. - class InvalidObjectID < MongoRubyError; end - - # Raised on failures in connection to the database server. - class ConnectionError < MongoRubyError; end - - # Raised on failures in connection to the database server. - class ConnectionTimeoutError < MongoRubyError; end - - # Raised when trying to insert a document that exceeds the 4MB limit or - # when the document contains objects that can't be serialized as BSON. - class InvalidDocument < MongoDBError; end - - # Raised when a database operation fails. - class OperationFailure < MongoDBError; end - - # Raised when a connection operation fails. - class ConnectionFailure < MongoDBError; end - - # Raised when a client attempts to perform an invalid operation. - class InvalidOperation < MongoDBError; end - - # Raised when an invalid name is used. - class InvalidName < RuntimeError; end - - # Raised when the client supplies an invalid value to sort by. - class InvalidSortValueError < MongoRubyError; end -end diff --git a/lib/mongo/util/support.rb b/lib/mongo/util/support.rb index 14496c5..9a560e9 100644 --- a/lib/mongo/util/support.rb +++ b/lib/mongo/util/support.rb @@ -13,10 +13,11 @@ # See the License for the specific language governing permissions and # limitations under the License. # ++ -# nodoc + +#:nodoc: class Object - # nodoc + #:nodoc: def returning(value) yield value value