Sha256: 60deb7fa424e206d8ae9fcedf456c585e3a5f00ebfd64e7a39ea0735736d6e6a

Contents?: true

Size: 1.22 KB

Versions: 4

Compression:

Stored size: 1.22 KB

Contents

# Copyright (C) 2010 Guy Boertje

module Mongo
  module JavaImpl
    module Connection_
      module InstanceMethods

        private

        def get_db_names
          @connection.get_database_names
        end

        def drop_a_db name
          @connection.drop_database(name)
        end
      end

      module ClassMethods
        URI_RE = /^mongodb:\/\/(([-.\w]+):([^@]+)@)?([-.\w]+)(:([\w]+))?(\/([-\w]+))?/
        OPTS_KEYS = %W[maxpoolsize connecttimeoutms autoconnectretry
                       waitqueuemultiple waitqueuetimeoutms sockettimeoutms
                       slaveok safe w wtimeout fsync]

        def _from_uri uri, opts={}
          optarr = []
          unless uri =~ URI_RE
            raise MongoArgumentError, "MongoDB URI incorrect"
          end
          pieces = uri.split("//")
          extra = pieces.last.count('/') == 0 ? "/" : ""
          opts.each do|k,v|
            if OPTS_KEYS.include?(k.to_s) && !v.nil?
              (optarr << "#{k}=#{v}")
            end
          end
          unless optarr.empty?
            uri << "#{extra}?" << optarr.join("&")
          end
          opts[:new_from_uri] = Java::ComMongodb::MongoURI.new(uri)
          new("",0,opts)
        end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
jmongo-1.1.5 lib/jmongo/mongo/connection.rb
jmongo-1.1.4 lib/jmongo/mongo/connection.rb
jmongo-1.1.3 lib/jmongo/mongo/connection.rb
jmongo-1.1.2 lib/jmongo/mongo/connection.rb