]> iEval git - html-element-library.git/blobdiff - lib/HTML/Element/Library.pm
passover method tested
[html-element-library.git] / lib / HTML / Element / Library.pm
index 8f888b5c321384c8cc84a32c52563ff0e82602ce..08f6ee5cf0fa293fd3203880f37938e9cfbde61a 100644 (file)
@@ -24,7 +24,7 @@ our @EXPORT      = qw();
 
 
 
-our $VERSION = '3.51';
+our $VERSION = '3.53';
 
 
 # Preloaded methods go here.
@@ -36,6 +36,28 @@ sub HTML::Element::siblings {
   $p->content_list;
 }
 
+sub HTML::Element::passover {
+  my ($tree, $child_id) = @_;
+  
+  #warn "ARGS:   my ($tree, $child)";
+
+  my $exodus = $tree->look_down(id => $child_id);
+
+  my @s = HTML::Element::siblings($exodus);
+
+  for my $s (@s) {
+    next unless ref $s;
+    if ($s->attr('id') eq $child_id) {
+      ;
+    } else {
+      $s->delete;
+    }
+  }
+
+  return $exodus; # Goodbye Egypt! http://en.wikipedia.org/wiki/Passover
+
+}
+
 sub HTML::Element::sibdex {
 
   my $element = shift;
@@ -530,9 +552,9 @@ sub HTML::Element::table2 {
   #  ++$DEBUG if $table{debug} ;
 
   # Get the table element
-  warn 1;
+  #warn 1;
   $table->{table_node} = ref_or_ld( $tree, $p{table_ld} ) ;
-  warn 2;
+  #warn 2;
   $table->{table_node} or confess
     "table tag not found via " . Dumper($p{table_ld}) ;
 
@@ -571,12 +593,12 @@ sub HTML::Element::table2 {
        if defined $p{tr_proc};
 
     warn  "data row redux: " . Dumper $row if $p{debug};
-    warn 3.3;
+    #warn 3.3;
 
     $p{td_proc}->($new_tr_node, $row);
     push @table_rows, $new_tr_node;
 
-    warn 4.4;
+    #warn 4.4;
 
     redo;
   }
@@ -778,6 +800,14 @@ id C<under10> remains. For age less than 18, the node with id C<under18>
 remains.
 Otherwise our "else" condition fires and the child with id C<welcome> remains.
 
+=head3 $tree->passover($id_of_element)
+
+In some cases, you know exactly which element should survive. In this case,
+you can simply call C<passover> to remove it's siblings. For the HTML
+above, you could delete C<under10> and C<welcome> by simply calling:
+
+  $tree->passover('under18');
+
 =head3 $tree->highlander2($tree, $conditionals, @conditionals_args)
 
 Right around the same time that C<table2()> came into being, Seamstress
This page took 0.027294 seconds and 4 git commands to generate.