minor: reorganized constants / errors
This commit is contained in:
parent
4024a5b333
commit
5285f9de8f
67
lib/mongo.rb
67
lib/mongo.rb
@ -1,9 +1,6 @@
|
|||||||
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
$:.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
||||||
|
|
||||||
module Mongo
|
module Mongo
|
||||||
ASCENDING = 1
|
|
||||||
DESCENDING = -1
|
|
||||||
|
|
||||||
VERSION = "0.18.2"
|
VERSION = "0.18.2"
|
||||||
end
|
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"
|
warn " mongo_ext gem is in your load path and that the mongo_ext and mongo gems are of the same version.\n"
|
||||||
end
|
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/binary'
|
||||||
require 'mongo/types/code'
|
require 'mongo/types/code'
|
||||||
require 'mongo/types/dbref'
|
require 'mongo/types/dbref'
|
||||||
@ -34,8 +93,6 @@ require 'mongo/util/conversions'
|
|||||||
require 'mongo/util/server_version'
|
require 'mongo/util/server_version'
|
||||||
require 'mongo/util/bson_ruby'
|
require 'mongo/util/bson_ruby'
|
||||||
|
|
||||||
require 'mongo/errors'
|
|
||||||
require 'mongo/constants'
|
|
||||||
require 'mongo/connection'
|
require 'mongo/connection'
|
||||||
require 'mongo/db'
|
require 'mongo/db'
|
||||||
require 'mongo/cursor'
|
require 'mongo/cursor'
|
||||||
|
@ -234,13 +234,12 @@ module Mongo
|
|||||||
# @param [Hash] selector
|
# @param [Hash] selector
|
||||||
# If specified, only matching documents will be removed.
|
# If specified, only matching documents will be removed.
|
||||||
#
|
#
|
||||||
# Examples
|
# @example remove all documents from the 'users' collection:
|
||||||
# @example: remove all documents from the 'users':
|
# users.remove
|
||||||
# @users.remove
|
# users.remove({})
|
||||||
# @users.remove({})
|
|
||||||
#
|
#
|
||||||
# @example: remove only documents that have expired:
|
# @example remove only documents that have expired:
|
||||||
# @users.remove({:expire => {'$lte' => Time.now}})
|
# users.remove({:expire => {"$lte" => Time.now}})
|
||||||
def remove(selector={})
|
def remove(selector={})
|
||||||
message = ByteBuffer.new
|
message = ByteBuffer.new
|
||||||
message.put_int(0)
|
message.put_int(0)
|
||||||
@ -495,8 +494,8 @@ EOS
|
|||||||
# @collection.distinct("name.age")
|
# @collection.distinct("name.age")
|
||||||
# [27, 24]
|
# [27, 24]
|
||||||
#
|
#
|
||||||
# You may also pass a document selector as the second parameter
|
# # You may also pass a document selector as the second parameter
|
||||||
# to limit the documents over which distinct is run:
|
# # to limit the documents over which distinct is run:
|
||||||
# @collection.distinct("name.age", {"name.age" => {"$gt" => 24}})
|
# @collection.distinct("name.age", {"name.age" => {"$gt" => 24}})
|
||||||
# [27]
|
# [27]
|
||||||
#
|
#
|
||||||
|
@ -45,11 +45,14 @@ module Mongo
|
|||||||
# If connecting to just one server, you may specify whether connection to slave is permitted.
|
# 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.
|
# 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 server name, in which case port is 27017,
|
||||||
# * a port number, in which case the server is "localhost", or
|
# * a port number, in which case the server is "localhost", or
|
||||||
# * an array containing [server_name, port_number]
|
# * 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 [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
|
# @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+.
|
# 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,
|
# @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.
|
# 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
|
# @example localhost, 27017
|
||||||
# Connection.new
|
# Connection.new
|
||||||
@ -78,8 +79,7 @@ module Mongo
|
|||||||
# Connection.new("localhost", 3000, :slave_ok => true)
|
# Connection.new("localhost", 3000, :slave_ok => true)
|
||||||
#
|
#
|
||||||
# @example A pair of servers. The driver will always talk to master.
|
# @example A pair of servers. The driver will always talk to master.
|
||||||
# # On connection errors, Mongo::ConnectionFailure will be raised.
|
# # On connection errors, Mongo::ConnectionFailure will be raised.
|
||||||
# @see http://www.mongodb.org/display/DOCS/Replica+Pairs+in+Ruby Replica pairs in Ruby
|
|
||||||
# Connection.new({:left => ["db1.example.com", 27017],
|
# Connection.new({:left => ["db1.example.com", 27017],
|
||||||
# :right => ["db2.example.com", 27017]})
|
# :right => ["db2.example.com", 27017]})
|
||||||
#
|
#
|
||||||
@ -87,6 +87,8 @@ module Mongo
|
|||||||
# Connection.new({:left => ["db1.example.com", 27017],
|
# Connection.new({:left => ["db1.example.com", 27017],
|
||||||
# :right => ["db2.example.com", 27017]}, nil,
|
# :right => ["db2.example.com", 27017]}, nil,
|
||||||
# :pool_size => 20, :timeout => 5)
|
# :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={})
|
def initialize(pair_or_host=nil, port=nil, options={})
|
||||||
@nodes = format_pair(pair_or_host, port)
|
@nodes = format_pair(pair_or_host, port)
|
||||||
|
|
||||||
|
@ -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
|
|
@ -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
|
|
@ -13,10 +13,11 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
# ++
|
# ++
|
||||||
# nodoc
|
|
||||||
|
#:nodoc:
|
||||||
class Object
|
class Object
|
||||||
|
|
||||||
# nodoc
|
#:nodoc:
|
||||||
def returning(value)
|
def returning(value)
|
||||||
yield value
|
yield value
|
||||||
value
|
value
|
||||||
|
Loading…
Reference in New Issue
Block a user