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.
Files changed (207) hide show
  1. checksums.yaml +7 -0
  2. data/bin/sisu +367 -0
  3. data/bin/sisugem +367 -0
  4. data/data/sisu/image/arrow_next_red.png +0 -0
  5. data/data/sisu/image/arrow_prev_red.png +0 -0
  6. data/data/sisu/image/arrow_up_red.png +0 -0
  7. data/data/sisu/image/b_bluebell.png +0 -0
  8. data/data/sisu/image/b_doc.png +0 -0
  9. data/data/sisu/image/b_epub.png +0 -0
  10. data/data/sisu/image/b_home.png +0 -0
  11. data/data/sisu/image/b_info.png +0 -0
  12. data/data/sisu/image/b_odf.png +0 -0
  13. data/data/sisu/image/b_pdf.png +0 -0
  14. data/data/sisu/image/b_search.png +0 -0
  15. data/data/sisu/image/b_toc.png +0 -0
  16. data/data/sisu/image/bullet_08.png +0 -0
  17. data/data/sisu/image/bullet_09.png +0 -0
  18. data/data/sisu/image/bullet_10.png +0 -0
  19. data/data/sisu/image/bullet_11.png +0 -0
  20. data/data/sisu/image/bullet_12.png +0 -0
  21. data/data/sisu/image/bullet_doc.png +0 -0
  22. data/data/sisu/image/bullet_red.png +0 -0
  23. data/data/sisu/image/dot_clear.png +0 -0
  24. data/data/sisu/image/dot_white.png +0 -0
  25. data/data/sisu/image/gplv3.png +0 -0
  26. data/data/sisu/image/gplv3_free_software.png +0 -0
  27. data/data/sisu/image/next.png +0 -0
  28. data/data/sisu/image/previous.png +0 -0
  29. data/data/sisu/image/rb7.ico +0 -0
  30. data/data/sisu/image/sisu.png +0 -0
  31. data/data/sisu/image/toctoc.png +0 -0
  32. data/data/sisu/version.yml +5 -0
  33. data/lib/sisu.rb +94 -0
  34. data/lib/sisu/air.rb +80 -0
  35. data/lib/sisu/ao.rb +590 -0
  36. data/lib/sisu/ao_character_check.rb +102 -0
  37. data/lib/sisu/ao_composite.rb +286 -0
  38. data/lib/sisu/ao_doc_objects.rb +565 -0
  39. data/lib/sisu/ao_doc_str.rb +2269 -0
  40. data/lib/sisu/ao_endnotes.rb +136 -0
  41. data/lib/sisu/ao_expand_insertions.rb +514 -0
  42. data/lib/sisu/ao_hash_digest.rb +174 -0
  43. data/lib/sisu/ao_idx.rb +422 -0
  44. data/lib/sisu/ao_images.rb +187 -0
  45. data/lib/sisu/ao_metadata.rb +86 -0
  46. data/lib/sisu/ao_misc_arrange.rb +207 -0
  47. data/lib/sisu/ao_numbering.rb +720 -0
  48. data/lib/sisu/ao_persist.rb +194 -0
  49. data/lib/sisu/ao_references.rb +502 -0
  50. data/lib/sisu/ao_syntax.rb +640 -0
  51. data/lib/sisu/cgi.rb +84 -0
  52. data/lib/sisu/cgi_pgsql.rb +270 -0
  53. data/lib/sisu/cgi_sql_common.rb +986 -0
  54. data/lib/sisu/cgi_sqlite.rb +244 -0
  55. data/lib/sisu/conf.rb +287 -0
  56. data/lib/sisu/constants.rb +388 -0
  57. data/lib/sisu/css.rb +3484 -0
  58. data/lib/sisu/db_columns.rb +1997 -0
  59. data/lib/sisu/db_create.rb +689 -0
  60. data/lib/sisu/db_dbi.rb +90 -0
  61. data/lib/sisu/db_drop.rb +207 -0
  62. data/lib/sisu/db_import.rb +877 -0
  63. data/lib/sisu/db_indexes.rb +146 -0
  64. data/lib/sisu/db_load_tuple.rb +323 -0
  65. data/lib/sisu/db_remove.rb +182 -0
  66. data/lib/sisu/db_select.rb +230 -0
  67. data/lib/sisu/db_sqltxt.rb +173 -0
  68. data/lib/sisu/db_tests.rb +114 -0
  69. data/lib/sisu/dbi.rb +166 -0
  70. data/lib/sisu/dbi_discrete.rb +206 -0
  71. data/lib/sisu/digests.rb +306 -0
  72. data/lib/sisu/dp.rb +1606 -0
  73. data/lib/sisu/dp_identify_markup.rb +161 -0
  74. data/lib/sisu/dp_make.rb +668 -0
  75. data/lib/sisu/embedded.rb +149 -0
  76. data/lib/sisu/errors.rb +84 -0
  77. data/lib/sisu/generic_parts.rb +131 -0
  78. data/lib/sisu/git.rb +277 -0
  79. data/lib/sisu/html.rb +775 -0
  80. data/lib/sisu/html_concordance.rb +391 -0
  81. data/lib/sisu/html_format.rb +1348 -0
  82. data/lib/sisu/html_harvest.rb +109 -0
  83. data/lib/sisu/html_harvest_author_format.rb +111 -0
  84. data/lib/sisu/html_harvest_authors.rb +466 -0
  85. data/lib/sisu/html_harvest_topics.rb +893 -0
  86. data/lib/sisu/html_lite_shared.rb +324 -0
  87. data/lib/sisu/html_manifest.rb +1032 -0
  88. data/lib/sisu/html_minitoc.rb +230 -0
  89. data/lib/sisu/html_parts.rb +437 -0
  90. data/lib/sisu/html_persist.rb +237 -0
  91. data/lib/sisu/html_promo.rb +440 -0
  92. data/lib/sisu/html_scroll.rb +235 -0
  93. data/lib/sisu/html_segments.rb +716 -0
  94. data/lib/sisu/html_shared.rb +62 -0
  95. data/lib/sisu/html_table.rb +64 -0
  96. data/lib/sisu/html_tune.rb +301 -0
  97. data/lib/sisu/hub.rb +277 -0
  98. data/lib/sisu/hub_actions.rb +1122 -0
  99. data/lib/sisu/hub_loop_markup_files.rb +170 -0
  100. data/lib/sisu/hub_options.rb +1695 -0
  101. data/lib/sisu/i18n.rb +702 -0
  102. data/lib/sisu/manpage.rb +377 -0
  103. data/lib/sisu/manpage_format.rb +85 -0
  104. data/lib/sisu/object_munge.rb +307 -0
  105. data/lib/sisu/prog_text_translation.rb +1702 -0
  106. data/lib/sisu/qrcode.rb +754 -0
  107. data/lib/sisu/relaxng.rb +1153 -0
  108. data/lib/sisu/remote.rb +246 -0
  109. data/lib/sisu/rexml.rb +148 -0
  110. data/lib/sisu/se.rb +158 -0
  111. data/lib/sisu/se_cleanoutput.rb +145 -0
  112. data/lib/sisu/se_clear.rb +105 -0
  113. data/lib/sisu/se_createsite.rb +273 -0
  114. data/lib/sisu/se_css.rb +221 -0
  115. data/lib/sisu/se_date.rb +92 -0
  116. data/lib/sisu/se_db.rb +214 -0
  117. data/lib/sisu/se_envcall.rb +326 -0
  118. data/lib/sisu/se_file_op.rb +2758 -0
  119. data/lib/sisu/se_filemap.rb +247 -0
  120. data/lib/sisu/se_get_init.rb +238 -0
  121. data/lib/sisu/se_hub_particulars.rb +234 -0
  122. data/lib/sisu/se_info_env.rb +2179 -0
  123. data/lib/sisu/se_info_port.rb +70 -0
  124. data/lib/sisu/se_info_system.rb +202 -0
  125. data/lib/sisu/se_load.rb +108 -0
  126. data/lib/sisu/se_processing.rb +659 -0
  127. data/lib/sisu/se_programs.rb +394 -0
  128. data/lib/sisu/se_remotes.rb +553 -0
  129. data/lib/sisu/se_standardise_lang.rb +176 -0
  130. data/lib/sisu/se_version.rb +174 -0
  131. data/lib/sisu/shared_images.rb +137 -0
  132. data/lib/sisu/shared_markup_alt.rb +336 -0
  133. data/lib/sisu/shared_metadata.rb +1361 -0
  134. data/lib/sisu/shared_sem.rb +156 -0
  135. data/lib/sisu/sisu_thor_lib.rb +407 -0
  136. data/lib/sisu/sitemaps.rb +224 -0
  137. data/lib/sisu/src_kdissert_share.rb +102 -0
  138. data/lib/sisu/src_po4a_share.rb +309 -0
  139. data/lib/sisu/src_po4a_shelf.rb +1217 -0
  140. data/lib/sisu/src_po4a_shelf_set.rb +297 -0
  141. data/lib/sisu/src_po4a_sst_ao_sst.rb +893 -0
  142. data/lib/sisu/src_po4a_sst_ao_sst_set.rb +284 -0
  143. data/lib/sisu/src_po4a_sstm.rb +135 -0
  144. data/lib/sisu/src_shared.rb +347 -0
  145. data/lib/sisu/src_sisupod_make.rb +171 -0
  146. data/lib/sisu/src_sisupod_sstm.rb +109 -0
  147. data/lib/sisu/sst_convert_markup.rb +323 -0
  148. data/lib/sisu/sst_do_inline_footnotes.rb +440 -0
  149. data/lib/sisu/sst_from_xml.rb +178 -0
  150. data/lib/sisu/sst_identify_markup.rb +482 -0
  151. data/lib/sisu/sst_to_s_xml_sax.rb +471 -0
  152. data/lib/sisu/termsheet.rb +163 -0
  153. data/lib/sisu/texinfo.rb +430 -0
  154. data/lib/sisu/texinfo_format.rb +541 -0
  155. data/lib/sisu/texpdf.rb +1162 -0
  156. data/lib/sisu/texpdf_format.rb +1689 -0
  157. data/lib/sisu/texpdf_parts.rb +235 -0
  158. data/lib/sisu/txt_asciidoc.rb +354 -0
  159. data/lib/sisu/txt_asciidoc_decorate.rb +207 -0
  160. data/lib/sisu/txt_markdown.rb +389 -0
  161. data/lib/sisu/txt_markdown_decorate.rb +207 -0
  162. data/lib/sisu/txt_orgmode.rb +376 -0
  163. data/lib/sisu/txt_orgmode_decorate.rb +186 -0
  164. data/lib/sisu/txt_output.rb +86 -0
  165. data/lib/sisu/txt_plain.rb +410 -0
  166. data/lib/sisu/txt_plain_decorate.rb +189 -0
  167. data/lib/sisu/txt_read.rb +109 -0
  168. data/lib/sisu/txt_rst.rb +371 -0
  169. data/lib/sisu/txt_rst_decorate.rb +186 -0
  170. data/lib/sisu/txt_shared.rb +241 -0
  171. data/lib/sisu/txt_textile.rb +367 -0
  172. data/lib/sisu/txt_textile_decorate.rb +186 -0
  173. data/lib/sisu/update.rb +141 -0
  174. data/lib/sisu/urls.rb +696 -0
  175. data/lib/sisu/utils.rb +232 -0
  176. data/lib/sisu/utils_composite.rb +115 -0
  177. data/lib/sisu/utils_response.rb +114 -0
  178. data/lib/sisu/utils_screen_text_color.rb +472 -0
  179. data/lib/sisu/utils_spell.rb +99 -0
  180. data/lib/sisu/webrick.rb +191 -0
  181. data/lib/sisu/wikispeak.rb +375 -0
  182. data/lib/sisu/xhtml.rb +472 -0
  183. data/lib/sisu/xhtml_epub2.rb +890 -0
  184. data/lib/sisu/xhtml_epub2_concordance.rb +322 -0
  185. data/lib/sisu/xhtml_epub2_format.rb +2272 -0
  186. data/lib/sisu/xhtml_epub2_persist.rb +278 -0
  187. data/lib/sisu/xhtml_epub2_segments.rb +599 -0
  188. data/lib/sisu/xhtml_epub2_tune.rb +330 -0
  189. data/lib/sisu/xhtml_parts.rb +183 -0
  190. data/lib/sisu/xhtml_shared.rb +62 -0
  191. data/lib/sisu/xhtml_table.rb +97 -0
  192. data/lib/sisu/xml_docbook5.rb +376 -0
  193. data/lib/sisu/xml_dom.rb +624 -0
  194. data/lib/sisu/xml_fictionbook2.rb +389 -0
  195. data/lib/sisu/xml_format.rb +865 -0
  196. data/lib/sisu/xml_md_oai_pmh_dc.rb +229 -0
  197. data/lib/sisu/xml_odf_odt.rb +887 -0
  198. data/lib/sisu/xml_odf_odt_format.rb +674 -0
  199. data/lib/sisu/xml_parts.rb +191 -0
  200. data/lib/sisu/xml_persist.rb +126 -0
  201. data/lib/sisu/xml_sax.rb +521 -0
  202. data/lib/sisu/xml_scaffold_structure_collapsed.rb +198 -0
  203. data/lib/sisu/xml_scaffold_structure_sisu.rb +201 -0
  204. data/lib/sisu/xml_shared.rb +665 -0
  205. data/lib/sisu/xml_tables.rb +261 -0
  206. data/lib/sisu/zap.rb +90 -0
  207. metadata +251 -0
