#### sample boot file ####



require 'bundler/setup'
require 'yaml'
if RUBY_VERSION == 'java'
	require 'orientdb'
end
require "active-orient"
project_root = File.expand_path('../..', __FILE__)
begin
	connect_file = File.expand_path('../../config/connect.yml', __FILE__)
	config_file = File.expand_path('../../config/config.yml', __FILE__)
	connectyml  = YAML.load_file( connect_file )[:orientdb][:admin] if connect_file.present?
	configyml  = YAML.load_file( config_file )[:active_orient] if config_file.present?
	databaseyml   = YAML.load_file( connect_file )[:orientdb][:database] if connect_file.present?
rescue Errno::ENOENT 
	puts "config/connectyml not present"  
	puts "Using defaults to connect database-server"  
end

e=  ARGV.present? ? ARGV.last.downcase : 'development'
env =  if e =~ /^p/
				 :production
			 elsif e =~ /^t/
				 :test
			 else
				 :development
			 end
puts "Using #{env}-environment"

log_file =   if File.exist?(config_file)
							 dev = YAML.load_file( connect_file )[:orientdb][:logger]
							 if dev.blank? || dev== 'stdout'
								 '/dev/stdout'
							 else
								 project_root+'/log/'+env+'.log'
							 end
						 end


logger = Logger.new(log_file)
logger.level = case env
							 when :production 
								 Logger::ERROR
							 when :development
								 Logger::WARN
							 else
								 Logger::INFO
							 end
logger.formatter = proc do |severity, datetime, progname, msg|
	"#{datetime.strftime("%d.%m.(%X)")}#{"%5s" % severity}->#{msg}\n"
end

 ORD = ActiveOrient::Init.connect database: databaseyml[env],
														user: connectyml[:user].to_s,
														password: connectyml[:pass].to_s,
														server: '172.28.50.25',
														logger: logger



 ActiveOrient::Model.keep_models_without_file = true
 ActiveOrient::Init.define_namespace yml: configyml, namespace: @namespace
 ActiveOrient::OrientDB.new  preallocate:  true, 
			model_dir: "#{project_root}/#{ configyml.present? ? configyml[:model_dir] : "model" }"

  if RUBY_PLATFORM == 'java'
    DB =  ActiveOrient::API.new   preallocate: false
  else
    DB = ORD
  end