module Exodb

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

Script used in Rositza project (Naevi, Spitzoid naevi, Spitzoid melanoma)

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

raise “Please, use ruby 1.9.0 or later.” if RUBY_VERSION < “1.9.0”

Constants

ASSEMBLY
DEFAULTASSEMBLY
HGVPATTERN
LATESTASSEMBLY
NAIUPAC
VERSION

Public Instance Methods

assembly(str) click to toggle source
# File lib/exodb.rb, line 67
def assembly(str)
        return Exodb::ASSEMBLY[str.downcase]
end
connect(connectionstr = {}) click to toggle source

connect to the database without authentication

@param [Hash, String] Connection string or a Hash in format { database: ‘exodus’, hosts: [‘localhost:27017’], username: ‘xxx’, options: {}}

# File lib/exodb/dbconnection.rb, line 30
def connect(connectionstr = {})
        
        settings = { database: 'exodus', hosts: ['localhost:27017'], options: {}}
        
        if connectionstr.is_a?(Hash)
                connectionstr.each_pair {|k, v| settings[k.to_sym] = k.to_sym == :hosts ? [v].flatten : v}
        elsif connectionstr.is_a?(String)
                split1 = connectionstr.split('@')
                settings[:username] = split1[0] if split1.length > 1
                split2 = split1[-1].split('/')
                settings[:database] = split2[1] if split2.length > 1
                settings[:hosts] = [split2[0]].flatten
        end
        
        password = ask("Password:  ") { |q| q.echo = "*" } if settings[:username] && !settings[:password]
        
        Mongoid::Sessions.disconnect
        Mongoid::Sessions.clear
        Mongoid.load_configuration({"sessions"=>{"default"=> password ? settings.merge({password: password}) : settings}})
        
        return "#EXODB:INFO Connection with #{settings}" if Pry.current
end
create_admin(username, database) click to toggle source

To create an admin user

@param [String] user name to be created @param [String] database that user created

# File lib/exodb/usermanage.rb, line 59
def create_admin(username, database)
        
        create_user(username, database, "readWrite", "dbAdmin", "userAdmin")
        
end
create_rouser(username) click to toggle source

To create a read-only user

@param (see create_rwuser)

# File lib/exodb/usermanage.rb, line 78
def create_rouser(username)
        
        create_user(username, Mongoid.session(:default).options[:database], "read")
        
end
create_rwuser(username) click to toggle source

To create a rw user

@param [String] user name to be created @param [String] database that user created

# File lib/exodb/usermanage.rb, line 69
def create_rwuser(username)
        
        create_user(username, Mongoid.session(:default).options[:database], "readWrite")
        
end
create_user(username, database, *roles) click to toggle source

General command for creating a user

@param [String] user name to be created @param [String] database that user created @param [Array] roles to be assigned to the user

# File lib/exodb/usermanage.rb, line 22
def create_user(username, database, *roles)
        
        if database != 'admin'
                
                password = nil
                confirmed = nil
                
                while !password || password != confirmed
                        password = ask("New password:  ") { |q| q.echo = "*" }
                        confirmed = ask("Confirm password:  ") { |q| q.echo = "*" }
                        
                        puts "Password not match!\n" if password != confirmed
                        
                end
                
                if database
                        Mongoid.session(:default).with(database: database).command(
                                createUser: username,
                                pwd: password,
                                roles: roles.flatten
                        )
                else
                        Mongoid.session(:default).command(
                                createUser: username,
                                pwd: password,
                                roles: roles.flatten
                        )
                end
        else
                raise CreateUserError, 'Cannot create user on admin database'
        end
end
current_database() click to toggle source

Return the current database name

@return [String] the database name

# File lib/exodb/dbconnection.rb, line 79
def current_database
        self.session.options[:database]
end
noverbose() click to toggle source
# File lib/exodb.rb, line 55
def noverbose()
        @@verbose = false
end
putst(str) click to toggle source
# File lib/exodb.rb, line 63
def putst(str)
        puts "Exodb:STATUS #{str}"
end
putstv(str) click to toggle source
# File lib/exodb.rb, line 59
def putstv(str)
        putst(str) if @@verbose == true
end
session() click to toggle source

Return the session setting

@return [String] the session setting

# File lib/exodb/dbconnection.rb, line 72
def session
        Mongoid.session(:default)
end
sessionload!(sessionfile = nil) click to toggle source

load session file

@param [String] path to session file

# File lib/exodb/dbconnection.rb, line 19
def sessionload!(sessionfile = nil)
            if sessionfile && File.exist?(sessionfile)
                    Mongoid.load!(sessionfile, :production)
            else
                    Mongoid.load!("#{Dir.pwd}/session.yml", :production) if File.exist?("#{Dir.pwd}/session.yml")
            end
end
verbose() click to toggle source
# File lib/exodb.rb, line 51
def verbose()
        @@verbose = true
end