Class Kwartz::ElementInfo
In: kwartz/converter.rb
Parent: Object

Methods

create   merge   merged?   new  

Attributes

append_exprs  [RW] 
attr_info  [RW] 
cont_expr  [R] 
cont_stmts  [RW] 
elem_expr  [R] 
etag_expr  [R] 
etag_info  [RW] 
logic  [RW] 
name  [RW] 
stag_expr  [R] 
stag_info  [RW] 

Public Class methods

[Source]

# File kwartz/converter.rb, line 175
    def self.create(values={})
      self.new(values[:name], values[:stag], values[:etag], values[:cont], values[:attr], values[:append])
    end

[Source]

# File kwartz/converter.rb, line 155
    def initialize(name, stag_info, etag_info, cont_stmts, attr_info, append_exprs)
      @name         = name           # String
      @stag_info    = stag_info      # TagInfo
      @etag_info    = etag_info      # TagInfo
      @cont_stmts   = cont_stmts     # list of Statement
      @attr_info    = attr_info      # AttrInfo
      @append_exprs = append_exprs   # list of NativeExpression
      @logic = [ ExpandStatement.new(:elem, @name) ]
      @merged = nil
    end

Public Instance methods

[Source]

# File kwartz/converter.rb, line 180
    def merge(elem_ruleset)
      return unless elem_ruleset.name == @name
      @merged = elem_ruleset
      @stag_expr = _to_native_expr(elem_ruleset.stag)
      @cont_expr = _to_native_expr(elem_ruleset.cont || elem_ruleset.value)
      @etag_expr = _to_native_expr(elem_ruleset.etag)
      @elem_expr = _to_native_expr(elem_ruleset.elem)
      if @cont_expr
        @cont_stmts = [ PrintStatement.new([@cont_expr]) ]
        @stag_info.tail_space = ''
        @etag_info.head_space = ''
        @etag_info.rebuild_tag_text()
      end
      elem_ruleset.remove.each do |aname|
        @attr_info.delete(aname)
      end if elem_ruleset.remove
      elem_ruleset.attrs.each do |aname, avalue|
        @attr_info[aname] = _to_native_expr(avalue)
      end if elem_ruleset.attrs
      elem_ruleset.append.each do |expr|
        (@append_exprs ||= []) << _to_native_expr(expr)
      end if elem_ruleset.append
      @tagname = elem_ruleset.tagname
      @logic = elem_ruleset.logic if elem_ruleset.logic
    end

[Source]

# File kwartz/converter.rb, line 170
    def merged?
      @merged
    end

[Validate]