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, 2016 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]

** 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



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

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



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

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

#db_action(sdb) ⇒ Object



56
57
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
# File 'lib/sisu/db_select.rb', line 56

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



66
67
68
# File 'lib/sisu/db_select.rb', line 66

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

#importObject



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

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



104
105
106
107
# File 'lib/sisu/db_select.rb', line 104

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

#updateObject



108
109
110
111
# File 'lib/sisu/db_select.rb', line 108

def update
  remove
  import
end