Class: SiSU_DBI::SQL
- Inherits:
-
Object
- Object
- SiSU_DBI::SQL
- Defined in:
- lib/sisu/dbi.rb
Instance Method Summary collapse
- #connect ⇒ Object
-
#initialize(opt) ⇒ SQL
constructor
A new instance of SQL.
- #maintenance_check(opt, file, line) ⇒ Object
- #read_psql ⇒ Object
- #read_sqlite ⇒ Object
Constructor Details
#initialize(opt) ⇒ SQL
Returns a new instance of SQL.
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/sisu/dbi.rb', line 67 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 |
Instance Method Details
#connect ⇒ Object
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 |
# File 'lib/sisu/dbi.rb', line 141 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) ⇒ Object
93 94 95 96 |
# File 'lib/sisu/dbi.rb', line 93 def maintenance_check(opt,file,line) p opt.selections.str p "at #{file} #{line}" end |
#read_psql ⇒ Object
97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 |
# File 'lib/sisu/dbi.rb', line 97 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 ⇒ Object
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 |
# File 'lib/sisu/dbi.rb', line 118 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 |