class Dyndoc::Ruby::BlckMngr

this is an attempt to offer an interface for running on a block tree. usefull for user adding dtag.

Attributes

blck[R]
children[R]
filter[R]
tmplMngr[R]

Public Class Methods

new(tmplMngr,blck,tex,filter) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 13
def initialize(tmplMngr,blck,tex,filter)
  @tmplMngr,@blck,@pos=tmplMngr,blck,0
  @tex,@filter=tex,filter
  @children=[] #the blocks
end

Public Instance Methods

<<(content) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 34
def <<(content)
  @tex << content
  return self
end
[](i) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 59
def [](i)
  @blck[i]
end
at_end?() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 51
def at_end?
  @pos == @blck.length-1
end
child(i=-1) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 75
def child(i=-1)
  @children[i]
end
child_as_var() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 140
def child_as_var
  b=@tmplMngr.make_var_block(child.unshift(:var),@filter)
  @tmplMngr.eval_VARS(b,@filter)
end
goto_next_child!() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 94
def goto_next_child!
  unless @gone
    @pos+=@children[-1].length
    @gone=true #only once!
  end
end
length() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 47
def length
  @blck.length
end
next_at_end?() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 55
def next_at_end?
  @pos == @blck.length-2
end
next_child() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 88
def next_child
  b=next_child_at(@pos)
  @gone=nil
  return b
end
next_child!() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 101
def next_child!
  @children << next_child
  goto_next_child!
  return child
end
next_child_at(pos) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 79
def next_child_at(pos)
  b,i=[],pos
  while (i+1<@blck.length and @blck[i+1].is_a? Array)
    i+=1
    b << @blck[i]
  end
  return b
end
next_child_until(tagset) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 107
def next_child_until(tagset)
  b,i=[],@pos
  #p @blck
  while (i+1<@blck.length and !(tagset.include? @blck[i+1]))
   i += 1
   b << @blck[i]
  end
  @gone=nil
  return b
end
next_child_until!(tagset) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 118
def next_child_until!(tagset)
  @children << next_child_until(tagset)
  goto_next_child!
  return child
end
next_child_while(tagset) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 124
def next_child_while(tagset)
  b,i=[],@pos
  while (i+1<@blck.length and (tagset.include? @blck[i+1]))
   i+=1
   b << @blck[i]
  end
  @gone=nil
  return b
end
next_child_while!(tagset) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 134
def next_child_while!(tagset)
  @children << next_child_while(tagset)
  goto_next_child!
  return child
end
next_tag() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 67
def next_tag
  @blck[@pos+1]
end
next_tag!() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 71
def next_tag!
  @blck[@pos+=1]
end
parse(blck=@blck,filter=@filter) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 23
def parse(blck=@blck,filter=@filter)
  ##Dyndoc.warn "parse!!!",blck
  res=@tmplMngr.parse(blck,filter)
  ##Dyndoc.warn "result parse",res
  res
end
parse!(blck=@blck,filter=@filter) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 30
def parse!(blck=@blck,filter=@filter)
  self << parse(blck,filter)
end
parse_child(filter=@filter) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 19
def parse_child(filter=@filter)
  @tmplMngr.parse(child,filter)
end
pos() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 43
def pos
  @pos
end
pos=(i) click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 39
def pos=(i)
  @pos=i
end
tag() click to toggle source
# File lib/dyndoc/base/tmpl/extension.rb, line 63
def tag
  @blck[@pos]
end