sisu 7.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/bin/sisu +367 -0
- data/bin/sisugem +367 -0
- data/data/sisu/image/arrow_next_red.png +0 -0
- data/data/sisu/image/arrow_prev_red.png +0 -0
- data/data/sisu/image/arrow_up_red.png +0 -0
- data/data/sisu/image/b_bluebell.png +0 -0
- data/data/sisu/image/b_doc.png +0 -0
- data/data/sisu/image/b_epub.png +0 -0
- data/data/sisu/image/b_home.png +0 -0
- data/data/sisu/image/b_info.png +0 -0
- data/data/sisu/image/b_odf.png +0 -0
- data/data/sisu/image/b_pdf.png +0 -0
- data/data/sisu/image/b_search.png +0 -0
- data/data/sisu/image/b_toc.png +0 -0
- data/data/sisu/image/bullet_08.png +0 -0
- data/data/sisu/image/bullet_09.png +0 -0
- data/data/sisu/image/bullet_10.png +0 -0
- data/data/sisu/image/bullet_11.png +0 -0
- data/data/sisu/image/bullet_12.png +0 -0
- data/data/sisu/image/bullet_doc.png +0 -0
- data/data/sisu/image/bullet_red.png +0 -0
- data/data/sisu/image/dot_clear.png +0 -0
- data/data/sisu/image/dot_white.png +0 -0
- data/data/sisu/image/gplv3.png +0 -0
- data/data/sisu/image/gplv3_free_software.png +0 -0
- data/data/sisu/image/next.png +0 -0
- data/data/sisu/image/previous.png +0 -0
- data/data/sisu/image/rb7.ico +0 -0
- data/data/sisu/image/sisu.png +0 -0
- data/data/sisu/image/toctoc.png +0 -0
- data/data/sisu/version.yml +5 -0
- data/lib/sisu.rb +94 -0
- data/lib/sisu/air.rb +80 -0
- data/lib/sisu/ao.rb +590 -0
- data/lib/sisu/ao_character_check.rb +102 -0
- data/lib/sisu/ao_composite.rb +286 -0
- data/lib/sisu/ao_doc_objects.rb +565 -0
- data/lib/sisu/ao_doc_str.rb +2269 -0
- data/lib/sisu/ao_endnotes.rb +136 -0
- data/lib/sisu/ao_expand_insertions.rb +514 -0
- data/lib/sisu/ao_hash_digest.rb +174 -0
- data/lib/sisu/ao_idx.rb +422 -0
- data/lib/sisu/ao_images.rb +187 -0
- data/lib/sisu/ao_metadata.rb +86 -0
- data/lib/sisu/ao_misc_arrange.rb +207 -0
- data/lib/sisu/ao_numbering.rb +720 -0
- data/lib/sisu/ao_persist.rb +194 -0
- data/lib/sisu/ao_references.rb +502 -0
- data/lib/sisu/ao_syntax.rb +640 -0
- data/lib/sisu/cgi.rb +84 -0
- data/lib/sisu/cgi_pgsql.rb +270 -0
- data/lib/sisu/cgi_sql_common.rb +986 -0
- data/lib/sisu/cgi_sqlite.rb +244 -0
- data/lib/sisu/conf.rb +287 -0
- data/lib/sisu/constants.rb +388 -0
- data/lib/sisu/css.rb +3484 -0
- data/lib/sisu/db_columns.rb +1997 -0
- data/lib/sisu/db_create.rb +689 -0
- data/lib/sisu/db_dbi.rb +90 -0
- data/lib/sisu/db_drop.rb +207 -0
- data/lib/sisu/db_import.rb +877 -0
- data/lib/sisu/db_indexes.rb +146 -0
- data/lib/sisu/db_load_tuple.rb +323 -0
- data/lib/sisu/db_remove.rb +182 -0
- data/lib/sisu/db_select.rb +230 -0
- data/lib/sisu/db_sqltxt.rb +173 -0
- data/lib/sisu/db_tests.rb +114 -0
- data/lib/sisu/dbi.rb +166 -0
- data/lib/sisu/dbi_discrete.rb +206 -0
- data/lib/sisu/digests.rb +306 -0
- data/lib/sisu/dp.rb +1606 -0
- data/lib/sisu/dp_identify_markup.rb +161 -0
- data/lib/sisu/dp_make.rb +668 -0
- data/lib/sisu/embedded.rb +149 -0
- data/lib/sisu/errors.rb +84 -0
- data/lib/sisu/generic_parts.rb +131 -0
- data/lib/sisu/git.rb +277 -0
- data/lib/sisu/html.rb +775 -0
- data/lib/sisu/html_concordance.rb +391 -0
- data/lib/sisu/html_format.rb +1348 -0
- data/lib/sisu/html_harvest.rb +109 -0
- data/lib/sisu/html_harvest_author_format.rb +111 -0
- data/lib/sisu/html_harvest_authors.rb +466 -0
- data/lib/sisu/html_harvest_topics.rb +893 -0
- data/lib/sisu/html_lite_shared.rb +324 -0
- data/lib/sisu/html_manifest.rb +1032 -0
- data/lib/sisu/html_minitoc.rb +230 -0
- data/lib/sisu/html_parts.rb +437 -0
- data/lib/sisu/html_persist.rb +237 -0
- data/lib/sisu/html_promo.rb +440 -0
- data/lib/sisu/html_scroll.rb +235 -0
- data/lib/sisu/html_segments.rb +716 -0
- data/lib/sisu/html_shared.rb +62 -0
- data/lib/sisu/html_table.rb +64 -0
- data/lib/sisu/html_tune.rb +301 -0
- data/lib/sisu/hub.rb +277 -0
- data/lib/sisu/hub_actions.rb +1122 -0
- data/lib/sisu/hub_loop_markup_files.rb +170 -0
- data/lib/sisu/hub_options.rb +1695 -0
- data/lib/sisu/i18n.rb +702 -0
- data/lib/sisu/manpage.rb +377 -0
- data/lib/sisu/manpage_format.rb +85 -0
- data/lib/sisu/object_munge.rb +307 -0
- data/lib/sisu/prog_text_translation.rb +1702 -0
- data/lib/sisu/qrcode.rb +754 -0
- data/lib/sisu/relaxng.rb +1153 -0
- data/lib/sisu/remote.rb +246 -0
- data/lib/sisu/rexml.rb +148 -0
- data/lib/sisu/se.rb +158 -0
- data/lib/sisu/se_cleanoutput.rb +145 -0
- data/lib/sisu/se_clear.rb +105 -0
- data/lib/sisu/se_createsite.rb +273 -0
- data/lib/sisu/se_css.rb +221 -0
- data/lib/sisu/se_date.rb +92 -0
- data/lib/sisu/se_db.rb +214 -0
- data/lib/sisu/se_envcall.rb +326 -0
- data/lib/sisu/se_file_op.rb +2758 -0
- data/lib/sisu/se_filemap.rb +247 -0
- data/lib/sisu/se_get_init.rb +238 -0
- data/lib/sisu/se_hub_particulars.rb +234 -0
- data/lib/sisu/se_info_env.rb +2179 -0
- data/lib/sisu/se_info_port.rb +70 -0
- data/lib/sisu/se_info_system.rb +202 -0
- data/lib/sisu/se_load.rb +108 -0
- data/lib/sisu/se_processing.rb +659 -0
- data/lib/sisu/se_programs.rb +394 -0
- data/lib/sisu/se_remotes.rb +553 -0
- data/lib/sisu/se_standardise_lang.rb +176 -0
- data/lib/sisu/se_version.rb +174 -0
- data/lib/sisu/shared_images.rb +137 -0
- data/lib/sisu/shared_markup_alt.rb +336 -0
- data/lib/sisu/shared_metadata.rb +1361 -0
- data/lib/sisu/shared_sem.rb +156 -0
- data/lib/sisu/sisu_thor_lib.rb +407 -0
- data/lib/sisu/sitemaps.rb +224 -0
- data/lib/sisu/src_kdissert_share.rb +102 -0
- data/lib/sisu/src_po4a_share.rb +309 -0
- data/lib/sisu/src_po4a_shelf.rb +1217 -0
- data/lib/sisu/src_po4a_shelf_set.rb +297 -0
- data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
- data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
- data/lib/sisu/src_po4a_sstm.rb +135 -0
- data/lib/sisu/src_shared.rb +347 -0
- data/lib/sisu/src_sisupod_make.rb +171 -0
- data/lib/sisu/src_sisupod_sstm.rb +109 -0
- data/lib/sisu/sst_convert_markup.rb +323 -0
- data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
- data/lib/sisu/sst_from_xml.rb +178 -0
- data/lib/sisu/sst_identify_markup.rb +482 -0
- data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
- data/lib/sisu/termsheet.rb +163 -0
- data/lib/sisu/texinfo.rb +430 -0
- data/lib/sisu/texinfo_format.rb +541 -0
- data/lib/sisu/texpdf.rb +1162 -0
- data/lib/sisu/texpdf_format.rb +1689 -0
- data/lib/sisu/texpdf_parts.rb +235 -0
- data/lib/sisu/txt_asciidoc.rb +354 -0
- data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
- data/lib/sisu/txt_markdown.rb +389 -0
- data/lib/sisu/txt_markdown_decorate.rb +207 -0
- data/lib/sisu/txt_orgmode.rb +376 -0
- data/lib/sisu/txt_orgmode_decorate.rb +186 -0
- data/lib/sisu/txt_output.rb +86 -0
- data/lib/sisu/txt_plain.rb +410 -0
- data/lib/sisu/txt_plain_decorate.rb +189 -0
- data/lib/sisu/txt_read.rb +109 -0
- data/lib/sisu/txt_rst.rb +371 -0
- data/lib/sisu/txt_rst_decorate.rb +186 -0
- data/lib/sisu/txt_shared.rb +241 -0
- data/lib/sisu/txt_textile.rb +367 -0
- data/lib/sisu/txt_textile_decorate.rb +186 -0
- data/lib/sisu/update.rb +141 -0
- data/lib/sisu/urls.rb +696 -0
- data/lib/sisu/utils.rb +232 -0
- data/lib/sisu/utils_composite.rb +115 -0
- data/lib/sisu/utils_response.rb +114 -0
- data/lib/sisu/utils_screen_text_color.rb +472 -0
- data/lib/sisu/utils_spell.rb +99 -0
- data/lib/sisu/webrick.rb +191 -0
- data/lib/sisu/wikispeak.rb +375 -0
- data/lib/sisu/xhtml.rb +472 -0
- data/lib/sisu/xhtml_epub2.rb +890 -0
- data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
- data/lib/sisu/xhtml_epub2_format.rb +2272 -0
- data/lib/sisu/xhtml_epub2_persist.rb +278 -0
- data/lib/sisu/xhtml_epub2_segments.rb +599 -0
- data/lib/sisu/xhtml_epub2_tune.rb +330 -0
- data/lib/sisu/xhtml_parts.rb +183 -0
- data/lib/sisu/xhtml_shared.rb +62 -0
- data/lib/sisu/xhtml_table.rb +97 -0
- data/lib/sisu/xml_docbook5.rb +376 -0
- data/lib/sisu/xml_dom.rb +624 -0
- data/lib/sisu/xml_fictionbook2.rb +389 -0
- data/lib/sisu/xml_format.rb +865 -0
- data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
- data/lib/sisu/xml_odf_odt.rb +887 -0
- data/lib/sisu/xml_odf_odt_format.rb +674 -0
- data/lib/sisu/xml_parts.rb +191 -0
- data/lib/sisu/xml_persist.rb +126 -0
- data/lib/sisu/xml_sax.rb +521 -0
- data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
- data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
- data/lib/sisu/xml_shared.rb +665 -0
- data/lib/sisu/xml_tables.rb +261 -0
- data/lib/sisu/zap.rb +90 -0
- metadata +251 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** modules shared by the different db types, dbi, postgresql, sqlite
|
|
8
|
+
|
|
9
|
+
** Author: Ralph Amissah
|
|
10
|
+
<ralph@amissah.com>
|
|
11
|
+
<ralph.amissah@gmail.com>
|
|
12
|
+
|
|
13
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
|
14
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
|
15
|
+
All Rights Reserved.
|
|
16
|
+
|
|
17
|
+
** License: GPL 3 or later:
|
|
18
|
+
|
|
19
|
+
SiSU, a framework for document structuring, publishing and search
|
|
20
|
+
|
|
21
|
+
Copyright (C) Ralph Amissah
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it
|
|
24
|
+
under the terms of the GNU General Public License as published by the Free
|
|
25
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
26
|
+
any later version.
|
|
27
|
+
|
|
28
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
29
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
31
|
+
more details.
|
|
32
|
+
|
|
33
|
+
You should have received a copy of the GNU General Public License along with
|
|
34
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
|
+
|
|
36
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
37
|
+
available at these locations:
|
|
38
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
|
39
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
40
|
+
|
|
41
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
|
42
|
+
|
|
43
|
+
** SiSU uses:
|
|
44
|
+
* Standard SiSU markup syntax,
|
|
45
|
+
* Standard SiSU meta-markup syntax, and the
|
|
46
|
+
* Standard SiSU object citation numbering and system
|
|
47
|
+
|
|
48
|
+
** Hompages:
|
|
49
|
+
<http://www.jus.uio.no/sisu>
|
|
50
|
+
<http://www.sisudoc.org>
|
|
51
|
+
|
|
52
|
+
** Git
|
|
53
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
|
|
54
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/db_tests.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_DbTests
|
|
58
|
+
class Test
|
|
59
|
+
def initialize(info,opt)
|
|
60
|
+
@ck,@opt=info,opt
|
|
61
|
+
unless @opt.act[:quiet][:set]==:on
|
|
62
|
+
puts @ck.tp[:fns] if @ck.tp[:fns] and not @ck.tp[:fns].empty?
|
|
63
|
+
puts @ck.tp[:title] if @ck.tp[:title] and not @ck.tp[:title].empty?
|
|
64
|
+
puts @ck.tp[:creator] if @ck.tp[:creator] and not @ck.tp[:creator].empty?
|
|
65
|
+
end
|
|
66
|
+
end
|
|
67
|
+
def verify
|
|
68
|
+
unless @opt.act[:quiet][:set]==:on
|
|
69
|
+
puts @ck.tp[:fns].length.to_s + ' checklength ' + @ck.tp[:fns] if @ck.tp[:fns] and @ck.tp[:fns].length >@ck.lt_filename
|
|
70
|
+
puts @ck.tp[:title].length.to_s + ' checklength ' + @ck.tp[:title] if @ck.tp[:title] and @ck.tp[:title].length >@ck.lt_title
|
|
71
|
+
puts @ck.tp[:subtitle].length.to_s + ' checklength ' + @ck.tp[:subtitle] if @ck.tp[:subtitle] and @ck.tp[:subtitle].length >@ck.lt_subtitle
|
|
72
|
+
puts @ck.tp[:creator].length.to_s + ' checklength ' + @ck.tp[:creator] if @ck.tp[:creator] and @ck.tp[:creator].length >@ck.lt_creator
|
|
73
|
+
puts @ck.tp[:author_title].length.to_s + ' checklength ' + @ck.tp[:author_title] if @ck.tp[:author_title] and @ck.tp[:author_title].length >@ck.lt_author_title
|
|
74
|
+
puts @ck.tp[:illustrator].length.to_s + ' checklength ' + @ck.tp[:illustrator] if @ck.tp[:illustrator] and @ck.tp[:illustrator].length >@ck.lt_illustrator
|
|
75
|
+
puts @ck.tp[:translator].length.to_s + ' checklength ' + @ck.tp[:translator] if @ck.tp[:translator] and @ck.tp[:translator].length >@ck.lt_translator
|
|
76
|
+
puts @ck.tp[:prepared_by].length.to_s + ' checklength ' + @ck.tp[:prepared_by] if @ck.tp[:prepared_by] and @ck.tp[:prepared_by].length >@ck.lt_prepared_by
|
|
77
|
+
puts @ck.tp[:digitized_by].length.to_s + ' checklength ' + @ck.tp[:digitized_by] if @ck.tp[:digitized_by] and @ck.tp[:digitized_by].length >@ck.lt_digitized_by
|
|
78
|
+
puts @ck.tp[:subject].length.to_s + ' checklength ' + @ck.tp[:subject] if @ck.tp[:subject] and @ck.tp[:subject].length >@ck.lt_subject
|
|
79
|
+
puts @ck.tp[:description].length.to_s + ' checklength ' + @ck.tp[:description] if @ck.tp[:description] and @ck.tp[:description].length >@ck.lt_description
|
|
80
|
+
puts @ck.tp[:publisher].length.to_s + ' checklength ' + @ck.tp[:publisher] if @ck.tp[:publisher] and @ck.tp[:publisher].length >@ck.lt_publisher
|
|
81
|
+
puts @ck.tp[:contributor].length.to_s + ' checklength ' + @ck.tp[:contributor] if @ck.tp[:contributor] and @ck.tp[:contributor].length >@ck.lt_contributor
|
|
82
|
+
puts @ck.tp[:date].length.to_s + ' checklength ' + @ck.tp[:date] if @ck.tp[:date] and @ck.tp[:date].length >@ck.lt_date
|
|
83
|
+
puts @ck.tp[:date_created].length.to_s + ' checklength ' + @ck.tp[:date_created] if @ck.tp[:date_created] and @ck.tp[:date_created].length >@ck.lt_date
|
|
84
|
+
puts @ck.tp[:date_issued].length.to_s + ' checklength ' + @ck.tp[:date_issued] if @ck.tp[:date_issued] and @ck.tp[:date_issued].length >@ck.lt_date
|
|
85
|
+
puts @ck.tp[:date_valid].length.to_s + ' checklength ' + @ck.tp[:date_valid] if @ck.tp[:date_valid] and @ck.tp[:date_valid].length >@ck.lt_date
|
|
86
|
+
puts @ck.tp[:date_available].length.to_s + ' checklength ' + @ck.tp[:date_available] if @ck.tp[:date_available] and @ck.tp[:date_available].length >@ck.lt_date
|
|
87
|
+
puts @ck.tp[:date_modified].length.to_s + ' checklength ' + @ck.tp[:date_modified] if @ck.tp[:date_modified] and @ck.tp[:date_modified].length >@ck.lt_date
|
|
88
|
+
puts @ck.tp[:date_translated].length.to_s + ' checklength ' + @ck.tp[:date_translated] if @ck.tp[:date_translated] and @ck.tp[:date_translated].length >@ck.lt_date
|
|
89
|
+
puts @ck.tp[:date_added_to_site].length.to_s + ' checklength ' + @ck.tp[:date_added_to_site] if @ck.tp[:date_added_to_site] and @ck.tp[:date_added_to_site].length >@ck.lt_date
|
|
90
|
+
puts @ck.tp[:type].length.to_s + ' checklength ' + @ck.tp[:type] if @ck.tp[:type] and @ck.tp[:type].length >@ck.lt_type
|
|
91
|
+
puts @ck.tp[:format].length.to_s + ' checklength ' + @ck.tp[:format] if @ck.tp[:format] and @ck.tp[:format].length >@ck.lt_format
|
|
92
|
+
puts @ck.tp[:identifier].length.to_s + ' checklength ' + @ck.tp[:identifier] if @ck.tp[:identifier] and @ck.tp[:identifier].length >@ck.lt_identifier
|
|
93
|
+
puts @ck.tp[:source].length.to_s + ' checklength ' + @ck.tp[:source] if @ck.tp[:source] and @ck.tp[:source].length >@ck.lt_source
|
|
94
|
+
puts @ck.tp[:language].length.to_s + ' checklength ' + @ck.tp[:language] if @ck.tp[:language] and @ck.tp[:language].length >@ck.lt_language
|
|
95
|
+
puts @ck.tp[:language_original].length.to_s + ' checklength ' + @ck.tp[:language_original] if @ck.tp[:language_original] and @ck.tp[:language_original].length >@ck.lt_language_original
|
|
96
|
+
puts @ck.tp[:relation].length.to_s + ' checklength ' + @ck.tp[:relation] if @ck.tp[:relation] and @ck.tp[:relation].length >@ck.lt_relation
|
|
97
|
+
puts @ck.tp[:coverage].length.to_s + ' checklength ' + @ck.tp[:coverage] if @ck.tp[:coverage] and @ck.tp[:coverage].length >@ck.lt_coverage
|
|
98
|
+
puts @ck.tp[:rights].length.to_s + ' checklength ' + @ck.tp[:rights] if @ck.tp[:rights] and @ck.tp[:rights].length >@ck.lt_rights
|
|
99
|
+
puts @ck.tp[:copyright].length.to_s + ' checklength ' + @ck.tp[:copyright] if @ck.tp[:copyright] and @ck.tp[:copyright].length >@ck.lt_copyright
|
|
100
|
+
puts @ck.tp[:owner].length.to_s + ' checklength ' + @ck.tp[:owner] if @ck.tp[:owner] and @ck.tp[:owner].length >@ck.lt_owner
|
|
101
|
+
puts @ck.tp[:keywords].length.to_s + ' checklength ' + @ck.tp[:keywords] if @ck.tp[:keywords] and @ck.tp[:keywords].length >@ck.lt_keywords
|
|
102
|
+
puts @ck.tp[:abstract].length.to_s + ' checklength ' + @ck.tp[:abstract] if @ck.tp[:abstract] and @ck.tp[:abstract].length >@ck.lt_abstract
|
|
103
|
+
puts @ck.tp[:comment].length.to_s + ' checklength ' + @ck.tp[:comment] if @ck.tp[:comment] and @ck.tp[:comment].length >@ck.lt_comment
|
|
104
|
+
puts @ck.tp[:loc].length.to_s + ' checklength ' + @ck.tp[:loc] if @ck.tp[:loc] and @ck.tp[:loc].length >@ck.lt_loc
|
|
105
|
+
puts @ck.tp[:dewey].length.to_s + ' checklength ' + @ck.tp[:dewey] if @ck.tp[:dewey] and @ck.tp[:dewey].length >@ck.lt_dewey
|
|
106
|
+
puts @ck.tp[:isbn].length.to_s + ' checklength ' + @ck.tp[:isbn] if @ck.tp[:isbn] and @ck.tp[:isbn].length >@ck.lt_isbn
|
|
107
|
+
puts @ck.tp[:pg].length.to_s + ' checklength ' + @ck.tp[:pg] if @ck.tp[:pg] and @ck.tp[:pg].length >@ck.lt_pg
|
|
108
|
+
puts @ck.tp[:topic_register].length.to_s + ' checklength ' + @ck.tp[:topic_register] if @ck.tp[:topic_register] and @ck.tp[:topci_register].length >@ck.lt_topic_register
|
|
109
|
+
puts @ck.tp[:date] if @ck.tp[:date] and not @ck.tp[:date].empty? and @ck.tp[:date] !~/\d\d-\d\d-\d\d/
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
end
|
|
113
|
+
end
|
|
114
|
+
__END__
|
data/lib/sisu/dbi.rb
ADDED
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** postgresql module, dbi import frame
|
|
8
|
+
|
|
9
|
+
** Author: Ralph Amissah
|
|
10
|
+
<ralph@amissah.com>
|
|
11
|
+
<ralph.amissah@gmail.com>
|
|
12
|
+
|
|
13
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
|
14
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
|
15
|
+
All Rights Reserved.
|
|
16
|
+
|
|
17
|
+
** License: GPL 3 or later:
|
|
18
|
+
|
|
19
|
+
SiSU, a framework for document structuring, publishing and search
|
|
20
|
+
|
|
21
|
+
Copyright (C) Ralph Amissah
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it
|
|
24
|
+
under the terms of the GNU General Public License as published by the Free
|
|
25
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
26
|
+
any later version.
|
|
27
|
+
|
|
28
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
29
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
31
|
+
more details.
|
|
32
|
+
|
|
33
|
+
You should have received a copy of the GNU General Public License along with
|
|
34
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
|
+
|
|
36
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
37
|
+
available at these locations:
|
|
38
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
|
39
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
40
|
+
|
|
41
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
|
42
|
+
|
|
43
|
+
** SiSU uses:
|
|
44
|
+
* Standard SiSU markup syntax,
|
|
45
|
+
* Standard SiSU meta-markup syntax, and the
|
|
46
|
+
* Standard SiSU object citation numbering and system
|
|
47
|
+
|
|
48
|
+
** Hompages:
|
|
49
|
+
<http://www.jus.uio.no/sisu>
|
|
50
|
+
<http://www.sisudoc.org>
|
|
51
|
+
|
|
52
|
+
** Git
|
|
53
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
|
|
54
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/dbi.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_DBI #% database building
|
|
58
|
+
require_relative 'se' # se.rb
|
|
59
|
+
include SiSU_Env; include SiSU_Screen
|
|
60
|
+
require_relative 'dp' # dp.rb
|
|
61
|
+
include SiSU_Param
|
|
62
|
+
require_relative 'db_dbi' # db_dbi.rb
|
|
63
|
+
include SiSU_DbDBI
|
|
64
|
+
require_relative 'html_lite_shared' # html_lite_shared.rb
|
|
65
|
+
include SiSU_FormatShared
|
|
66
|
+
class SQL
|
|
67
|
+
def initialize(opt)
|
|
68
|
+
@opt=opt
|
|
69
|
+
@db=SiSU_Env::InfoDb.new
|
|
70
|
+
if @opt.act[:psql][:set]==:on \
|
|
71
|
+
or @opt.act[:sqlite][:set]==:on
|
|
72
|
+
@sql_type=if @opt.act[:psql][:set]==:on
|
|
73
|
+
maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on
|
|
74
|
+
:pg
|
|
75
|
+
elsif @opt.act[:psql][:set]==:on
|
|
76
|
+
maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on
|
|
77
|
+
:pg
|
|
78
|
+
elsif @opt.act[:sqlite][:set]==:on
|
|
79
|
+
maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on
|
|
80
|
+
:sqlite
|
|
81
|
+
elsif @opt.act[:sqlite][:set]==:on
|
|
82
|
+
maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on
|
|
83
|
+
:sqlite
|
|
84
|
+
else
|
|
85
|
+
maintenance_check(@opt,__FILE__,__LINE__) if @opt.act[:maintenance][:set]==:on
|
|
86
|
+
:sqlite
|
|
87
|
+
end
|
|
88
|
+
if @sql_type==:pg then SiSU_Env::Load.new('pg',true).prog
|
|
89
|
+
elsif @sql_type==:sqlite then SiSU_Env::Load.new('sqlite3',true).prog
|
|
90
|
+
end
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
def maintenance_check(opt,file,line)
|
|
94
|
+
p opt.selections.str
|
|
95
|
+
p "at #{file} #{line}"
|
|
96
|
+
end
|
|
97
|
+
def read_psql
|
|
98
|
+
begin
|
|
99
|
+
begin
|
|
100
|
+
require 'pg'
|
|
101
|
+
rescue LoadError
|
|
102
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
|
|
103
|
+
error('pg NOT FOUND (LoadError)')
|
|
104
|
+
end
|
|
105
|
+
@conn=@db.psql.conn_pg
|
|
106
|
+
rescue
|
|
107
|
+
if @opt.act[:psql_create][:set]==:on
|
|
108
|
+
cX=SiSU_Screen::Ansi.new(@opt.act[:color_state][:set]).cX
|
|
109
|
+
puts <<-WOK
|
|
110
|
+
manually create the database: "#{cX.green}#{@db.db}#{cX.off}" if it does not yet exist
|
|
111
|
+
#{cX.yellow}createdb #{@db.db}#{cX.off}
|
|
112
|
+
WOK
|
|
113
|
+
#sudo su -p postgres; createdb #{@db.db}; #[createuser?]
|
|
114
|
+
end
|
|
115
|
+
ensure
|
|
116
|
+
end
|
|
117
|
+
end
|
|
118
|
+
def read_sqlite
|
|
119
|
+
begin
|
|
120
|
+
begin
|
|
121
|
+
begin
|
|
122
|
+
require 'sqlite3'
|
|
123
|
+
rescue LoadError
|
|
124
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
|
|
125
|
+
error('sqlite3 NOT FOUND (LoadError)')
|
|
126
|
+
end
|
|
127
|
+
@conn=@db.sqlite.conn_sqlite3
|
|
128
|
+
rescue LoadError
|
|
129
|
+
errmsg='sqlite3 NOT FOUND (LoadError)'
|
|
130
|
+
if @opt.act[:no_stop][:set]==:on
|
|
131
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
|
|
132
|
+
error(errmsg + ', ' + 'attempt to proceed without sqlite output (as requested)')
|
|
133
|
+
else
|
|
134
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
|
|
135
|
+
error(errmsg + ', ' + 'STOPPING')
|
|
136
|
+
exit
|
|
137
|
+
end
|
|
138
|
+
end
|
|
139
|
+
end
|
|
140
|
+
end
|
|
141
|
+
def connect
|
|
142
|
+
case @sql_type
|
|
143
|
+
when :pg then read_psql #read_pg
|
|
144
|
+
when :sqlite then read_sqlite
|
|
145
|
+
end
|
|
146
|
+
SiSU_Screen::Ansi.new(
|
|
147
|
+
@opt.act[:color_state][:set],
|
|
148
|
+
"SQL DB #{@sql_type.upcase}",
|
|
149
|
+
@opt.fno
|
|
150
|
+
).dbi_title unless @opt.act[:quiet][:set]==:on
|
|
151
|
+
begin
|
|
152
|
+
SiSU_DbDBI::Case.new(@opt,@conn,@sql_type).cases
|
|
153
|
+
rescue
|
|
154
|
+
SiSU_Errors::Rescued.new($!,$@,@cf,@opt.fns).location do
|
|
155
|
+
__LINE__.to_s + ':' + __FILE__
|
|
156
|
+
end
|
|
157
|
+
ensure
|
|
158
|
+
end
|
|
159
|
+
begin
|
|
160
|
+
rescue
|
|
161
|
+
connect
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
end
|
|
165
|
+
end
|
|
166
|
+
__END__
|
|
@@ -0,0 +1,206 @@
|
|
|
1
|
+
# encoding: utf-8
|
|
2
|
+
=begin
|
|
3
|
+
|
|
4
|
+
* Name: SiSU
|
|
5
|
+
|
|
6
|
+
** Description: documents, structuring, processing, publishing, search
|
|
7
|
+
*** postgresql module, dbi import frame
|
|
8
|
+
|
|
9
|
+
** Author: Ralph Amissah
|
|
10
|
+
<ralph@amissah.com>
|
|
11
|
+
<ralph.amissah@gmail.com>
|
|
12
|
+
|
|
13
|
+
** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
|
|
14
|
+
2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah,
|
|
15
|
+
All Rights Reserved.
|
|
16
|
+
|
|
17
|
+
** License: GPL 3 or later:
|
|
18
|
+
|
|
19
|
+
SiSU, a framework for document structuring, publishing and search
|
|
20
|
+
|
|
21
|
+
Copyright (C) Ralph Amissah
|
|
22
|
+
|
|
23
|
+
This program is free software: you can redistribute it and/or modify it
|
|
24
|
+
under the terms of the GNU General Public License as published by the Free
|
|
25
|
+
Software Foundation, either version 3 of the License, or (at your option)
|
|
26
|
+
any later version.
|
|
27
|
+
|
|
28
|
+
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
29
|
+
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
30
|
+
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
|
|
31
|
+
more details.
|
|
32
|
+
|
|
33
|
+
You should have received a copy of the GNU General Public License along with
|
|
34
|
+
this program. If not, see <http://www.gnu.org/licenses/>.
|
|
35
|
+
|
|
36
|
+
If you have Internet connection, the latest version of the GPL should be
|
|
37
|
+
available at these locations:
|
|
38
|
+
<http://www.fsf.org/licensing/licenses/gpl.html>
|
|
39
|
+
<http://www.gnu.org/licenses/gpl.html>
|
|
40
|
+
|
|
41
|
+
<http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html>
|
|
42
|
+
|
|
43
|
+
** SiSU uses:
|
|
44
|
+
* Standard SiSU markup syntax,
|
|
45
|
+
* Standard SiSU meta-markup syntax, and the
|
|
46
|
+
* Standard SiSU object citation numbering and system
|
|
47
|
+
|
|
48
|
+
** Hompages:
|
|
49
|
+
<http://www.jus.uio.no/sisu>
|
|
50
|
+
<http://www.sisudoc.org>
|
|
51
|
+
|
|
52
|
+
** Git
|
|
53
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary>
|
|
54
|
+
<http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/dbi_discrete.rb;hb=HEAD>
|
|
55
|
+
|
|
56
|
+
=end
|
|
57
|
+
module SiSU_DBI_Discrete #% database building
|
|
58
|
+
require_relative 'se' # se.rb
|
|
59
|
+
include SiSU_Env; include SiSU_Screen
|
|
60
|
+
require_relative 'dp' # dp.rb
|
|
61
|
+
include SiSU_Param
|
|
62
|
+
require_relative 'db_dbi' # db_dbi.rb
|
|
63
|
+
include SiSU_DbDBI
|
|
64
|
+
require_relative 'html_lite_shared' # html_lite_shared.rb
|
|
65
|
+
include SiSU_FormatShared
|
|
66
|
+
begin
|
|
67
|
+
require 'fileutils'
|
|
68
|
+
include FileUtils::Verbose
|
|
69
|
+
rescue LoadError
|
|
70
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).
|
|
71
|
+
error('fileutils NOT FOUND (LoadError)')
|
|
72
|
+
end
|
|
73
|
+
class SQL
|
|
74
|
+
def initialize(opt)
|
|
75
|
+
SiSU_Env::Load.new('sqlite3',true).prog
|
|
76
|
+
@opt=opt
|
|
77
|
+
@particulars=SiSU_Particulars::CombinedSingleton.instance.get_all(opt)
|
|
78
|
+
@md=@particulars.md
|
|
79
|
+
if @opt.act[:sqlite][:set]==:on
|
|
80
|
+
@sql_type=:sqlite
|
|
81
|
+
if @opt.act[:maintenance][:set]==:on
|
|
82
|
+
maintenance_check(@opt,__FILE__,__LINE__)
|
|
83
|
+
end
|
|
84
|
+
end
|
|
85
|
+
@output_path=@md.file.output_path.sqlite_discrete.dir
|
|
86
|
+
@filename=@md.file.base_filename.sqlite_discrete
|
|
87
|
+
@file_maint=sql_maintenance_file
|
|
88
|
+
@file="#{@output_path}/#{@filename}"
|
|
89
|
+
end
|
|
90
|
+
def build
|
|
91
|
+
prepare
|
|
92
|
+
create_and_populate
|
|
93
|
+
end
|
|
94
|
+
def maintenance_check(opt,file,line)
|
|
95
|
+
#p opt.selections.str
|
|
96
|
+
p "at #{file} #{line}"
|
|
97
|
+
end
|
|
98
|
+
def prepare
|
|
99
|
+
if not FileTest.directory?(@output_path)
|
|
100
|
+
FileUtils::mkdir_p(@output_path)
|
|
101
|
+
elsif @file
|
|
102
|
+
FileUtils::rm_rf(@file)
|
|
103
|
+
end
|
|
104
|
+
end
|
|
105
|
+
def db_exist?(db,conn)
|
|
106
|
+
msg=%{no connection with sqlite database established, createdb "#{db.sqlite.db}"?}
|
|
107
|
+
if (not (FileTest.file?(db.sqlite.db)) \
|
|
108
|
+
or FileTest.zero?(db.sqlite.db))
|
|
109
|
+
puts msg
|
|
110
|
+
exit
|
|
111
|
+
end
|
|
112
|
+
if conn.is_a?(NilClass)
|
|
113
|
+
puts msg
|
|
114
|
+
exit
|
|
115
|
+
end
|
|
116
|
+
end
|
|
117
|
+
def create_and_populate
|
|
118
|
+
db=SiSU_Env::DbOp.new(@md)
|
|
119
|
+
conn=db.sqlite_discrete.conn_sqlite3
|
|
120
|
+
sdb=SiSU_DbDBI::Create.new(@opt,conn,@file,:sqlite)
|
|
121
|
+
sdb_index=SiSU_DbDBI::Index.new(@opt,conn,@file,:sqlite)
|
|
122
|
+
sdb.output_dir?
|
|
123
|
+
begin
|
|
124
|
+
SiSU_Screen::Ansi.new(
|
|
125
|
+
@opt.act[:color_state][:set],
|
|
126
|
+
'SQLite (discrete)',
|
|
127
|
+
"[#{@opt.f_pth[:lng_is]}] #{@opt.fno}"
|
|
128
|
+
).green_title_hi unless @opt.act[:quiet][:set]==:on
|
|
129
|
+
sdb.create_db
|
|
130
|
+
sdb.create_table.metadata_and_text
|
|
131
|
+
sdb.create_table.doc_objects
|
|
132
|
+
sdb.create_table.endnotes
|
|
133
|
+
sdb.create_table.endnotes_asterisk
|
|
134
|
+
sdb.create_table.endnotes_plus
|
|
135
|
+
sdb.create_table.urls
|
|
136
|
+
sdb_index.create_indexes
|
|
137
|
+
db_exist?(db,conn)
|
|
138
|
+
sdb_import=SiSU_DbDBI::Import.new(@opt,conn,@file_maint,:sqlite)
|
|
139
|
+
sdb_import.marshal_load
|
|
140
|
+
tell=SiSU_Screen::Ansi.new(
|
|
141
|
+
@opt.act[:color_state][:set],
|
|
142
|
+
"sqlite3 #{db.sqlite.db} database?"
|
|
143
|
+
)
|
|
144
|
+
tell.puts_grey if @opt.act[:verbose][:set]==:on
|
|
145
|
+
rescue
|
|
146
|
+
SiSU_Errors::Rescued.new($!,$@,'-d').location do
|
|
147
|
+
__LINE__.to_s + ':' + __FILE__
|
|
148
|
+
end
|
|
149
|
+
sdb.output_dir?
|
|
150
|
+
end
|
|
151
|
+
end
|
|
152
|
+
def read_sqlite
|
|
153
|
+
begin
|
|
154
|
+
begin
|
|
155
|
+
require 'sqlite3'
|
|
156
|
+
@conn=@db.sqlite.conn_sqlite3
|
|
157
|
+
rescue LoadError
|
|
158
|
+
SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).error('sqlite3 not available')
|
|
159
|
+
ensure
|
|
160
|
+
Dir.chdir(@opt.f_pth[:pth])
|
|
161
|
+
end
|
|
162
|
+
end
|
|
163
|
+
end
|
|
164
|
+
def connect
|
|
165
|
+
begin
|
|
166
|
+
SiSU_Screen::Ansi.new(
|
|
167
|
+
@opt.act[:color_state][:set],
|
|
168
|
+
"DBI (#{@sql_type}) #{@opt.selections.str}",
|
|
169
|
+
@opt.fns
|
|
170
|
+
).dbi_title unless @opt.act[:quiet][:set]==:on
|
|
171
|
+
@db.sqlite_discrete.conn_sqlite3
|
|
172
|
+
rescue
|
|
173
|
+
SiSU_Errors::Rescued.new($!,$@,@cf,@opt.fns).location do
|
|
174
|
+
__LINE__.to_s + ':' + __FILE__
|
|
175
|
+
end
|
|
176
|
+
ensure
|
|
177
|
+
end
|
|
178
|
+
end
|
|
179
|
+
def populate
|
|
180
|
+
end
|
|
181
|
+
def sql_maintenance_file
|
|
182
|
+
file=if @opt.act[:maintenance][:set]==:on
|
|
183
|
+
if @opt.fns and not @opt.fns.empty?
|
|
184
|
+
@env=SiSU_Env::InfoEnv.new(@opt.fns) if @opt.fns
|
|
185
|
+
if @sql_type ==:sqlite
|
|
186
|
+
puts "\n#{@env.processing_path.sqlite}/#{@opt.fns}.sql"
|
|
187
|
+
end
|
|
188
|
+
@db=SiSU_Env::InfoDb.new
|
|
189
|
+
@job="sqlite3 #{@db.sqlite.db} < #{@env.processing_path.sqlite}/#{@opt.fns}.sql"
|
|
190
|
+
if @sql_type ==:sqlite
|
|
191
|
+
File.new("#{@env.processing_path.sqlite}/#{@opt.fns}.sql",'w+')
|
|
192
|
+
else
|
|
193
|
+
File.new("#{@env.processing_path.postgresql}/#{@opt.fns}.sql",'w+')
|
|
194
|
+
end
|
|
195
|
+
elsif @opt.fns \
|
|
196
|
+
and @opt.fns.inspect =~/create/
|
|
197
|
+
nil #sort variations later
|
|
198
|
+
else nil
|
|
199
|
+
end
|
|
200
|
+
else nil
|
|
201
|
+
end
|
|
202
|
+
file
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
206
|
+
__END__
|