From 2f8254f7ac2e22d3214b869cfe79b27d8d84ef22 Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Sun, 10 Feb 2013 08:45:06 -0500 Subject: v4 (v3): dbi_discrete, discreet should have been discrete, renames accordingly --- data/doc/sisu/CHANGELOG_v3 | 2 + data/doc/sisu/CHANGELOG_v4 | 2 + lib/sisu/v3/dbi_discreet.rb | 182 -------------------------------------------- lib/sisu/v3/dbi_discrete.rb | 182 ++++++++++++++++++++++++++++++++++++++++++++ lib/sisu/v3/hub.rb | 6 +- lib/sisu/v3/manifest.rb | 10 +-- lib/sisu/v3/options.rb | 2 +- lib/sisu/v3/sysenv.rb | 30 ++++---- lib/sisu/v3/urls.rb | 8 +- lib/sisu/v4/dbi_discreet.rb | 182 -------------------------------------------- lib/sisu/v4/dbi_discrete.rb | 182 ++++++++++++++++++++++++++++++++++++++++++++ lib/sisu/v4/hub.rb | 8 +- lib/sisu/v4/manifest.rb | 10 +-- lib/sisu/v4/options.rb | 2 +- lib/sisu/v4/sysenv.rb | 30 ++++---- lib/sisu/v4/urls.rb | 8 +- 16 files changed, 425 insertions(+), 421 deletions(-) delete mode 100644 lib/sisu/v3/dbi_discreet.rb create mode 100644 lib/sisu/v3/dbi_discrete.rb delete mode 100644 lib/sisu/v4/dbi_discreet.rb create mode 100644 lib/sisu/v4/dbi_discrete.rb diff --git a/data/doc/sisu/CHANGELOG_v3 b/data/doc/sisu/CHANGELOG_v3 index 446742b8..79024065 100644 --- a/data/doc/sisu/CHANGELOG_v3 +++ b/data/doc/sisu/CHANGELOG_v3 @@ -35,6 +35,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_3.3.10.orig.tar.xz sisu_3.3.10.orig.tar.xz sisu_3.3.10-1.dsc +* v3: dbi_discrete, discreet should have been discrete, renames accordingly + %% 3.3.9.orig.tar.xz (2013-02-06:05/3) http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_3.3.9 http://www.jus.uio.no/sisu/pkg/src/sisu_3.3.9.orig.tar.xz diff --git a/data/doc/sisu/CHANGELOG_v4 b/data/doc/sisu/CHANGELOG_v4 index 09651e0d..a00382e7 100644 --- a/data/doc/sisu/CHANGELOG_v4 +++ b/data/doc/sisu/CHANGELOG_v4 @@ -24,6 +24,8 @@ http://www.jus.uio.no/sisu/pkg/src/sisu_4.0.7.orig.tar.xz sisu_4.0.7.orig.tar.xz sisu_4.0.7-1.dsc +* v4: dbi_discrete, discreet should have been discrete, renames accordingly + %% 4.0.6.orig.tar.xz (2013-02-07:05/4) http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/sisu_4.0.6 http://sources.sisudoc.org/gitweb/?p=code/sisu.git;a=shortlog;h=refs/tags/debian/sisu_4.0.6-1 diff --git a/lib/sisu/v3/dbi_discreet.rb b/lib/sisu/v3/dbi_discreet.rb deleted file mode 100644 index e26e119c..00000000 --- a/lib/sisu/v3/dbi_discreet.rb +++ /dev/null @@ -1,182 +0,0 @@ -# encoding: utf-8 -=begin - - * Name: SiSU - - * Description: a framework for document structuring, publishing and search - - * Author: Ralph Amissah - - * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 . - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - - - - - - * SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - - * Hompages: - - - - * Download: - - - * Ralph Amissah - - - - ** Description: postgresql module, dbi import frame - -=end -module SiSU_DBI_Discreet #% database building - require_relative 'help' # help.rb - require_relative 'sysenv' # sysenv.rb - include SiSU_Env; include SiSU_Screen - require_relative 'param' # param.rb - include SiSU_Param - require_relative 'db_dbi' # db_dbi.rb - include SiSU_DbDBI - require_relative 'shared_html_lite' # shared_html_lite.rb - include SiSU_FormatShared - require 'fileutils' - include FileUtils::Verbose - class SQL - def initialize(opt) - SiSU_Env::Load.new('dbi',true).prog - @opt=opt - @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) - @md=@particulars.md - if @opt.cmd =~/[d]/ \ - or @opt.mod.inspect =~/--((?:sq)?lite)/ - @sql_type='sqlite' - maintenance_check(@opt,__FILE__,__LINE__) if @opt.cmd.inspect =~/M/ - end - @output_path=@md.file.output_path.sqlite_discreet.dir - @filename=@md.file.base_filename.sqlite_discreet - @file_maint=sql_maintenance_file - @file="#{@output_path}/#{@filename}" - end - def build - prepare - create_and_populate - end - def maintenance_check(opt,file,line) - p opt.mod - p opt.cmd - p "at #{file} #{line}" - end - def prepare - if not FileTest.directory?(@output_path) - FileUtils::mkdir_p(@output_path) - elsif @file - FileUtils::rm_rf(@file) - end - end - def db_exist?(db,conn) - msg=%{no connection with sqlite database established, createdb "#{db.sqlite.db}"?} - if (not (FileTest.file?(db.sqlite.db)) \ - or FileTest.zero?(db.sqlite.db)) - puts msg - exit - end - if conn.is_a?(NilClass) - puts msg - exit - end - end - def create_and_populate - db=SiSU_Env::DbOp.new(@md) - conn=db.sqlite_discreet.conn_sqlite3 - sdb=SiSU_DbDBI::Create.new(@opt,conn,@file,'sqlite') - sdb_index=SiSU_DbDBI::Index.new(@opt,conn,@file,'sqlite') - sdb.output_dir? - begin - SiSU_Screen::Ansi.new(@opt.cmd,'SQLite',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}").green_title_hi unless @opt.cmd =~/q/ - sdb.create_db - sdb.create_table.metadata_and_text - sdb.create_table.doc_objects - sdb.create_table.endnotes - sdb.create_table.endnotes_asterisk - sdb.create_table.endnotes_plus - sdb.create_table.urls - sdb_index.create_indexes - db_exist?(db,conn) - sdb_import=SiSU_DbDBI::Import.new(@opt,conn,@file_maint,'sqlite') - sdb_import.marshal_load - tell=SiSU_Screen::Ansi.new(@opt.cmd,"sqlite3 #{db.sqlite.db} database?") - tell.puts_grey if @opt.cmd =~/v/ - rescue - SiSU_Errors::InfoError.new($!,$@,'-d').error do - __LINE__.to_s + ':' + __FILE__ - end - sdb.output_dir? - end - end - def read_sqlite - begin - @conn=@db.sqlite.conn_sqlite3 - rescue - ensure - end - end - def connect - begin - sql_type='sqlite' - SiSU_Screen::Ansi.new(@opt.cmd,"DBI (#{@sql_type}) #{@opt.mod}",@opt.fns).dbi_title unless @opt.cmd =~/q/ - @db.sqlite_discreet.conn_sqlite3 - rescue - SiSU_Errors::InfoError.new($!,$@,@cf,@opt.fns).error do - __LINE__.to_s + ':' + __FILE__ - end - ensure - end - end - def populate - end - def sql_maintenance_file - file=if @opt.inspect =~/M/ - x=if @opt.fns and not @opt.fns.empty? - @env=SiSU_Env::InfoEnv.new(@opt.fns) if @opt.fns - puts "\n#{@env.processing_path.sqlite}/#{@opt.fns}.sql" if @sql_type =~/sqlite/ and @opt.cmd =~/M/ - @db=SiSU_Env::InfoDb.new - @job="sqlite3 #{@db.sqlite.db} < #{@env.processing_path.sqlite}/#{@opt.fns}.sql" - File.new("#{@env.processing_path.sqlite}/#{@opt.fns}.sql",'w+') - elsif @opt.fns \ - and @opt.fns.inspect =~/create/ - nil #sort variations later - else nil - end - else nil - end - file - end - end -end -__END__ diff --git a/lib/sisu/v3/dbi_discrete.rb b/lib/sisu/v3/dbi_discrete.rb new file mode 100644 index 00000000..f670cb27 --- /dev/null +++ b/lib/sisu/v3/dbi_discrete.rb @@ -0,0 +1,182 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 . + + If you have Internet connection, the latest version of the GPL should be + available at these locations: + + + + + + * SiSU uses: + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + * Hompages: + + + + * Download: + + + * Ralph Amissah + + + + ** Description: postgresql module, dbi import frame + +=end +module SiSU_DBI_Discrete #% database building + require_relative 'help' # help.rb + require_relative 'sysenv' # sysenv.rb + include SiSU_Env; include SiSU_Screen + require_relative 'param' # param.rb + include SiSU_Param + require_relative 'db_dbi' # db_dbi.rb + include SiSU_DbDBI + require_relative 'shared_html_lite' # shared_html_lite.rb + include SiSU_FormatShared + require 'fileutils' + include FileUtils::Verbose + class SQL + def initialize(opt) + SiSU_Env::Load.new('dbi',true).prog + @opt=opt + @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) + @md=@particulars.md + if @opt.cmd =~/[d]/ \ + or @opt.mod.inspect =~/--((?:sq)?lite)/ + @sql_type='sqlite' + maintenance_check(@opt,__FILE__,__LINE__) if @opt.cmd.inspect =~/M/ + end + @output_path=@md.file.output_path.sqlite_discrete.dir + @filename=@md.file.base_filename.sqlite_discrete + @file_maint=sql_maintenance_file + @file="#{@output_path}/#{@filename}" + end + def build + prepare + create_and_populate + end + def maintenance_check(opt,file,line) + p opt.mod + p opt.cmd + p "at #{file} #{line}" + end + def prepare + if not FileTest.directory?(@output_path) + FileUtils::mkdir_p(@output_path) + elsif @file + FileUtils::rm_rf(@file) + end + end + def db_exist?(db,conn) + msg=%{no connection with sqlite database established, createdb "#{db.sqlite.db}"?} + if (not (FileTest.file?(db.sqlite.db)) \ + or FileTest.zero?(db.sqlite.db)) + puts msg + exit + end + if conn.is_a?(NilClass) + puts msg + exit + end + end + def create_and_populate + db=SiSU_Env::DbOp.new(@md) + conn=db.sqlite_discrete.conn_sqlite3 + sdb=SiSU_DbDBI::Create.new(@opt,conn,@file,'sqlite') + sdb_index=SiSU_DbDBI::Index.new(@opt,conn,@file,'sqlite') + sdb.output_dir? + begin + SiSU_Screen::Ansi.new(@opt.cmd,'SQLite',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}").green_title_hi unless @opt.cmd =~/q/ + sdb.create_db + sdb.create_table.metadata_and_text + sdb.create_table.doc_objects + sdb.create_table.endnotes + sdb.create_table.endnotes_asterisk + sdb.create_table.endnotes_plus + sdb.create_table.urls + sdb_index.create_indexes + db_exist?(db,conn) + sdb_import=SiSU_DbDBI::Import.new(@opt,conn,@file_maint,'sqlite') + sdb_import.marshal_load + tell=SiSU_Screen::Ansi.new(@opt.cmd,"sqlite3 #{db.sqlite.db} database?") + tell.puts_grey if @opt.cmd =~/v/ + rescue + SiSU_Errors::InfoError.new($!,$@,'-d').error do + __LINE__.to_s + ':' + __FILE__ + end + sdb.output_dir? + end + end + def read_sqlite + begin + @conn=@db.sqlite.conn_sqlite3 + rescue + ensure + end + end + def connect + begin + sql_type='sqlite' + SiSU_Screen::Ansi.new(@opt.cmd,"DBI (#{@sql_type}) #{@opt.mod}",@opt.fns).dbi_title unless @opt.cmd =~/q/ + @db.sqlite_discrete.conn_sqlite3 + rescue + SiSU_Errors::InfoError.new($!,$@,@cf,@opt.fns).error do + __LINE__.to_s + ':' + __FILE__ + end + ensure + end + end + def populate + end + def sql_maintenance_file + file=if @opt.inspect =~/M/ + x=if @opt.fns and not @opt.fns.empty? + @env=SiSU_Env::InfoEnv.new(@opt.fns) if @opt.fns + puts "\n#{@env.processing_path.sqlite}/#{@opt.fns}.sql" if @sql_type =~/sqlite/ and @opt.cmd =~/M/ + @db=SiSU_Env::InfoDb.new + @job="sqlite3 #{@db.sqlite.db} < #{@env.processing_path.sqlite}/#{@opt.fns}.sql" + File.new("#{@env.processing_path.sqlite}/#{@opt.fns}.sql",'w+') + elsif @opt.fns \ + and @opt.fns.inspect =~/create/ + nil #sort variations later + else nil + end + else nil + end + file + end + end +end +__END__ diff --git a/lib/sisu/v3/hub.rb b/lib/sisu/v3/hub.rb index 73155047..4ab701bb 100644 --- a/lib/sisu/v3/hub.rb +++ b/lib/sisu/v3/hub.rb @@ -340,9 +340,9 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on require_relative 'texinfo' # -I texinfo.rb SiSU_TexInfo::Source.new(@opt).read end - if @opt.act[:sqlite_discreet][:set]==:on #% --sqlite, -d DB sqlite - require_relative 'dbi_discreet' # -d dbi_discreet.rb - SiSU_DBI_Discreet::SQL.new(@opt).build + if @opt.act[:sqlite_discrete][:set]==:on #% --sqlite, -d DB sqlite + require_relative 'dbi_discrete' # -d dbi_discrete.rb + SiSU_DBI_Discrete::SQL.new(@opt).build end if @opt.act[:manifest][:set]==:on #% --manifest, -y require_relative 'manifest' # -y manifest.rb diff --git a/lib/sisu/v3/manifest.rb b/lib/sisu/v3/manifest.rb index 58bc60d5..19c000aa 100644 --- a/lib/sisu/v3/manifest.rb +++ b/lib/sisu/v3/manifest.rb @@ -398,11 +398,11 @@ module SiSU_Manifest id,file='Manpage',@f.base_filename.manpage summarize(id,file,pth,rel,url) end - if FileTest.file?(@f.place_file.sqlite_discreet.dir)==true - id,file='SQLite3 file',@f.base_filename.sqlite_discreet - pth=@f.output_path.sqlite_discreet.dir - rel=@f.output_path.sqlite_discreet.rel_sm - url=@f.output_path.sqlite_discreet.url + if FileTest.file?(@f.place_file.sqlite_discrete.dir)==true + id,file='SQLite3 file',@f.base_filename.sqlite_discrete + pth=@f.output_path.sqlite_discrete.dir + rel=@f.output_path.sqlite_discrete.rel_sm + url=@f.output_path.sqlite_discrete.url summarize(id,file,pth,rel,url) end if FileTest.file?(@f.place_file.txt.dir)==true diff --git a/lib/sisu/v3/options.rb b/lib/sisu/v3/options.rb index 444d94bc..0d6c2481 100644 --- a/lib/sisu/v3/options.rb +++ b/lib/sisu/v3/options.rb @@ -722,7 +722,7 @@ module SiSU_Commandline && (mod.inspect =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:sqlite_discreet]=(cmd =~/d/ \ + act[:sqlite_discrete]=(cmd =~/d/ \ || mod.inspect =~/"--sql"|"--sqlite"/) \ && (mod.inspect =~/"--both"/ \ || mod.inspect !~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ diff --git a/lib/sisu/v3/sysenv.rb b/lib/sisu/v3/sysenv.rb index 8ed17f88..2255cc4f 100644 --- a/lib/sisu/v3/sysenv.rb +++ b/lib/sisu/v3/sysenv.rb @@ -3249,10 +3249,10 @@ WOK || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) inp << @f.output_path.pdf.rel + '/' + @opt.fnb + '*' end - if (@opt.act[:sqlite_discreet][:set]==:on \ + if (@opt.act[:sqlite_discrete][:set]==:on \ || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ - && FileTest.file?(@f.place_file.sqlite_discreet.dir) - inp << @f.place_file.sqlite_discreet.rel + && FileTest.file?(@f.place_file.sqlite_discrete.dir) + inp << @f.place_file.sqlite_discrete.rel end if (@opt.act[:qrcode][:set]==:on \ || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ @@ -3903,7 +3903,7 @@ WOK def db "#{@env.path.webserv}/#{@pwd_stub}/sisu_sqlite.db" end - def db_discreet(md) + def db_discrete(md) # "#{@env.path.webserv}/#{@pwd_stub}/sisu_sqlite.db" end def dbi @@ -3932,21 +3932,21 @@ WOK ensure end end - def sqlite_discreet + def sqlite_discrete def db - "#{@md.file.output_path.sqlite_discreet.dir}/#{@md.file.base_filename.sqlite_discreet}" + "#{@md.file.output_path.sqlite_discrete.dir}/#{@md.file.base_filename.sqlite_discrete}" end def dbi - "DBI:SQLite3:#{sqlite_discreet.db}" + "DBI:SQLite3:#{sqlite_discrete.db}" end def sqlite3 - sqlite_discreet.db + sqlite_discrete.db end def conn_dbi - DBI.connect(sqlite_discreet.dbi) + DBI.connect(sqlite_discrete.dbi) end def conn_sqlite3 - SQLite3::Database.new(sqlite_discreet.sqlite3) + SQLite3::Database.new(sqlite_discrete.sqlite3) end self end @@ -4295,12 +4295,12 @@ WOK end self end - def sqlite_discreet + def sqlite_discrete def dir - output_path.sqlite_discreet.dir + '/' + base_filename.sqlite_discreet + output_path.sqlite_discrete.dir + '/' + base_filename.sqlite_discrete end def rel - output_path.sqlite_discreet.rel + '/' + base_filename.sqlite_discreet + output_path.sqlite_discrete.rel + '/' + base_filename.sqlite_discrete end self end @@ -4594,7 +4594,7 @@ WOK @md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft end end - def sqlite_discreet + def sqlite_discrete ft='.sql.db' if output_dir_structure.by_language_code? @md.fnb + ft @@ -5244,7 +5244,7 @@ WOK end self end - def sqlite_discreet + def sqlite_discrete def ft 'sql' end diff --git a/lib/sisu/v3/urls.rb b/lib/sisu/v3/urls.rb index a9a27bff..d2dac6da 100644 --- a/lib/sisu/v3/urls.rb +++ b/lib/sisu/v3/urls.rb @@ -220,8 +220,8 @@ module SiSU_Urls def sqlite(x,y) SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x} DBI sqlite","sqlite3 #{@env.path.webserv}/#{@md.opt.f_pth[:pth_stub]}/sisu_sqlite.db").result end - def sqlite_discreet(x,y) - SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","sqlite3 #{@md.file.output_path.sqlite_discreet.dir}/#{@md.file.base_filename.sqlite_discreet}").result + def sqlite_discrete(x,y) + SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","sqlite3 #{@md.file.output_path.sqlite_discrete.dir}/#{@md.file.base_filename.sqlite_discrete}").result end self end @@ -304,8 +304,8 @@ module SiSU_Urls show.db.psql(x,y) end if x=~/d\s+--sqlite\b|--sql\b/ \ - and @opt.act[:sqlite_discreet][:set]==:on - show.db.sqlite_discreet(x,y) + and @opt.act[:sqlite_discrete][:set]==:on + show.db.sqlite_discrete(x,y) end if x=~/d\[iu\]\s+--sqlite\b/ \ and @opt.act[:sqlite][:set]==:on diff --git a/lib/sisu/v4/dbi_discreet.rb b/lib/sisu/v4/dbi_discreet.rb deleted file mode 100644 index e26e119c..00000000 --- a/lib/sisu/v4/dbi_discreet.rb +++ /dev/null @@ -1,182 +0,0 @@ -# encoding: utf-8 -=begin - - * Name: SiSU - - * Description: a framework for document structuring, publishing and search - - * Author: Ralph Amissah - - * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 . - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - - - - - - * SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - - * Hompages: - - - - * Download: - - - * Ralph Amissah - - - - ** Description: postgresql module, dbi import frame - -=end -module SiSU_DBI_Discreet #% database building - require_relative 'help' # help.rb - require_relative 'sysenv' # sysenv.rb - include SiSU_Env; include SiSU_Screen - require_relative 'param' # param.rb - include SiSU_Param - require_relative 'db_dbi' # db_dbi.rb - include SiSU_DbDBI - require_relative 'shared_html_lite' # shared_html_lite.rb - include SiSU_FormatShared - require 'fileutils' - include FileUtils::Verbose - class SQL - def initialize(opt) - SiSU_Env::Load.new('dbi',true).prog - @opt=opt - @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) - @md=@particulars.md - if @opt.cmd =~/[d]/ \ - or @opt.mod.inspect =~/--((?:sq)?lite)/ - @sql_type='sqlite' - maintenance_check(@opt,__FILE__,__LINE__) if @opt.cmd.inspect =~/M/ - end - @output_path=@md.file.output_path.sqlite_discreet.dir - @filename=@md.file.base_filename.sqlite_discreet - @file_maint=sql_maintenance_file - @file="#{@output_path}/#{@filename}" - end - def build - prepare - create_and_populate - end - def maintenance_check(opt,file,line) - p opt.mod - p opt.cmd - p "at #{file} #{line}" - end - def prepare - if not FileTest.directory?(@output_path) - FileUtils::mkdir_p(@output_path) - elsif @file - FileUtils::rm_rf(@file) - end - end - def db_exist?(db,conn) - msg=%{no connection with sqlite database established, createdb "#{db.sqlite.db}"?} - if (not (FileTest.file?(db.sqlite.db)) \ - or FileTest.zero?(db.sqlite.db)) - puts msg - exit - end - if conn.is_a?(NilClass) - puts msg - exit - end - end - def create_and_populate - db=SiSU_Env::DbOp.new(@md) - conn=db.sqlite_discreet.conn_sqlite3 - sdb=SiSU_DbDBI::Create.new(@opt,conn,@file,'sqlite') - sdb_index=SiSU_DbDBI::Index.new(@opt,conn,@file,'sqlite') - sdb.output_dir? - begin - SiSU_Screen::Ansi.new(@opt.cmd,'SQLite',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}").green_title_hi unless @opt.cmd =~/q/ - sdb.create_db - sdb.create_table.metadata_and_text - sdb.create_table.doc_objects - sdb.create_table.endnotes - sdb.create_table.endnotes_asterisk - sdb.create_table.endnotes_plus - sdb.create_table.urls - sdb_index.create_indexes - db_exist?(db,conn) - sdb_import=SiSU_DbDBI::Import.new(@opt,conn,@file_maint,'sqlite') - sdb_import.marshal_load - tell=SiSU_Screen::Ansi.new(@opt.cmd,"sqlite3 #{db.sqlite.db} database?") - tell.puts_grey if @opt.cmd =~/v/ - rescue - SiSU_Errors::InfoError.new($!,$@,'-d').error do - __LINE__.to_s + ':' + __FILE__ - end - sdb.output_dir? - end - end - def read_sqlite - begin - @conn=@db.sqlite.conn_sqlite3 - rescue - ensure - end - end - def connect - begin - sql_type='sqlite' - SiSU_Screen::Ansi.new(@opt.cmd,"DBI (#{@sql_type}) #{@opt.mod}",@opt.fns).dbi_title unless @opt.cmd =~/q/ - @db.sqlite_discreet.conn_sqlite3 - rescue - SiSU_Errors::InfoError.new($!,$@,@cf,@opt.fns).error do - __LINE__.to_s + ':' + __FILE__ - end - ensure - end - end - def populate - end - def sql_maintenance_file - file=if @opt.inspect =~/M/ - x=if @opt.fns and not @opt.fns.empty? - @env=SiSU_Env::InfoEnv.new(@opt.fns) if @opt.fns - puts "\n#{@env.processing_path.sqlite}/#{@opt.fns}.sql" if @sql_type =~/sqlite/ and @opt.cmd =~/M/ - @db=SiSU_Env::InfoDb.new - @job="sqlite3 #{@db.sqlite.db} < #{@env.processing_path.sqlite}/#{@opt.fns}.sql" - File.new("#{@env.processing_path.sqlite}/#{@opt.fns}.sql",'w+') - elsif @opt.fns \ - and @opt.fns.inspect =~/create/ - nil #sort variations later - else nil - end - else nil - end - file - end - end -end -__END__ diff --git a/lib/sisu/v4/dbi_discrete.rb b/lib/sisu/v4/dbi_discrete.rb new file mode 100644 index 00000000..f670cb27 --- /dev/null +++ b/lib/sisu/v4/dbi_discrete.rb @@ -0,0 +1,182 @@ +# encoding: utf-8 +=begin + + * Name: SiSU + + * Description: a framework for document structuring, publishing and search + + * Author: Ralph Amissah + + * Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, + 2007, 2008, 2009, 2010, 2011, 2012, 2013 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 . + + If you have Internet connection, the latest version of the GPL should be + available at these locations: + + + + + + * SiSU uses: + * Standard SiSU markup syntax, + * Standard SiSU meta-markup syntax, and the + * Standard SiSU object citation numbering and system + + * Hompages: + + + + * Download: + + + * Ralph Amissah + + + + ** Description: postgresql module, dbi import frame + +=end +module SiSU_DBI_Discrete #% database building + require_relative 'help' # help.rb + require_relative 'sysenv' # sysenv.rb + include SiSU_Env; include SiSU_Screen + require_relative 'param' # param.rb + include SiSU_Param + require_relative 'db_dbi' # db_dbi.rb + include SiSU_DbDBI + require_relative 'shared_html_lite' # shared_html_lite.rb + include SiSU_FormatShared + require 'fileutils' + include FileUtils::Verbose + class SQL + def initialize(opt) + SiSU_Env::Load.new('dbi',true).prog + @opt=opt + @particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt) + @md=@particulars.md + if @opt.cmd =~/[d]/ \ + or @opt.mod.inspect =~/--((?:sq)?lite)/ + @sql_type='sqlite' + maintenance_check(@opt,__FILE__,__LINE__) if @opt.cmd.inspect =~/M/ + end + @output_path=@md.file.output_path.sqlite_discrete.dir + @filename=@md.file.base_filename.sqlite_discrete + @file_maint=sql_maintenance_file + @file="#{@output_path}/#{@filename}" + end + def build + prepare + create_and_populate + end + def maintenance_check(opt,file,line) + p opt.mod + p opt.cmd + p "at #{file} #{line}" + end + def prepare + if not FileTest.directory?(@output_path) + FileUtils::mkdir_p(@output_path) + elsif @file + FileUtils::rm_rf(@file) + end + end + def db_exist?(db,conn) + msg=%{no connection with sqlite database established, createdb "#{db.sqlite.db}"?} + if (not (FileTest.file?(db.sqlite.db)) \ + or FileTest.zero?(db.sqlite.db)) + puts msg + exit + end + if conn.is_a?(NilClass) + puts msg + exit + end + end + def create_and_populate + db=SiSU_Env::DbOp.new(@md) + conn=db.sqlite_discrete.conn_sqlite3 + sdb=SiSU_DbDBI::Create.new(@opt,conn,@file,'sqlite') + sdb_index=SiSU_DbDBI::Index.new(@opt,conn,@file,'sqlite') + sdb.output_dir? + begin + SiSU_Screen::Ansi.new(@opt.cmd,'SQLite',"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}").green_title_hi unless @opt.cmd =~/q/ + sdb.create_db + sdb.create_table.metadata_and_text + sdb.create_table.doc_objects + sdb.create_table.endnotes + sdb.create_table.endnotes_asterisk + sdb.create_table.endnotes_plus + sdb.create_table.urls + sdb_index.create_indexes + db_exist?(db,conn) + sdb_import=SiSU_DbDBI::Import.new(@opt,conn,@file_maint,'sqlite') + sdb_import.marshal_load + tell=SiSU_Screen::Ansi.new(@opt.cmd,"sqlite3 #{db.sqlite.db} database?") + tell.puts_grey if @opt.cmd =~/v/ + rescue + SiSU_Errors::InfoError.new($!,$@,'-d').error do + __LINE__.to_s + ':' + __FILE__ + end + sdb.output_dir? + end + end + def read_sqlite + begin + @conn=@db.sqlite.conn_sqlite3 + rescue + ensure + end + end + def connect + begin + sql_type='sqlite' + SiSU_Screen::Ansi.new(@opt.cmd,"DBI (#{@sql_type}) #{@opt.mod}",@opt.fns).dbi_title unless @opt.cmd =~/q/ + @db.sqlite_discrete.conn_sqlite3 + rescue + SiSU_Errors::InfoError.new($!,$@,@cf,@opt.fns).error do + __LINE__.to_s + ':' + __FILE__ + end + ensure + end + end + def populate + end + def sql_maintenance_file + file=if @opt.inspect =~/M/ + x=if @opt.fns and not @opt.fns.empty? + @env=SiSU_Env::InfoEnv.new(@opt.fns) if @opt.fns + puts "\n#{@env.processing_path.sqlite}/#{@opt.fns}.sql" if @sql_type =~/sqlite/ and @opt.cmd =~/M/ + @db=SiSU_Env::InfoDb.new + @job="sqlite3 #{@db.sqlite.db} < #{@env.processing_path.sqlite}/#{@opt.fns}.sql" + File.new("#{@env.processing_path.sqlite}/#{@opt.fns}.sql",'w+') + elsif @opt.fns \ + and @opt.fns.inspect =~/create/ + nil #sort variations later + else nil + end + else nil + end + file + end + end +end +__END__ diff --git a/lib/sisu/v4/hub.rb b/lib/sisu/v4/hub.rb index ccae2b9f..8cd0358f 100644 --- a/lib/sisu/v4/hub.rb +++ b/lib/sisu/v4/hub.rb @@ -353,9 +353,9 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on require_relative 'texinfo' # -I texinfo.rb SiSU_TexInfo::Source.new(@opt).read end - if @opt.act[:sqlite_discreet][:set]==:on #% --sqlite, -d DB sqlite - require_relative 'dbi_discreet' # -d dbi_discreet.rb - SiSU_DBI_Discreet::SQL.new(@opt).build + if @opt.act[:sqlite_discrete][:set]==:on #% --sqlite, -d DB sqlite + require_relative 'dbi_discrete' # -d dbi_discrete.rb + SiSU_DBI_Discrete::SQL.new(@opt).build end if @opt.act[:manifest][:set]==:on #% --manifest, -y require_relative 'manifest' # -y manifest.rb @@ -659,7 +659,7 @@ p "#{__LINE__}:#{__FILE__}" if @opt.act[:maintenance][:set] ==:on or @opt.act[:pdf_l][:set]==:on \ or @opt.act[:psql][:set]==:on \ or @opt.act[:sqlite][:set]==:on \ - or @opt.act[:sqlite_discreet][:set]==:on \ + or @opt.act[:sqlite_discrete][:set]==:on \ or @opt.act[:share_source][:set]==:on \ or @opt.act[:sisupod][:set]==:on \ or @opt.act[:qrcode][:set]==:on \ diff --git a/lib/sisu/v4/manifest.rb b/lib/sisu/v4/manifest.rb index d52d9f43..89b7aac4 100644 --- a/lib/sisu/v4/manifest.rb +++ b/lib/sisu/v4/manifest.rb @@ -397,11 +397,11 @@ module SiSU_Manifest id,file='Manpage',@f.base_filename.manpage summarize(id,file,pth,rel,url) end - if FileTest.file?(@f.place_file.sqlite_discreet.dir)==true - id,file='SQLite3 file',@f.base_filename.sqlite_discreet - pth=@f.output_path.sqlite_discreet.dir - rel=@f.output_path.sqlite_discreet.rel_sm - url=@f.output_path.sqlite_discreet.url + if FileTest.file?(@f.place_file.sqlite_discrete.dir)==true + id,file='SQLite3 file',@f.base_filename.sqlite_discrete + pth=@f.output_path.sqlite_discrete.dir + rel=@f.output_path.sqlite_discrete.rel_sm + url=@f.output_path.sqlite_discrete.url summarize(id,file,pth,rel,url) end if FileTest.file?(@f.place_file.txt.dir)==true diff --git a/lib/sisu/v4/options.rb b/lib/sisu/v4/options.rb index 3dca5253..068174c4 100644 --- a/lib/sisu/v4/options.rb +++ b/lib/sisu/v4/options.rb @@ -919,7 +919,7 @@ module SiSU_Commandline && (mod.inspect =~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ ? { bool: true, set: :on } : { bool: false, set: :na } - act[:sqlite_discreet]=(cmd =~/d/ \ + act[:sqlite_discrete]=(cmd =~/d/ \ || mod.inspect =~/"--sql"|"--sqlite"/) \ && (mod.inspect =~/"--both"/ \ || mod.inspect !~/"--createdb"|"--create(?:all)?"|"--dropall"|"--recreate(?:all)?"|"--import"|"--update"|"--remove"/) \ diff --git a/lib/sisu/v4/sysenv.rb b/lib/sisu/v4/sysenv.rb index 728f4fc4..07184b34 100644 --- a/lib/sisu/v4/sysenv.rb +++ b/lib/sisu/v4/sysenv.rb @@ -3340,10 +3340,10 @@ WOK || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) inp << @f.output_path.pdf.rel + '/' + @opt.fnb + '*' end - if (@opt.act[:sqlite_discreet][:set]==:on \ + if (@opt.act[:sqlite_discrete][:set]==:on \ || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ - && FileTest.file?(@f.place_file.sqlite_discreet.dir) - inp << @f.place_file.sqlite_discreet.rel + && FileTest.file?(@f.place_file.sqlite_discrete.dir) + inp << @f.place_file.sqlite_discrete.rel end if (@opt.act[:qrcode][:set]==:on \ || @opt.cmd =~/^-[mqvVM]*R[mqvVM]*$/) \ @@ -4010,7 +4010,7 @@ WOK def db "#{@env.path.webserv}/#{@pwd_stub}/sisu_sqlite.db" end - def db_discreet(md) + def db_discrete(md) # "#{@env.path.webserv}/#{@pwd_stub}/sisu_sqlite.db" end def dbi @@ -4039,21 +4039,21 @@ WOK ensure end end - def sqlite_discreet + def sqlite_discrete def db - "#{@md.file.output_path.sqlite_discreet.dir}/#{@md.file.base_filename.sqlite_discreet}" + "#{@md.file.output_path.sqlite_discrete.dir}/#{@md.file.base_filename.sqlite_discrete}" end def dbi - "DBI:SQLite3:#{sqlite_discreet.db}" + "DBI:SQLite3:#{sqlite_discrete.db}" end def sqlite3 - sqlite_discreet.db + sqlite_discrete.db end def conn_dbi - DBI.connect(sqlite_discreet.dbi) + DBI.connect(sqlite_discrete.dbi) end def conn_sqlite3 - SQLite3::Database.new(sqlite_discreet.sqlite3) + SQLite3::Database.new(sqlite_discrete.sqlite3) end self end @@ -4402,12 +4402,12 @@ WOK end self end - def sqlite_discreet + def sqlite_discrete def dir - output_path.sqlite_discreet.dir + '/' + base_filename.sqlite_discreet + output_path.sqlite_discrete.dir + '/' + base_filename.sqlite_discrete end def rel - output_path.sqlite_discreet.rel + '/' + base_filename.sqlite_discreet + output_path.sqlite_discrete.rel + '/' + base_filename.sqlite_discrete end self end @@ -4701,7 +4701,7 @@ WOK @md.fnb + '.' + @md.opt.f_pth[:lng_is] + '.' + ft end end - def sqlite_discreet + def sqlite_discrete ft='.sql.db' if output_dir_structure.by_language_code? @md.fnb + ft @@ -5351,7 +5351,7 @@ WOK end self end - def sqlite_discreet + def sqlite_discrete def ft 'sql' end diff --git a/lib/sisu/v4/urls.rb b/lib/sisu/v4/urls.rb index e3671dcd..2e3e2188 100644 --- a/lib/sisu/v4/urls.rb +++ b/lib/sisu/v4/urls.rb @@ -220,8 +220,8 @@ module SiSU_Urls def sqlite(x,y) SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x} DBI sqlite","sqlite3 #{@env.path.webserv}/#{@md.opt.f_pth[:pth_stub]}/sisu_sqlite.db").result end - def sqlite_discreet(x,y) - SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","sqlite3 #{@md.file.output_path.sqlite_discreet.dir}/#{@md.file.base_filename.sqlite_discreet}").result + def sqlite_discrete(x,y) + SiSU_Screen::Ansi.new(@opt.cmd,"[#{@opt.f_pth[:lng_is]}] -#{x}","sqlite3 #{@md.file.output_path.sqlite_discrete.dir}/#{@md.file.base_filename.sqlite_discrete}").result end self end @@ -304,8 +304,8 @@ module SiSU_Urls show.db.psql(x,y) end if x=~/d\s+--sqlite\b|--sql\b/ \ - and @opt.act[:sqlite_discreet][:set]==:on - show.db.sqlite_discreet(x,y) + and @opt.act[:sqlite_discrete][:set]==:on + show.db.sqlite_discrete(x,y) end if x=~/d\[iu\]\s+--sqlite\b/ \ and @opt.act[:sqlite][:set]==:on -- cgit v1.2.3