class SiSU_DigestView::Source::Scroll

Public Class Methods

new(particulars) click to toggle source
# File lib/sisu/digests.rb, line 122
def initialize(particulars)
  @particulars=particulars
  @data,@env,@md=@particulars.ao_array,@particulars.env,@particulars.md
  SiSU_Env::FileOp.new(@md).mkdir
  @@dg ||=@env.digest(@md.opt).type
  @@dl ||=@env.digest(@md.opt).length
  @dg,@dl=@@dg,@@dl
  l=SiSU_Env::StandardiseLanguage.new(@md.opt.lng).language
  @language=l[:n]
  @tr=SiSU_Translate::Source.new(@md,@language)
  @sp=' '
end

Public Instance Methods

ao_structure() click to toggle source
# File lib/sisu/digests.rb, line 194
def ao_structure
  a=%{\nocn     digests (#{@dg}) clean text (stripped markup)}
  digests_clean(a)
  data=@data
  endnotes=nil
  data.each do |t_o|
    dgst=SiSU_TextRepresentation::ModifiedTextPlusHashDigest.new(@md,t_o).composite.dgst
    if dgst
      if t_o.is==:heading
        digests_clean("#{@sp*0}#{dgst[:ocn]}#{@sp*(8-dgst[:ocn].to_s.length)}#{dgst[:dgst_stripped_txt]} #{dgst[:is]} #{t_o.lv}")
      elsif t_o.is==:heading_insert
        digests_clean("#{@sp*0}[#{dgst[:ocn]}]#{@sp*(6-dgst[:ocn].to_s.length)}#{dgst[:dgst_stripped_txt]} #{dgst[:is]} #{t_o.lv}")
      else
        digests_clean("#{@sp*0}#{dgst[:ocn]}#{@sp*(8-dgst[:ocn].to_s.length)}#{dgst[:dgst_stripped_txt]} #{dgst[:is]}")
        if dgst[:images]
          dgst[:images].each do |img|
            digests_clean("#{@sp*8}#{img[:img_dgst]}#{@sp*66}#{img[:img_type]} #{img[:img_name]}")
          end
        end
      end
      if dgst[:endnotes]
        dgst[:endnotes].each do |en|
          digests_clean("#{@sp*8}#{en[:note_dgst]} note [#{en[:note_number]}]")
          endnotes=en[:note_number]
        end
      end
    end
  end
  b=%{\nocn     object (#{@dg}) digests (object includes its markup & endnotes (if any))}
  digests_with_markup(b)
  data.each do |t_o|
    dgst=SiSU_TextRepresentation::ModifiedTextPlusHashDigest.new(@md,t_o).composite.dgst
    if dgst
      if t_o.is==:heading
        digests_with_markup("#{@sp*0}#{dgst[:ocn]}#{@sp*(8-dgst[:ocn].to_s.length)}#{dgst[:dgst_markedup_txt]} #{dgst[:is]} #{t_o.lv}")
      elsif t_o.is==:heading_insert
        digests_with_markup("#{@sp*0}[#{dgst[:ocn]}]#{@sp*(6-dgst[:ocn].to_s.length)}#{dgst[:dgst_markedup_txt]} #{dgst[:is]} #{t_o.lv}")
      else
        digests_with_markup("#{@sp*0}#{dgst[:ocn]}#{@sp*(8-dgst[:ocn].to_s.length)}#{dgst[:dgst_markedup_txt]} #{dgst[:is]}")
      end
    end
  end
  l=Hash.new(0)
  ocn=nil
  ao_structure_tree("------------\n")
  ao_structure_tree("document structure[*]\n")
  data.each do |t_o|
    if t_o.is==:heading
      x=case t_o.ln
      when 0 then l[0] +=1
        spaces*0 << ':A'
      when 1 then l[1] +=1
        spaces*1 << ':B'
      when 2 then l[2] +=1
        spaces*2 << ':C'
      when 3 then l[3] +=1
        spaces*3 << ':D'
      when 4 then l[4] +=1
        spaces*4 << '1'
      when 5 then l[5] +=1
        spaces*5 << '2'
      when 6 then l[6] +=1
        spaces*6 << '3'
      else nil
      end
    end
    ocn=t_o.ocn if defined? t_o.ocn and t_o.is !=:heading_insert
    ao_structure_tree("#{x}\n") if x and not x.empty?
  end
  ao_structure_tree("  [*] heading levels\n")
  ao_structure_summary("------------\n")
  ao_structure_summary("document structure[*]\n")
  [0,1,2,3,4,5,6].each do |y|
    v=case y
    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 '
    end
    ao_structure_summary("#{v}            = #{l[y]}\n") if l[y] > 0
  end
  ao_structure_summary("objects (ocn) = #{ocn}\n")
  ao_structure_summary("endnotes      = #{endnotes}\n")
  ao_structure_summary("  [*] number of headers (@) and of each heading level (:A to :D and 1 to 3)\n")
end
ao_structure_summary(f,e='') click to toggle source
# File lib/sisu/digests.rb, line 160
def ao_structure_summary(f,e='')
  puts f + e.to_s if @md.opt.act[:verbose_plus][:set]==:on
  @@ds[:summary] << f << e
end
ao_structure_tree(f,e='') click to toggle source
# File lib/sisu/digests.rb, line 156
def ao_structure_tree(f,e='')
  puts f + e.to_s if @md.opt.act[:verbose_plus][:set]==:on
  @@ds[:tree] << f << e
end
description(f,e='') click to toggle source
# File lib/sisu/digests.rb, line 144
def description(f,e='')
  puts f + e.to_s if @md.opt.act[:verbose_plus][:set]==:on
  @@description << f << e
end
digests_clean(f,e='') click to toggle source
# File lib/sisu/digests.rb, line 148
def digests_clean(f,e='')
  puts f if @md.opt.act[:verbose_plus][:set]==:on
  @@ds[:digests_clean] << f + "\n"
end
digests_with_markup(f) click to toggle source
# File lib/sisu/digests.rb, line 152
def digests_with_markup(f)
  puts f if @md.opt.act[:verbose_plus][:set]==:on
  @@ds[:digests_with_markup] << f + "\n"
end
message_digest() click to toggle source
# File lib/sisu/digests.rb, line 176
def message_digest
  @p=[]
  @g,@v,@r='','',''
  manifest="#{@env.url.root}/#{@md.fnb}/sisu_manifest.html"
  description("#{@md.title.full}\n")
  description("#{@md.author}\n")
  description("#{@md.fns}\n")
  description("----------------------------------------------\n")
  description("SiSU Document Content Certificate (Digest/DCC)\n")
  description("----------------------------------------------\n")
  description("                               #{@dg} digests\n")
  description("------------\n")
  description("Sourcefile digest:             #{@md.dgst[1]}\n")
  description("  source filename:             #{@md.fns}\n")
  description("available outputs:             #{manifest}\n")
  description("------------\n")
  description("Document Digests\n")
end
output() click to toggle source
# File lib/sisu/digests.rb, line 168
def output
  file=SiSU_Env::FileOp.new(@md)
  filename_digest=file.write_file.hash_digest
  filename_digest << @@description.join << @@ds[:digests_clean].join << @@ds[:digests_with_markup].join << @@ds[:tree].join << @@ds[:summary].join << @@sc_info.join
end
rcinfo(f,e='') click to toggle source
# File lib/sisu/digests.rb, line 164
def rcinfo(f,e='')
  puts f + e.to_s if @md.opt.act[:verbose_plus][:set]==:on
  @@sc_info << f << e
end
rgx_txt(txt) click to toggle source
# File lib/sisu/digests.rb, line 173
def rgx_txt(txt)
  txt=txt.gsub(/([()])/,"\\\\\\1")
end
songsheet() click to toggle source
# File lib/sisu/digests.rb, line 134
def songsheet
  @@description,@@ds[:digests_clean],@@ds[:digests_with_markup],@@ds[:tree],@@ds[:summary],@@sc_info=[],[],[],[],[],[]
  message_digest
  ao_structure
  supplementary
  output
end
spaces() click to toggle source
# File lib/sisu/digests.rb, line 141
def spaces
  Ax[:spaces]
end
supplementary() click to toggle source
# File lib/sisu/digests.rb, line 282
def supplementary
  if defined? @md.sc_number \
  and @md.sc_number
    rcinfo("------------\n")
    rcinfo("source control information\n")
    rcinfo("  (the following information while not important for document content certification\n   may help the publisher in locating the version referred to)\n")
    rcinfo("  rcs version number:            #{@md.sc_number}\n")
    if defined? @md.sc_date \
    and @md.sc_date
      rcinfo("  rcs date:                      #{@md.sc_date}\n")
    end
    if defined? @md.sc_time \
    and @md.sc_time
      rcinfo("  rcs time:                      #{@md.sc_time}\n")
    end
  end
  rcinfo("------------\n")
  rcinfo("Note: the time generated related fields (text and digests) will vary between otherwise identical document outputs\n")
end