Module: Kwartz::ElementExpander
Overview
(abstract) expand ExpandStatement and ElementInfo
Handler class includes this module.
Instance Method Summary collapse
-
#expand_element_info(elem_info, stmt_list, content_only = false) ⇒ Object
expand ElementInfo.
-
#expand_statement(stmt, stmt_list, elem_info) ⇒ Object
expand ExpandStatement.
-
#get_element_info(name) ⇒ Object
(abstract) get ElementInfo.
-
#get_element_ruleset(name) ⇒ Object
(abstract) get ElementRuleset.
Methods included from Assertion
Instance Method Details
#expand_element_info(elem_info, stmt_list, content_only = false) ⇒ Object
expand ElementInfo
446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 |
# File 'lib/kwartz/converter.rb', line 446 def (elem_info, stmt_list, content_only=false) #elem_ruleset = @ruleset_table[elem_info.name] elem_ruleset = get_element_ruleset(elem_info.name) if elem_ruleset && !elem_info.merged? elem_info.merge(elem_ruleset) end logic = content_only ? [ ExpandStatement.new(:cont, elem_info.name) ] : elem_info.logic logic.each do |stmt| (stmt, stmt_list, elem_info) end #if content_only # stmt = ExpandStatement.new(:cont, elem_info.name) # expand_statement(stmt, stmt_list, elem_info) #else # element.logic.each do |stmt| # expand_statement(stmt, stmt_list, elem_info) # end #end end |
#expand_statement(stmt, stmt_list, elem_info) ⇒ Object
expand ExpandStatement
468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 |
# File 'lib/kwartz/converter.rb', line 468 def (stmt, stmt_list, elem_info) if stmt.is_a?(ExpandStatement) e = elem_info ## delete dummy '<span>' tag if @delspan && e.stag_info.tagname == 'span' && e.attr_info.empty? && e.append_exprs.nil? e.stag_info.tagname = e.etag_info.tagname = nil end case stmt.kind when :stag assert unless elem_info if e.stag_expr assert unless e.stag_expr.is_a?(NativeExpression) stmt_list << build_print_expr_stmt(e.stag_expr, e.stag_info, nil) else stmt_list << build_print_stmt(e.stag_info, e.attr_info, e.append_exprs) end when :etag assert unless elem_info if e.etag_expr assert unless e.etag_expr.is_a?(NativeExpression) stmt_list << build_print_expr_stmt(e.etag_expr, nil, e.etag_info) elsif e.etag_info # e.etag_info is nil when <br>, <input>, <hr>, <img>, <meta> stmt_list << build_print_stmt(e.etag_info, nil, nil) end when :cont if e.cont_expr assert unless e.cont_expr.is_a?(NativeExpression) stmt_list << PrintStatement.new([e.cont_expr]) else elem_info.cont_stmts.each do |cont_stmt| (cont_stmt, stmt_list, nil) end end when :elem assert unless elem_info if e.elem_expr assert unless e.elem_expr.is_a?(NativeExpression) stmt_list << build_print_expr_stmt(e.elem_expr, e.stag_info, e.etag_info) else stmt.kind = :stag (stmt, stmt_list, elem_info) stmt.kind = :cont (stmt, stmt_list, elem_info) stmt.kind = :etag (stmt, stmt_list, elem_info) stmt.kind = :elem end when :element, :content content_only = stmt.kind == :content #elem_info = @elements[stmt.name] elem_info = get_element_info(stmt.name) unless elem_info raise convert_error("element '#{stmt.name}' is not found.", nil) end (elem_info, stmt_list, content_only) else assert end #case else stmt_list << stmt end #if end |
#get_element_info(name) ⇒ Object
(abstract) get ElementInfo
440 441 442 |
# File 'lib/kwartz/converter.rb', line 440 def get_element_info(name) not_implemented end |
#get_element_ruleset(name) ⇒ Object
(abstract) get ElementRuleset
434 435 436 |
# File 'lib/kwartz/converter.rb', line 434 def get_element_ruleset(name) not_implemented end |