class PPZ::ParserContext
当前行,所处的上下文 比如 一级 section 下面的 ul 下的 第 n 个 ul
Public Class Methods
new(root)
click to toggle source
# File lib/doc/parser/context.rb, line 5 def initialize root @stack = [root] end
Public Instance Methods
append(target)
click to toggle source
# File lib/doc/parser/context.rb, line 9 def append target # ContainerClass: 容器类,如果上级不是,就造一个 if(PPZ::Func::class_has_const? target, :ContainerClass) and (head.class != target.class::ContainerClass) append target.class::ContainerClass.new end # UpperClass: 上级类,如果上级不是,就出栈 if(PPZ::Func::class_has_const? target, :UpperClass) and (head.class != target.class::UpperClass) pop_to target.class::UpperClass end head.append target # 加入 model @stack.push target if target.is_a? PPZ::AbstractWrapperModel # 加入 stack end
head()
click to toggle source
# File lib/doc/parser/context.rb, line 27 def head @stack[-1] end
pop()
click to toggle source
# File lib/doc/parser/context.rb, line 23 def pop @stack.pop end
root()
click to toggle source
# File lib/doc/parser/context.rb, line 31 def root @stack[0] end
Private Instance Methods
pop_to(klass)
click to toggle source
# File lib/doc/parser/context.rb, line 36 def pop_to klass loop do break if head.is_a? klass pop end end