Module: SiSU_DbAction

Included in:
SiSU_DbImport::Import, SiSU_DbRemove::Remove, SiSU_DbSelect::Case
Defined in:
lib/sisu/db_select.rb

Overview

  • Name: SiSU

** Description: documents, structuring, processing, publishing, search *** modules shared by the different db types, dbi, postgresql, sqlite

** Author: Ralph Amissah

<[email protected]>
<[email protected]>

** Copyright: © 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,

2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
All Rights Reserved.

** License: GPL 3 or later:

SiSU, a framework for document structuring, publishing and search

Copyright (C) Ralph Amissah

This program is free software: you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation, either version 3 of the License, or (at your option)
any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along with
this program. If not, see <http://www.gnu.org/licenses/>.

If you have Internet connection, the latest version of the GPL should be
available at these locations:
<http://www.fsf.org/licensing/licenses/gpl.html>
<http://www.gnu.org/licenses/gpl.html>

<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>

** SiSU uses:

* Standard SiSU markup syntax,
* Standard SiSU meta-markup syntax, and the
* Standard SiSU object citation numbering and system

** Hompages:

<http://www.jus.uio.no/sisu>
<http://www.sisudoc.org>

** Git

<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/db_select.rb;hb=HEAD>

Instance Method Summary collapse

Instance Method Details

#createObject



71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# File 'lib/sisu/db_select.rb', line 71

def create
  @sdb[:create].output_dir?
  begin
    @sdb[:create].create_table.
    @sdb[:create].create_table.doc_objects
    @sdb[:create].create_table.endnotes
    @sdb[:create].create_table.endnotes_asterisk
    @sdb[:create].create_table.endnotes_plus
    @sdb[:create].create_table.urls
    @sdb[:index].create_indexes
  rescue
    SiSU_Errors::Rescued.new($!,$@,'--sqlite').location
    @sdb[:create].output_dir? do
      __LINE__.to_s + ':' + __FILE__
    end
  end
end

#createdbObject



60
61
62
63
64
65
66
67
# File 'lib/sisu/db_select.rb', line 60

def createdb
  @sdb[:create].output_dir?
  begin
    @sdb[:create].create_db
  rescue
    @sdb[:create].output_dir?
  end
end

#db_action(sdb) ⇒ Object



58
59
60
61
62
63
64
65
66
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
# File 'lib/sisu/db_select.rb', line 58

def db_action(sdb)
  @sdb=sdb
  def createdb
    @sdb[:create].output_dir?
    begin
      @sdb[:create].create_db
    rescue
      @sdb[:create].output_dir?
    end
  end
  def drop
    @sdb[:drop].drop.tables
  end
  def create
    @sdb[:create].output_dir?
    begin
      @sdb[:create].create_table.
      @sdb[:create].create_table.doc_objects
      @sdb[:create].create_table.endnotes
      @sdb[:create].create_table.endnotes_asterisk
      @sdb[:create].create_table.endnotes_plus
      @sdb[:create].create_table.urls
      @sdb[:index].create_indexes
    rescue
      SiSU_Errors::Rescued.new($!,$@,'--sqlite').location
      @sdb[:create].output_dir? do
        __LINE__.to_s + ':' + __FILE__
      end
    end
  end
  def import
    db_exist?
    @sdb[:import].marshal_load
    tell=case @sql_type
    when :sqlite
      SiSU_Screen::Ansi.new(
        @opt.act[:color_state][:set],
        "sqlite3 #{@db.sqlite.db} database?"
      )
    when :pg
      SiSU_Screen::Ansi.new(
        @opt.act[:color_state][:set],
        "pgaccess or psql #{@db.psql.db} database?"
      )
    else '???'
    end
    tell.puts_grey if @opt.act[:verbose][:set]==:on
  end
  def remove
    db_exist?
    @sdb[:remove_doc].remove
  end
  def update
    remove
    import
  end
  self
end

#dropObject



68
69
70
# File 'lib/sisu/db_select.rb', line 68

def drop
  @sdb[:drop].drop.tables
end

#importObject



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# File 'lib/sisu/db_select.rb', line 88

def import
  db_exist?
  @sdb[:import].marshal_load
  tell=case @sql_type
  when :sqlite
    SiSU_Screen::Ansi.new(
      @opt.act[:color_state][:set],
      "sqlite3 #{@db.sqlite.db} database?"
    )
  when :pg
    SiSU_Screen::Ansi.new(
      @opt.act[:color_state][:set],
      "pgaccess or psql #{@db.psql.db} database?"
    )
  else '???'
  end
  tell.puts_grey if @opt.act[:verbose][:set]==:on
end

#removeObject



106
107
108
109
# File 'lib/sisu/db_select.rb', line 106

def remove
  db_exist?
  @sdb[:remove_doc].remove
end

#updateObject



110
111
112
113
# File 'lib/sisu/db_select.rb', line 110

def update
  remove
  import
end