Class | Kwartz::ElementInfo |
In: |
kwartz/converter.rb
|
Parent: | Object |
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] |
# 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
# 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
# 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