class SiSU_DbSelect::Case

Public Class Methods

new(opt,conn='',sql_type=:pg) click to toggle source
# File lib/sisu/db_select.rb, line 118
def initialize(opt,conn='',sql_type=:pg)
  @opt,@conn,@sql_type=opt,conn,sql_type
  @db=SiSU_Env::InfoDb.new
  @file_maint=sql_maintenance_file
  @sdb={
    create: SiSU_DbDBI::Create.new(@opt,@conn,@file_maint,@sql_type),
    index: SiSU_DbDBI::Index.new(@opt,@conn,@file_maint,@sql_type),
    drop: SiSU_DbDBI::Drop.new(@opt,@conn,@db,@sql_type),
  }
  if (@opt.act[:psql_import][:set]==:on \
  || @opt.act[:psql_update][:set]==:on) \
  or (@opt.act[:sqlite_import][:set]==:on \
  || @opt.act[:sqlite_update][:set]==:on)
    @sdb[:import]=SiSU_DbDBI::Import.new(@opt,@conn,@file_maint,@sql_type)
    @sdb[:remove_doc]=SiSU_DbDBI::Remove.new(@opt,@conn,@file_maint,@sql_type)
  elsif (@opt.act[:psql_remove][:set]==:on \
  or @opt.act[:sqlite_remove][:set]==:on)
    @sdb[:remove_doc]=SiSU_DbDBI::Remove.new(@opt,@conn,@file_maint,@sql_type)
  end
end

Public Instance Methods

cases() click to toggle source
# File lib/sisu/db_select.rb, line 199
def cases
  if @opt.act[:psql_drop][:set] ==:on \
  or @opt.act[:sqlite_drop][:set] ==:on
    db_action(@sdb).drop
  end
  if @opt.act[:psql_createdb][:set] ==:on \
  or @opt.act[:sqlite_createdb][:set] ==:on
    db_action(@sdb).createdb
  end
  if @opt.act[:psql_create][:set] ==:on \
  or @opt.act[:sqlite_create][:set] ==:on
    db_action(@sdb).create
  end
  if @opt.act[:psql_update][:set] ==:on \
  or @opt.act[:sqlite_update][:set] ==:on
    db_action(@sdb).update
  else
    if @opt.act[:psql_remove][:set] ==:on \
    or @opt.act[:sqlite_remove][:set] ==:on
      db_action(@sdb).remove
    end
    if @opt.act[:psql_import][:set] ==:on \
    or @opt.act[:sqlite_import][:set] ==:on
      db_action(@sdb).import
    end
  end
end
db_exist?() click to toggle source
# File lib/sisu/db_select.rb, line 138
def db_exist?
  if @sql_type==:sqlite \
  and (not (FileTest.file?(@db.sqlite.db)) \
  or FileTest.zero?(@db.sqlite.db))
    puts %{no connection with sqlite database established, you may need to run:\n} \
    + %{    sisu --sqlite --createall\n} \
    + %{  before attempting to populate the database}
    SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:yellow).mark(
      "\n" \
      + 'Attempting to initialize db' + "\n" \
      + 'Creating db tables'
    )
    db_action(@sdb).create
  end
  if @conn.is_a?(NilClass)
    if @sql_type==:sqlite
      puts %{no connection with sqlite database established, you may need to run:\n} \
      + %{    sisu --sqlite --createall\n} \
      + %{  before attempting to populate the database}
      SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:yellow).mark(
        "\n" \
        + 'Attempting to initialize db' + "\n" \
        + 'Creating db tables'
      )
      db_action(@sdb).create
      @db.sqlite.db
    else
      puts %{no connection with pg database established, you may need to run:\n} \
      + %{    createdb "#{@db.psql.db}"\n} \
      + %{  after that don't forget to run:\n} \
      + %{    sisu --pg --createall\n} \
      + %{  before attempting to populate the database}
      @db.psql.db
    end
    exit
  end
end
sql_maintenance_file() click to toggle source
# File lib/sisu/db_select.rb, line 175
def sql_maintenance_file
  file=if @opt.act[:maintenance][:set]==:on
    if @opt.fns and not @opt.fns.empty?
      @env=SiSU_Env::InfoEnv.new(@opt.fns) if @opt.fns
      if @sql_type ==:sqlite
        puts "\n#{@env.processing_path.sqlite}/#{@opt.fns}.sql"
      end
      @db=SiSU_Env::InfoDb.new
      @job="sqlite3 #{@db.sqlite.db} < #{@env.processing_path.sqlite}/#{@opt.fns}.sql"
      if @sql_type ==:sqlite
        File.new("#{@env.processing_path.sqlite}/#{@opt.fns}.sql",'w+')
      else
        File.new("#{@env.processing_path.postgresql}/#{@opt.fns}.sql",'w+')
      end
    elsif @opt.fns \
    and (@opt.act[:sqlite_create][:set] ==:on \
    || @opt.act[:psql_create][:set] ==:on)
      nil #sort variations later
    else nil
    end
  else nil
  end
  file
end