class SiSU_DBI::SQL
Public Class Methods
new(opt)
click to toggle source
# File lib/sisu/dbi.rb, line 65 def initialize(opt) @opt=opt @db=SiSU_Env::InfoDb.new if @opt.act[:psql][:set]==:on \ or @opt.act[:sqlite][:set]==:on @sql_type=if @opt.act[:psql][:set]==:on maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on :pg elsif @opt.act[:psql][:set]==:on maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on :pg elsif @opt.act[:sqlite][:set]==:on maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on :sqlite elsif @opt.act[:sqlite][:set]==:on maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on :sqlite else maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on :sqlite end if @sql_type==:pg then SiSU_Env::Load.new('pg',true).prog elsif @sql_type==:sqlite then SiSU_Env::Load.new('sqlite3',true).prog end end end
Public Instance Methods
connect()
click to toggle source
# File lib/sisu/dbi.rb, line 139 def connect case @sql_type when :pg then read_psql #read_pg when :sqlite then read_sqlite end SiSU_Screen::Ansi.new( @opt.act[:color_state][:set], "SQL DB #{@sql_type.upcase}", @opt.fno ).dbi_title unless @opt.act[:quiet][:set]==:on begin SiSU_DbDBI::Case.new(@opt,@conn,@sql_type).cases rescue SiSU_Errors::Rescued.new($!,$@,@cf,@opt.fns).location do __LINE__.to_s + ':' + __FILE__ end ensure end begin rescue connect end end
maintenance_check(opt,file,line)
click to toggle source
# File lib/sisu/dbi.rb, line 91 def maintenance_check(opt,file,line) p opt.selections.str p "at #{file} #{line}" end
read_psql()
click to toggle source
# File lib/sisu/dbi.rb, line 95 def read_psql begin begin require 'pg' rescue LoadError SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). error('pg NOT FOUND (LoadError)') end @conn=@db.psql.conn_pg rescue if @opt.act[:psql_create][:set]==:on cX=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]).cX puts <<-WOK manually create the database: "#{cX.green}#{@db.db}#{cX.off}" if it does not yet exist #{cX.yellow}createdb #{@db.db}#{cX.off} WOK #sudo su -p postgres; createdb #{@db.db}; #[createuser?] end ensure end end
read_sqlite()
click to toggle source
# File lib/sisu/dbi.rb, line 116 def read_sqlite begin begin begin require 'sqlite3' rescue LoadError SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). error('sqlite3 NOT FOUND (LoadError)') end @conn=@db.sqlite.conn_sqlite3 rescue LoadError errmsg='sqlite3 NOT FOUND (LoadError)' if @opt.act[:no_stop][:set]==:on SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). error(errmsg + ', ' + 'attempt to proceed without sqlite output (as requested)') else SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia). error(errmsg + ', ' + 'STOPPING') exit end end end end