class SiSU_Wikispeak::Source::SplitTextObject

Attributes

format[R]
lev[R]
lev_para_ocn[R]
ocn[R]
text[R]

Public Class Methods

new(para) click to toggle source
# File lib/sisu/wikispeak.rb, line 111
def initialize(para)
  @para=para
  @format,@ocn='ordinary','ordinary'
  @dp=@@dp ||=SiSU_Env::InfoEnv.new.digest.pattern
end

Public Instance Methods

lev_segname_para_ocn() click to toggle source
# File lib/sisu/wikispeak.rb, line 116
def lev_segname_para_ocn
  @text=nil
  if @para =~/^(\d~|<:.+?>).+?#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/
    if /^(([1-6])~(\S+))\s+(\S.+?)#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/m.match(@para)
      @format,@lev,segname,@text,@ocn=$1,$2,$3,$4,$5
    elsif  /^(([1-6])~)\s+(\S.+?)#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/m.match(@para)
      @format,@lev,@text,@ocn=$1,$2,$3,$4
    elsif /<:(.+?)>\s*(\S.+?)#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/m.match(@para)
      @format,@text,@ocn=$1,$2,$3
    elsif /^(([1-6])~(\S+))\s+(\S.+?)#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;[um]\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/m.match(@para)
      @@alt_id_count+=1
      @format,@lev,segname,@text,@ocn=$1,$2,$3,$4,"x#{@@alt_id_count}"
    elsif  /^(([1-6])~)\s+(\S.+?)#{Mx[:id_o]}~(\d+);[um]\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/m.match(@para)
      @@alt_id_count+=1
      @format,@lev,@text,@ocn=$1,$2,$3,"x#{@@alt_id_count}"
    end
  else
    if /(.+?)#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/m.match(@para)
      @text,@ocn=$1,$2
    end
    if @para !~/#{Mx[:id_o]}~(\d+);(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$|^$/ #added 2002w06
      @text=/(.+?)/m.match(@para)[1]
    end
    if /^((\d)~(?:~\S+)?)\s+(.+)/m.match(@para)
      @format,@lev,@text=$1,$2,$3
    end
  end
  format=@format.dup
  @lev_para_ocn=if @para =~/.+#{Mx[:id_o]}~\d+;(?:\w|[0-6]:)\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}$/
    Format::FormatTextObject.new(format,@text,@ocn)
  else
    Format::FormatTextObject.new(format,@text,"#{Mx[:id_o]}~(\d+);[um]\d+;\w\d+#{Mx[:id_c]}#{Mx[:id_o]}#{@dp}:#{@dp}#{Mx[:id_c]}")
  end
  self
end