data/lib/sisu/utils.rb ADDED
@@ -0,0 +1,232 @@
1
+ # encoding: utf-8
2
+ =begin
3
+
4
+ * Name: SiSU
5
+
6
+ ** Description: documents, structuring, processing, publishing, search
7
+ *** system environment, debug related
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/utils.rb;hb=HEAD>
55
+
56
+ =end
57
+ module SiSU_Utils
58
+ class CodeMarker
59
+ def initialize(line,file,color=:red)
60
+ @line,@file,@color=line.to_s,file,color
61
+ end
62
+ def ansi(color=nil)
63
+ @color=color ? color : @color
64
+ c={}
65
+ c[:on]=case @color
66
+ when :red then ANSI_C[:red]
67
+ when :green then ANSI_C[:green]
68
+ when :yellow then ANSI_C[:yellow]
69
+ when :blue then ANSI_C[:blue]
70
+ when :fuchsia then ANSI_C[:fuchsia]
71
+ when :cyan then ANSI_C[:cyan]
72
+ when :inv_red then ANSI_C[:inv_red]
73
+ when :inv_green then ANSI_C[:inv_green]
74
+ when :inv_yellow then ANSI_C[:inv_yellow]
75
+ when :inv_blue then ANSI_C[:inv_blue]
76
+ when :inv_fuchsia then ANSI_C[:inv_fuchsia]
77
+ when :inv_cyan then ANSI_C[:inv_cyan]
78
+ when :b_red then ANSI_C[:b_red]
79
+ when :b_green then ANSI_C[:b_green]
80
+ when :b_yellow then ANSI_C[:b_yellow]
81
+ when :b_blue then ANSI_C[:b_blue]
82
+ when :b_fuchsia then ANSI_C[:b_fuchsia]
83
+ when :b_cyan then ANSI_C[:b_cyan]
84
+ else ANSI_C[:red]
85
+ end
86
+ c[:off]= ANSI_C[:off]
87
+ #ansi_color + @line.to_s + ansi_color_off + ' ' + @file.gsub(/([^\/]+$)/,"#{ansi_color}\\1#{ansi_color_off}")
88
+ c
89
+ end
90
+ def var(v,x)
91
+ h={ c: nil, m: '' }
92
+ if v.is_a?(Hash)
93
+ h[:c] = (defined? v[:c]) ? v[:c] : ''
94
+ h[:m] = (defined? v[:m]) ? v[:m] : ''
95
+ elsif (v.is_a?(Symbol) \
96
+ and x.is_a?(String))
97
+ if v.is_a?(Symbol)
98
+ h[:c]=v
99
+ elsif v.is_a?(String)
100
+ h[:m]=v
101
+ end
102
+ if x.is_a?(String)
103
+ h[:m]=x
104
+ end
105
+ elsif (v.is_a?(Symbol) \
106
+ or v.is_a?(String))
107
+ if v.is_a?(Symbol)
108
+ h[:c]=v
109
+ elsif v.is_a?(String)
110
+ h[:m]=v
111
+ end
112
+ end
113
+ h[:c] = (defined? h[:c]) ? h[:c] : ''
114
+ h[:m] = (defined? h[:m]) ? h[:m] : ''
115
+ h[:c]=ansi(h[:c])
116
+ h[:m]=message(h[:m])
117
+ h
118
+ end
119
+ def message(msg='')
120
+ @message=(msg.nil? || msg.empty?) \
121
+ ? ''
122
+ : ' ' + msg
123
+ end
124
+ def set(v=nil,x=nil)
125
+ v=var(v,x)
126
+ file,path=File.basename(@file),File.dirname(@file)
127
+ v[:c][:on] + @line + v[:c][:off] + ' ' \
128
+ + path + '/' \
129
+ + "#{v[:c][:on]}#{file}#{v[:c][:off]}" \
130
+ + v[:m]
131
+ end
132
+ def mark(v=nil,x=nil)
133
+ puts set(v,x)
134
+ end
135
+ def tell(v=nil,x=nil)
136
+ puts set(v,x)
137
+ end
138
+ def report(v=nil,x=nil)
139
+ puts set(v,x)
140
+ end
141
+ def ok(v=nil,x=nil)
142
+ if (v.is_a?(Symbol) \
143
+ and x.is_a?(String))
144
+ x= '*OK* ' + x
145
+ elsif v.is_a?(String)
146
+ v='*OK* ' + v
147
+ x=nil
148
+ else
149
+ v,x='*OK*',nil
150
+ end
151
+ puts set(v,x)
152
+ end
153
+ def warn(v=nil,x=nil)
154
+ if (v.is_a?(Symbol) \
155
+ and x.is_a?(String))
156
+ x="\n " + '*WARN* ' + x
157
+ elsif v.is_a?(String)
158
+ v="\n " + '*WARN* ' + v
159
+ x=nil
160
+ else
161
+ v,x='*WARN*',nil
162
+ end
163
+ puts set(v,x)
164
+ end
165
+ def error(v=nil,x=nil)
166
+ if (v.is_a?(Symbol) \
167
+ and x.is_a?(String))
168
+ x="\n " + '*ERROR* ' + x
169
+ elsif v.is_a?(String)
170
+ v="\n " + '*ERROR* ' + v
171
+ x=nil
172
+ else
173
+ v,x='*ERROR*',nil
174
+ end
175
+ STDERR.puts set(v,x)
176
+ end
177
+ end
178
+ class Path
179
+ def initialize(dir=Dir.pwd)
180
+ @dir=dir
181
+ end
182
+ def base_markup(call_path=nil)
183
+ call_path = call_path \
184
+ ? call_path \
185
+ : Dir.pwd
186
+ (/(\S+?)(?:\/(?:#{Px[:lng_lst_rgx]}))?$/).match(call_path)[1]
187
+ end
188
+ def base_markup_stub
189
+ m=/.+\/(?:src\/)?(\S+)/im
190
+ base_markup[m,1]
191
+ end
192
+ def image_src
193
+ if base_markup =~/sisupod\/doc[\/]?$/
194
+ base_markup.gsub(/\/doc[\/]?$/,'/image')
195
+ elsif FileTest.directory?("#{base_markup}/_sisu/image")
196
+ "#{base_markup}/_sisu/image"
197
+ end
198
+ end
199
+ def bmd
200
+ base_markup
201
+ end
202
+ end
203
+ end
204
+ __END__
205
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark({ m: %{
206
+ code: #{@@flag[:code]}, <-- close "#{t_o}"
207
+ }})
208
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark({ m: %{
209
+ code: #{@@flag['code']}, <-- close "#{t_o}"
210
+ }, c: :green})
211
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark({ m: %{
212
+ code: #{@@flag['code']}, open --> "#{t_o}"
213
+ }}) if t_o=~/^```/m
214
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark(%{ code: #{@@flag['code']}, open --> "#{t_o}" }) \
215
+ if t_o=~/^```/m
216
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark("open -->")
217
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:fuchsia).mark("open -->")
218
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark("open -->",:green)
219
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:green,"open -->")
220
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark("open -->")
221
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark(:green)
222
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark
223
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:green).mark("open -->")
224
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).mark('open -->',:green)
225
+ SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:red).mark
226
+ puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__,:red).set
227
+ puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set('',:green)
228
+ puts SiSU_Utils::CodeMarker.new(__LINE__,__FILE__).set('',:fuchsia)
229
+ puts ANSI_C[:red] + __LINE__.to_s + ANSI_C[:off] + ' ' + __FILE__
230
+ puts "#{ANSI_C[:red]} #{__LINE__.to_s} #{ANSI_C[:off]} #{__FILE__}"
231
+ puts ANSI_C[:fuchsia] + __LINE__.to_s + ANSI_C[:off] + ' ' + __FILE__.gsub(/([^\/]+$)/,"#{ANSI_C[:fuchsia]}\\1#{ANSI_C[:off]}")
232
+ puts ANSI_C[:red] + __LINE__.to_s + ANSI_C[:off] + ' ' + __FILE__.gsub(/([^\/]+$)/,"#{ANSI_C[:red]}\\1#{ANSI_C[:off]}")
@@ -0,0 +1,115 @@
1
+ # encoding: utf-8
2
+ =begin
3
+
4
+ * Name: SiSU
5
+
6
+ ** Description: documents, structuring, processing, publishing, search
7
+ *** system environment, debug related
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/utils_composite.rb;hb=HEAD>
55
+
56
+ =end
57
+ module SiSU_Composite_Doc_Utils
58
+ def inserts_array(loadfilename)
59
+ IO.readlines(loadfilename,'')
60
+ end
61
+ def insert_filename?(para)
62
+ if para =~ /^<<\s+((?:https?|file):\/\/\S+?\.ss[it])$/ # and NetTest
63
+ url($1.strip)
64
+ elsif para =~/^<<\s*(\S+?\.ss[it])$/
65
+ $1.strip
66
+ end
67
+ end
68
+ def extract_filenames(loadfilename,file_names_arr)
69
+ file_names_arr << loadfilename
70
+ ssi_files=[]
71
+ if loadfilename =~/\S+?\.ss[im]$/
72
+ inserts_array(loadfilename).each do |para|
73
+ filen=insert_filename?(para)
74
+ file_names_arr << filen
75
+ if filen =~/\S+?\.ssi$/
76
+ ssi_files << filen
77
+ end
78
+ end
79
+ end
80
+ ssi_files.each do |fn|
81
+ extract_filenames(fn,file_names_arr)
82
+ end
83
+ file_names_arr.flatten.compact.uniq.sort
84
+ end
85
+ def composite_and_imported_filenames_array(loadfilename)
86
+ file_names_arr=[]
87
+ begin
88
+ if FileTest.file?(loadfilename)
89
+ if loadfilename =~/\S+?\.ss[itm]$/
90
+ if (@opt.act[:verbose][:set]==:on \
91
+ || @opt.act[:verbose_plus][:set]==:on \
92
+ || @opt.act[:maintenance][:set]==:on)
93
+ SiSU_Screen::Ansi.new(
94
+ @opt.act[:color_state][:set],
95
+ 'loading:',
96
+ loadfilename,
97
+ ).txt_grey
98
+ end
99
+ file_names_arr=extract_filenames(loadfilename,file_names_arr)
100
+ end
101
+ end
102
+ if (@opt.act[:verbose_plus][:set]==:on \
103
+ || @opt.act[:maintenance][:set]==:on)
104
+ p file_names_arr ;p file_names_arr.length
105
+ end
106
+ file_names_arr
107
+ rescue
108
+ SiSU_Errors::Rescued.new($!,$@,@opt.selections.str,@opt.fns).location do
109
+ __LINE__.to_s + ':' + __FILE__
110
+ end
111
+ ensure
112
+ end
113
+ end
114
+ end
115
+ __END__
@@ -0,0 +1,114 @@
1
+ # encoding: utf-8
2
+ =begin
3
+
4
+ * Name: SiSU
5
+
6
+ ** Description: documents, structuring, processing, publishing, search
7
+ *** Request response
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/utils_response.rb;hb=HEAD>
55
+
56
+ =end
57
+ module SiSU_Response
58
+ def available_selections_
59
+ %{'yes', 'no', 'quit' or 'exit'; [ynqx]}
60
+ end
61
+ def response?(ask)
62
+ response='redo'
63
+ print ask + %{ [#{available_selections_}]: }
64
+ response=File.new('/dev/tty').gets.strip
65
+ case response
66
+ when /^(?:y|yes)$/ then true
67
+ when /^(?:n|no)$/ then false
68
+ when /^(?:[qx]|quit|exit)$/ then exit
69
+ else puts %{[please type: #{available_selections_}]}
70
+ response?(ask)
71
+ end
72
+ end
73
+ def query
74
+ def selections_available_(selections=:strict)
75
+ short_options=(selections == :strict) ? '' : '; [ynqx]'
76
+ %{'yes', 'no', 'quit' or 'exit'#{short_options}}
77
+ end
78
+ def selection_options
79
+ def response_strict(resp)
80
+ case resp
81
+ when /^(?:yes)$/ then true
82
+ when /^(?:no)$/ then false
83
+ when /^(?:quit|exit)$/ then exit
84
+ else
85
+ puts %{response was: #{resp}}
86
+ puts %{[please type to select: #{selections_available_(:strict)}]}
87
+ answer?('',:strict)
88
+ end
89
+ end
90
+ def response_short(resp)
91
+ case resp
92
+ when /^(?:y|yes)$/ then true
93
+ when /^(?:n|no)$/ then false
94
+ when /^(?:[qx]|quit|exit)$/ then exit
95
+ else
96
+ puts %{response was: #{resp}}
97
+ puts %{[please type to select: #{selections_available_(:short)}]}
98
+ answer?('',:short)
99
+ end
100
+ end
101
+ self
102
+ end
103
+ def answer?(ask,selections=:strict)
104
+ resp='redo'
105
+ print ask + %{PROCEED? [#{selections_available_(selections)}]: }
106
+ resp=File.new('/dev/tty').gets.strip
107
+ (selections==:strict) \
108
+ ? selection_options.response_strict(resp)
109
+ : selection_options.response_short(resp)
110
+ end
111
+ self
112
+ end
113
+ end
114
+ __END__