dear TT, you are a pain in the buttocks
Matt S Trout [Sat, 14 Sep 2013 17:55:13 +0000 (17:55 +0000)]
Changes
lib/HTML/String/TT.pm
lib/HTML/String/Value.pm

diff --git a/Changes b/Changes
index cf3f6cd..a99a289 100644 (file)
--- a/Changes
+++ b/Changes
@@ -1,3 +1,5 @@
+  - Ensure TT doesn't try and call methods instead of VMethods
+
 1.000004 - 2013-09-12
   - Fix concatenating undef to HTML::String values.
 
index 9a6d1dd..0244de8 100644 (file)
@@ -18,6 +18,16 @@ use Template;
 use Template::Parser;
 use Template::Stash;
 
+BEGIN {
+  my $orig_blessed = Template::Stash->can('blessed');
+  no warnings 'redefine';
+  *Template::Stash::blessed = sub ($) {
+    my $val = $orig_blessed->($_[0]);
+    return undef if defined($val) and $val eq 'HTML::String::Value';
+    return $val;
+  };
+}
+
 sub new {
     shift;
     Template->new(
index e1f6c95..d6bac14 100644 (file)
@@ -119,7 +119,7 @@ sub can {
     return (
         do {
             local $@;
-            eval { blessed($self) and $self->_hsv_unescaped_string->isa(@_) }
+            eval { blessed($self) and $self->_hsv_unescaped_string->can(@_) }
         }
         or $self->SUPER::can(@_)
     );