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
# File lib/exodb.rb, line 67 def assembly(str) return Exodb::ASSEMBLY[str.downcase] end
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
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
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
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
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
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
# File lib/exodb.rb, line 55 def noverbose() @@verbose = false end
# File lib/exodb.rb, line 63 def putst(str) puts "Exodb:STATUS #{str}" end
# File lib/exodb.rb, line 59 def putstv(str) putst(str) if @@verbose == true end
Return the session setting
@return [String] the session setting
# File lib/exodb/dbconnection.rb, line 72 def session Mongoid.session(:default) end
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
# File lib/exodb.rb, line 51 def verbose() @@verbose = true end