aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/sisu/0.52/dal_doc_str_tables.rb
diff options
context:
space:
mode:
authorRalph Amissah <ralph.amissah@gmail.com>2007-06-02 11:27:06 +0100
committerRalph Amissah <ralph.amissah@gmail.com>2007-06-02 11:27:06 +0100
commit26767cc88c0548ad7978021796d0ccc4c9f7ffed (patch)
treefe225e99e180b5d2925cbf776826f74db27e1888 /lib/sisu/0.52/dal_doc_str_tables.rb
parentrestrict use to ruby1.8 branch, i.e. < 1.9 (diff)
0.53.0, pre-build, see changelog, library naming changed for scm, placed under v0 (instead of 0.53)upstream/0.53.0sisu_0.53.0
Diffstat (limited to 'lib/sisu/0.52/dal_doc_str_tables.rb')
-rw-r--r--lib/sisu/0.52/dal_doc_str_tables.rb180
1 files changed, 0 insertions, 180 deletions
diff --git a/lib/sisu/0.52/dal_doc_str_tables.rb b/lib/sisu/0.52/dal_doc_str_tables.rb
deleted file mode 100644
index e70490e5..00000000
--- a/lib/sisu/0.52/dal_doc_str_tables.rb
+++ /dev/null
@@ -1,180 +0,0 @@
-=begin
- * Name: SiSU information Structuring Universe - Structured information, Serialized Units
- * Author: Ralph Amissah
- * http://www.jus.uio.no/sisu
- * http://www.jus.uio.no/sisu/SiSU/download.html
-
- * Description: xml output (sax style) processing
-
- * Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Ralph Amissah
-
- * License: GPL 2 or later
-
- Summary of GPL 2
-
- 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 2 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, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
-
- If you have Internet connection, the latest version of the GPL should be
- available at these locations:
- http://www.fsf.org/licenses/gpl.html
- http://www.gnu.org/copyleft/gpl.html
- http://www.jus.uio.no/sisu/gpl2.fsf
-
- SiSU was first released to the public on January 4th 2005
-
- SiSU uses:
-
- * Standard SiSU markup syntax,
- * Standard SiSU meta-markup syntax, and the
- * Standard SiSU object citation numbering and system
-
- © Ralph Amissah 1997, current 2007.
- All Rights Reserved.
-
- * Ralph Amissah: ralph@amissah.com
- ralph.amissah@gmail.com
-
- * Notes: tidy -xml sax.xml >> index.tidy
-=end
-module SiSU_document_structure_tables
- class Instantiate < SiSU_Param::Parameters::Instructions
- @@flag={}
- def initialize
- @@flag['table_to']=false
- @@counter=@@column=@@columns=0
- @@line_mode=''
- end
- end
- class Tables
- @@flag={}
- def initialize(md,data)
- @md,@data=md,data
- Instantiate.new
- end
- def table_visual(para)
- count=0
- @row=[]
- table=[]
- @rows=para.split(/;;/)
- @rows.compact! #(c\d+?;.+?)
- @rows.each do |row|
- count +=1
- @row[count]=row.split(/\|/)
- end
- @row.compact!
- widths=if @row[0].to_s =~/^\{(?:t|table)(?:~h)?\s+\d+;/
- col_width=@row[0].to_s.scan(/\d+/)
- rem=(100 - col_width[0].to_i)
- col_w=rem/(@row[1].length - 1)
- "#{col_width[0].to_s};" + ("#{col_w};" * (@row[1].length-1))
- else
- col_w=100/@row[1].length
- "#{col_w};" * @row[1].length
- end
- @row.delete_if {|r| r[0] =~/\{(?:table|t)(?:~h)?(?:\s+c\d+;)?[\d; ]*\}/}
- w=widths.split(/;/)
- tuned_file=[]
- tuned_file << if para =~/\{(?:t|table)~h(?:\sc\d+;)?[\d; ]*\}/
- "<!Th¡ c#{@row[2].length}; #{widths}!>"
- elsif para =~/\{(?:t|table)(?:\sc\d+;)?[\d; ]*\}/
- "<!T¡ c#{@row[2].length}; #{widths}!>"
- end
- @row.each do |l|
- l << '' if l.length == (@row[1].length - 1)
- table=[]
- if l.length == @row[1].length
- table << '<!' #'<tr>'
- n= -1
- l.each do |c|
- n +=1 #'<td>' + c + '</td>'
- table << if c =~/\A(?:\n)?\s*\Z/
- "¡¡#{w[n]}¡" + ' '
- else
- "¡¡#{w[n]}¡" + c.strip
- end
- end
- table << '!>' #'</tr>'
- tuned_file << table.join
- end
- end
- tuned_file << '<!TZ!>' #'</table>'
- tuned_file=tuned_file.compact.join("\n")
- end
- def tables
- data=@data
- count=0
- @row,@tuned_file,@tuned_table=[],[],[]
- data.each do |para|
- para.gsub!(/\n\s+\n/,"\n")
- para.gsub!(/\s+\n/,"\n")
- para.gsub!(/<:hi>/,'<span style="background-color: rgb(255,240,196)">') # bright yellow rgb(255,255,0) pale yellow rgb(255,255,200)
- para.gsub!(/<:\/hi>/,%{</span>})
- table=[]
- if para =~/^\{(?:t|table)(?:~h)?(?:\sc\d+;)?[\d; ]*\}/
- @tuned_file << table_visual(para)
- @tuned_file=@tuned_file.flatten
- elsif @@flag['table_to'] or para[/table\{(?:~h)?/]
- if para[/table\{(?:~h)?\s+c(\d+;.+)/]
- instructions=$1
- @@column=instructions.split(/;\s*/)
- @@columns=@@column[0]
- para.gsub!(/table\{~h\s+(c\d+?;.+?)$/,'<!Th¡ \1!>')
- para.gsub!(/table\{\s+(c\d+?;.+?)$/,'<!T¡ \1!>')
- @@flag['table_to']=true
- end
- if @@flag['table_to'] and para =~/\}table/
- para.gsub!(/^\}table\s*$/,"<!TZ!>\n")
- para.gsub!(/\n/,' ') #newlines taken out
- para.strip!
- @tuned_table << para
- @tuned_table.delete('')
- @tuned_file << @tuned_table.compact.join("\n") #@tuned_table.compact.join =~/\S+/ #would be preferable
- para=''
- @tuned_table=[]
- @@flag['table_to']=false
- end
- if @@flag['table_to'] and para =~/\S/
- @@counter=1
- sub_array=para.dup
- @@line_mode=sub_array.scan(/.+/)
- Tables.new(@md,@@line_mode).tr_td
- para=@@line_mode.join
- para.gsub!(/(.*\S+.*)\Z/m,'<!\1!>') unless para =~/<!Th?¡/
- end
- para.gsub!(/\n/,' ')
- para.strip!
- @tuned_table << para
- else
- para.gsub!(/\n/,' ') unless para =~/<:(?:code|verse|alt|group)>/
- para.strip!
- @tuned_file << para
- end
- @tuned_file
- end
- @tuned_file
- end
- def tr_td
- data=@data
- data.each do |line|
- if @@counter <= @@columns.to_i and line !~/(\}T\s*$|<:table[-_](close|end)>|<!TZ!>)/
- line.gsub!(/(.+)/,"¡¡#{@@column[@@counter]}¡\\1") unless line =~/<!Th?¡/
- @@counter+=1
- end
- end
- data
- end
- end
-end
-__END__