diff options
author | Ralph Amissah <ralph@amissah.com> | 2015-05-01 18:59:03 -0400 |
---|---|---|
committer | Ralph Amissah <ralph@amissah.com> | 2015-05-01 18:59:03 -0400 |
commit | e56b1252015f76e2ee629ae19b4fef9f89700867 (patch) | |
tree | f02ba618ac200fde037d27513dfc6dc3fbb67756 /lib/sisu/develop/ao_doc_objects.rb | |
parent | debian/changelog (6.5.0-1) (diff) | |
parent | version & changelog, tag for release (diff) |
Merge tag 'sisu_7.0.0' into debian/sid
SiSU 7.0.0
Diffstat (limited to 'lib/sisu/develop/ao_doc_objects.rb')
-rw-r--r-- | lib/sisu/develop/ao_doc_objects.rb | 565 |
1 files changed, 0 insertions, 565 deletions
diff --git a/lib/sisu/develop/ao_doc_objects.rb b/lib/sisu/develop/ao_doc_objects.rb deleted file mode 100644 index 5a59af7d..00000000 --- a/lib/sisu/develop/ao_doc_objects.rb +++ /dev/null @@ -1,565 +0,0 @@ -# encoding: utf-8 -=begin - -* Name: SiSU - -** Description: documents, structuring, processing, publishing, search -*** document abstraction - -** Author: Ralph Amissah - <ralph@amissah.com> - <ralph.amissah@gmail.com> - -** Copyright: (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, - 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ralph Amissah, - All Rights Reserved. - -** License: GPL 3 or later: - - SiSU, a framework for document structuring, publishing and search - - Copyright (C) Ralph Amissah - - This program is free software: you can redistribute it and/or modify it - under the terms of the GNU General Public License as published by the Free - Software Foundation, either version 3 of the License, or (at your option) - any later version. - - This program is distributed in the hope that it will be useful, but WITHOUT - ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or - FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for - more details. - - You should have received a copy of the GNU General Public License along with - this program. If not, see <http://www.gnu.org/licenses/>. - - If you have Internet connection, the latest version of the GPL should be - available at these locations: - <http://www.fsf.org/licensing/licenses/gpl.html> - <http://www.gnu.org/licenses/gpl.html> - - <http://www.sisudoc.org/sisu/en/manifest/gpl.fsf.html> - -** SiSU uses: - * Standard SiSU markup syntax, - * Standard SiSU meta-markup syntax, and the - * Standard SiSU object citation numbering and system - -** Hompages: - <http://www.jus.uio.no/sisu> - <http://www.sisudoc.org> - -** Git - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=summary> - <http://git.sisudoc.org/gitweb/?p=code/sisu.git;a=blob;f=lib/sisu/develop/ao_doc_objects.rb;hb=HEAD> - -=end -module SiSU_AO_DocumentStructure - class Extract - def extract(h,o) - h ? h : o - end - end - class ObjectMetadata - attr_accessor :is,:of,:tags,:obj,:digest - def initialize - @tags={} - @is=@tmp=@digest=nil - @of=:meta - end - def metadata(tags) - of = @of #Symbol, classification - group - is = :meta #Symbol, classification - specific type - tags = tags || ((defined? o.tags) ? o.tags : {}) #String, metadata type/tag - obj = nil - @of,@is,@tags,@obj=of,is,tags,obj - self - end - end - class ObjectMeta - attr_accessor :obj,:is,:of,:tag,:digest,:tmp - def initialize - @is=@obj=@tag=@digest=@digest=@tmp=nil - @of=:meta - end - def metadata(h,o=nil) - of = @of #Symbol, classification - group - is = :meta #Symbol, classification - specific type - tag = h[:tag] || ((defined? o.tag) ? o.tag : nil) #String, metadata type/tag - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - @of,@is,@tag,@obj,@digest,@tmp=of,is,tag,obj,digest,tmp - self - end - end - class ObjectHeading - attr_accessor :obj,:is,:tags,:of,:lv,:ln,:lc,:use_,:name,:idx,:ocn,:odv,:osp,:node,:parent,:ocn_,:note_,:autonum_,:digest,:tmp - def initialize - @of=:para - @is=@obj=@lv=@ln=@lc=@use_=@name=@idx=@size=@ocn=@odv=@osp=@node=@parent=@ocn_=@note_=@autonum_=@digest=@tmp=nil - @tags=[] - end - def heading_ln(lv) - case lv - when /A/ then 0 - when /B/ then 1 - when /C/ then 2 - when /D/ then 3 - when /1/ then 4 - when /2/ then 5 - when /3/ then 6 - when /4/ then 7 - when /5/ then 8 - when /6/ then 9 - end - end - def heading_lv(ln) - case ln.to_s - when /0/ then 'A' - when /1/ then 'B' - when /2/ then 'C' - when /3/ then 'D' - when /4/ then '1' - when /5/ then '2' - when /6/ then '3' - when /7/ then '4' - when /8/ then '5' - when /9/ then '6' - end - end - def heading(h,o=nil) - if not h[:ln] \ - and (h[:lv] and h[:lv]=~/[1-6A-D]/) - h[:ln]=heading_ln(h[:lv]) - elsif not h[:lv] \ - and (h[:ln] and h[:ln].to_s=~/[0-9]/) - h[:lv]=heading_lv(h[:ln]) - end - of = @of #Symbol, classification - group - is = :heading #Symbol, classification - specific type - name = h[:name] || ((defined? o.name) ? o.name : nil) #String, named object? - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - node = h[:node] || ((defined? o.node) ? o.node : nil) #[Node relationship doc structure info] - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - lv = h[:lv] || ((defined? o.lv) ? o.lv : nil) #Alpha-numeric, document structure as used in markup, A-D then 1-6 - ln = h[:ln] || ((defined? o.ln) ? o.ln : nil) #Integer, document structure level, for convenience in processing 1-9 - lc = h[:lc] || ((defined? o.lc) ? o.lc : nil) #Integer, document structure collapsed level, convenience (collapse sisu's dual level document structure for markup with simple linear structure) - use_ = if lv \ - and lv == '1' - h[:use_] || ((defined? o.use_) ? o.use_ : :ok) - elsif not lv.empty? \ - and lv =~ /[A-D2-3]/ - :ok - else - h[:use_] || ((defined? o.use_) ? o.use_ : :ok) - end - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - autonum_ = if h[:autonum_].nil? - ((defined? o.autonum_) ? o.autonum_ : true) #Bool? auto-numbering if requested default on, false suppresses - else h[:autonum_] - end - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@lv,@ln,@lc,@name,@tags,@obj,@idx,@ocn,@odv,@osp,@node,@parent,@use_,@ocn_,@note_,@autonum_,@digest,@tmp= - of, is, lv, ln, lc, name, tags, obj, idx, ocn, odv, osp, node, parent, use_, ocn_, note_, autonum_, digest, tmp - self - end - def heading_insert(h,o=nil) - heading(h,o=nil) - @is = :heading_insert #String, classification - specific type - self - end - end - class ObjectPara - attr_accessor :obj,:is,:tags,:of,:name,:idx,:quote_,:bullet_,:indent,:hang,:ocn,:odv,:osp,:parent,:note_,:image_,:ocn_,:digest,:tmp - def initialize - @of=:para - @is=@obj=@name=@idx=@quote_=@bullet_=@indent=@hang=@size=@ocn=@odv=@osp=@parent=@note_=@image_=@ocn_=@digest=@tmp=nil - @tags=[] - end - def paragraph(h,o=nil) - of = @of #Symbol, classification - group - is = :para #Symbol, classification - specific type - name = h[:name] || ((defined? o.name) ? o.name : nil) #String, named object? - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - indent = h[:indent].to_s || ((defined? o.indent) ? o.indent.to_s : nil) #Integer, indent level - hang = h[:hang].to_s || ((defined? o.hang) ? o.hang.to_s : nil) #Integer, hanging indent level - bullet_ = h[:bullet_] || ((defined? o.bullet_) ? o.bullet_ : false) #Bool, bulleted? - quote_ = h[:quote_] || ((defined? o.quote_) ? o.quote_ : false) #Bool, quote (blockquote)? - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - image_ = h[:image_] || ((defined? o.image_) ? o.image_ : false) #Bool, images? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@name,@tags,@obj,@indent,@hang,@bullet_,@quote_,@idx,@ocn,@odv,@osp,@parent,@image_,@note_,@ocn_,@digest,@tmp= - of, is, name, tags, obj, indent, hang, bullet_, quote_, idx, ocn, odv, osp, parent, image_, note_, ocn_, digest, tmp - self - end - def docinfo(h,o=nil) - of = @of #String, classification - group - is = :docinfo #String, classification - specific type - name = h[:name] || ((defined? o.name) ? o.name : nil) #String, named object? - tags = h[:tags] || ((defined? o.tags) ? o.tags : nil) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = nil #String, book index provided? - ocn = nil #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - indent = nil #Integer, indent level - hang = nil #Integer, indent level - bullet_ = false #Bool, bulleted? - note_ = false #Bool, endnotes/footnotes? (processing optimization) - image_ = h[:image_] || ((defined? o.image_) ? o.image_ : false) #Bool, images? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@name,@tags,@obj,@indent,@hang,@bullet_,@idx,@ocn,@odv,@osp,@parent,@image_,@note_,@ocn_,@digest,@tmp= - of, is, name, tags, obj, indent, hang, bullet_, idx, ocn, odv, osp, parent, image_, note_, ocn_, digest, tmp - self - end - end - class ObjectBlockTxt - attr_accessor :obj,:is,:of,:tags,:lngsyn,:idx,:ocn,:odv,:osp,:parent,:note_,:number_,:ocn_,:digest,:tmp - def initialize - @of=:block - @is=@obj=@lngsyn=@idx=@ocn=@odv=@osp=@parent=@note_=@number_=@ocn_=@digest=@tmp=nil - @tags=[] - end - def code(h,o=nil) - of = @of #Symbol, classification - group #alt 'code' - is = :code #Symbol, classification - specific type - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - lngsyn = h[:lngsyn] || ((defined? o.lngsyn) ? o.lngsyn : :txt) #symbol, code lngsyn - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - number_ = h[:number_] || ((defined? o.number_) ? o.number_ : false) #Bool, numbered or not? - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - num = h[:num] || ((defined? o.num) ? o.num : nil) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@obj,@lngsyn,@idx,@ocn,@odv,@osp,@parent,@number_,@note_,@ocn_,@num,@digest,@tmp= - of, is, tags, obj, lngsyn, idx, ocn, odv, osp, parent, number_, note_, ocn_, num, digest, tmp - self - end - def box(h,o=nil) - of = @of #Symbol, classification - group - is = :box #Symbol, classification - specific type - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - num = h[:num] || ((defined? o.num) ? o.num : nil) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@obj,@idx,@ocn,@odv,@osp,@parent,@note_,@ocn_,@num,@digest,@tmp= - of, is, tags, obj, idx, ocn, odv, osp, parent, note_, ocn_, num, digest, tmp - self - end - def block(h,o=nil) - of = @of #Symbol, classification - group - is = :block #Symbol, classification - specific type - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - num = h[:num] || ((defined? o.num) ? o.num : nil) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@obj,@idx,@ocn,@odv,@osp,@parent,@note_,@ocn_,@num,@digest,@tmp= - of, is, tags, obj, idx, ocn, odv, osp, parent, note_, ocn_, num, digest, tmp - self - end - def group(h,o=nil) - of = @of #Symbol, classification - group - is = :group #Symbol, classification - specific type - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - num = h[:num] || ((defined? o.num) ? o.num : nil) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@obj,@idx,@ocn,@odv,@osp,@parent,@note_,@ocn_,@num,@digest,@tmp= - of, is, tags, obj, idx, ocn, odv, osp, parent, note_, ocn_, num, digest, tmp - self - end - def alt(h,o=nil) #see block - of = @of #Symbol, classification - group - is = :alt #Symbol, classification - specific type - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - num = h[:num] || ((defined? o.num) ? o.num : nil) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@obj,@idx,@ocn,@odv,@osp,@parent,@note_,@ocn_,@num,@digest,@tmp= - of, is, tags, obj, idx, ocn, odv, osp, parent, note_, ocn_, num, digest, tmp - self - end - def verse(h,o=nil) #part of poem decide how you deal with this - of = @of #Symbol, classification - group - is = :verse #Symbol, classification - specific type - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - num = h[:num] || ((defined? o.num) ? o.num : nil) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@obj,@idx,@ocn,@odv,@osp,@parent,@note_,@ocn_,@num,@digest,@tmp= - of, is, tags, obj, idx, ocn, odv, osp, parent, note_, ocn_, num, digest, tmp - @h=nil - self - end - end - class ObjectTable - attr_accessor :obj,:is,:of,:lv,:tags,:name,:idx,:indent,:hang,:size,:ocn,:num,:head_,:cols,:widths,:odv,:osp,:parent,:note_,:ocn_,:digest,:tmp - def initialize - @of=:block - @is=@obj=@lv=@name=@idx=@indent=@hang=@size=@ocn,@num,@head_,@cols,@widths=@odv=@osp=@parent=@note_=@ocn_=@num=@digest=@tmp=nil - @tags=[] - end - def table(h,o=nil) - of = @of #Symbol, classification - group - is = :table #Symbol, classification - specific type - tags = h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - cols = h[:cols] || ((defined? o.cols) ? o.cols : nil) - widths = h[:widths] || ((defined? o.widths) ? o.widths : nil) - obj = h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - idx = h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn = h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv = h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp = h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent = h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - head_ = h[:head_] || ((defined? o.head_) ? o.head_ : false) - note_ = h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - ocn_ = if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - num = h[:num] || ((defined? o.num) ? o.num : nil) - digest = h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp = h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@cols,@widths,@obj,@idx,@ocn,@odv,@osp,@parent,@head_,@note_,@ocn_,@num,@digest,@tmp= - of, is, tags, cols, widths, obj, idx, ocn, odv, osp, parent, head_, note_, ocn_, num, digest, tmp - self - end - end - class ObjectImage - attr_accessor :obj,:is,:of,:lv,:idx,:size,:ocn,:parent,:note_,:ocn_,:digest,:tmp - def initialize - @of=:image - @is=@obj=@lv=@idx=@size=@ocn=@parent=@note_=@ocn_=@tmp=@digest=nil - @tags=[] - end - def image(h,o=nil) #not yet used, and what of a paragraph containing several images, consider - of= @of #Symbol, classification - group - is= :image #Symbol, classification - specific type - tags= h[:tags] || ((defined? o.tags) ? o.tags : []) #Array, associated object tags, names if any - obj= h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - size= h[:size] || ((defined? o.size) ? o.size : nil) - idx= h[:idx] || ((defined? o.idx) ? o.idx : nil) #String, book index provided? - ocn= h[:ocn] || ((defined? o.ocn) ? o.ocn : nil) #Integer, sequential on substantive-content objects - odv= h[:odv] || ((defined? o.odv) ? o.odv : nil) - osp= h[:osp] || ((defined? o.osp) ? o.osp : nil) - parent= h[:parent] || ((defined? o.parent) ? o.parent : nil) #[Node parent] - note_= h[:note_] || ((defined? o.note_) ? o.note_ : false) #Bool, endnotes/footnotes? (processing optimization) - ocn_=if h[:ocn_].nil? - ((defined? o.ocn_) ? o.ocn_ : true) #Bool? no ocn, non-substantive content, do not include in toc #consider - else h[:ocn_] - end - digest= h[:digest] || ((defined? o.digest) ? o.digest : nil) #hash digests, sha512, sha256 or md5 - tmp= h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@tags,@obj,@size,@idx,@ocn,@odv,@osp,@parent,@note_,@ocn_,@digest,@tmp=of,is,tags,obj,size,idx,ocn,odv,osp,parent,note_,ocn_,digest,tmp - self - end - end - class ObjectStructure - attr_accessor :obj,:tag,:node,:lv,:ln,:lc,:status,:is,:of,:tmp - def initialize - @of=:structure - @is=@obj=@node=@lv=@ln=@lc=@status=@tmp=nil - end - def xml_dom(h,o=nil) - of= @of #Symbol, classification - group - is= :xml_dom #Symbol, classification - specific type - obj= h[:obj] || ((defined? o.obj) ? o.obj : '') #String, text content - lv= h[:lv] || ((defined? o.lv) ? o.lv : nil) #Alpha-numeric, document structure as used in markup, A-D then 1-6 - ln= h[:ln] || ((defined? o.ln) ? o.ln : nil) #Integer, document structure level, for convenience in processing 1-9 - lc= h[:lc] || ((defined? o.lc) ? o.lc : nil) #Integer, document structure collapsed level, convenience (collapse sisu's dual level document structure for markup with simple linear structure) - node= h[:node] || ((defined? o.node) ? o.node : nil) #[Node relationship doc structure info] - status= h[:status] || ((defined? o.status) ? o.status : nil) #tag status Symbol :open or :close - tmp= h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@obj,@status,@node,@lv,@ln,@lc,@tmp=of,is,obj,status,node,lv,ln,lc,tmp - self - end - end - class ObjectFlag - attr_accessor :obj,:is,:of,:flag,:act,:selections,:tmp - def initialize - @of=:flag - @is=@obj=@flag=@act=@selections=@tmp=nil - end - def flag(h,o=nil) - of= @of #Symbol, classification - group - is= :flag #Symbol, classification - specific type - obj= nil #String, text content - flag= h[:flag] || ((defined? o.flag) ? o.flag : nil) #String, text content - act= h[:act] || ((defined? o.act) ? o.act : nil) #String, text content - selections= h[:selections] || ((defined? o.selections) ? o.selections : nil) #String, text content - tmp= h[:flag] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of, @is,@obj,@flag,@act,@selections,@tmp= - of,is, obj, flag, act, selections, tmp - self - end - def flag_ocn(h,o=nil) - of= @of #Symbol, classification - group - is= :flag_ocn #Symbol, classification - specific type - obj= nil #String, text content - flag= h[:flag] || ((defined? o.flag) ? o.flag : nil) #String, text content - act= h[:act] || ((defined? o.act) ? o.act : nil) #String, text content - selections= h[:selections] || ((defined? o.selections) ? o.selections : nil) #String, text content - tmp= h[:flag] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of, @is,@obj,@flag,@act,@selections,@tmp= - of,is, obj, flag, act, selections,tmp - self - end - def flag_lng(h,o=nil) - of= @of #Symbol, classification - group - is= :flag_lng - obj= nil #String, text content - flag= h[:flag] || ((defined? o.flag) ? o.flag : nil) #Symbol, :lng_on or :lng_off - act= h[:act] || ((defined? o.act) ? o.act : nil) #Symbol, language set to :en etc. - selections= h[:selections] || ((defined? o.selections) ? o.selections : nil) #String, text content - tmp= h[:act] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of, @is,@obj,@flag,@act,@selections,@tmp= - of,is, obj, flag, act, selections,tmp - self - end - end - class ObjectLayout - attr_accessor :obj,:sym,:attr,:is,:is_for,:of,:from,:tmp,:num - def initialize - @of=:layout - @is=@is_for=@obj=@from=@tmp=@num=nil - end - def break(h,f=nil) #decide how to deal with - of= @of #Symbol, classification - group - is= :break #Symbol, classification - specific type - obj= h[:obj] #String, text content - from= f - tmp= h[:tmp] #available for processing, empty after use - @of,@is,@obj,@from,@tmp=of,is,obj,from,tmp - self - end - def insert(h,o=nil) #decide how to deal with, could mimic paragraph? - of= @of #Symbol, classification - group - is= :insert #Symbol, classification - specific type - obj= h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - tmp= h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@obj,@tmp=of,is,obj,tmp - self - end - def open_close(h,o=nil) #useful for poem & quote - of= @of #Symbol, classification - group - is= :open_close_tags #Symbol, classification - specific type - is_for= h[:is_for] || ((defined? o.is_for) ? o.is_for : nil) #String, text content - obj= h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - sym= h[:sym] || ((defined? o.sym) ? o.sym : nil) #Symbol tag_open, tag_close - attr= h[:attr] || ((defined? o.attr) ? o.attr : nil) #String, text content - tmp= h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - num= h[:num] || ((defined? o.num) ? o.num : nil) - @of,@is,@is_for,@obj,@sym,@attr,@tmp,@num= - of, is, is_for, obj, sym, attr, tmp, num - self - end - end - class ObjectComment - attr_accessor :obj,:is,:of,:tmp - def initialize - @of=:comment - @is=@obj=@tmp=nil - end - def comment(h,o=nil) - of= @of #Symbol, classification - group - is= :comment #Symbol, classification - specific type - obj= h[:obj] || ((defined? o.obj) ? o.obj : nil) #String, text content - tmp= h[:tmp] || ((defined? o.tmp) ? o.tmp : nil) #available for processing, empty after use - @of,@is,@obj,@tmp=of,is,obj,tmp - self - end - end -end -__END__ -# ~# |-# no paragraph number # -# not included in toc |