Added new tests, fixed a bug, and cleaned up more code: Intermediate check-in
[p5sagit/Excel-Template.git] / lib / Excel / Template / Base.pm
index fe76002..32e7236 100644 (file)
@@ -2,30 +2,27 @@ package Excel::Template::Base;
 
 use strict;
 
-BEGIN {
-}
-
 use Excel::Template::Factory;
 
 sub new
 {
     my $class = shift;
-                                                                                
-    push @_, %{shift @_} while defined $_[0] && UNIVERSAL::isa($_[0], 'HASH');
-    (@_ % 2) 
+
+    push @_, %{shift @_} while ref $_[0] eq 'HASH';
+    (@_ % 2)
         and die "$class->new() called with odd number of option parameters\n";
-                                                                                
+
     my %x = @_;
-                                                                                
+
     # Do not use a hashref-slice here because of the uppercase'ing
     my $self = {};
     $self->{uc $_} = $x{$_} for keys %x;
-                                                                                
+
     bless $self, $class;
 }
-                                                                                
-sub isa { Excel::Template::Factory::isa(@_) }
-sub is_embedded { Excel::Template::Factory::is_embedded(@_) }
+
+*isa = *isa = \&Excel::Template::Factory::isa;
+*is_embedded = *is_embedded = \&Excel::Template::Factory::is_embedded;
 
 #sub calculate { ($_[1])->get(@_[0,2]) }
 #{
@@ -34,7 +31,7 @@ sub is_embedded { Excel::Template::Factory::is_embedded(@_) }
 #
 #    return $context->get($self, $attr);
 #}
-                                                                                
+
 sub enter_scope { ($_[1])->enter_scope($_[0]) }
 #{
 #    my $self = shift;
@@ -42,38 +39,41 @@ sub enter_scope { ($_[1])->enter_scope($_[0]) }
 #
 #    return $context->enter_scope($self);
 #}
-                                                                                
-sub exit_scope { ($_[1])->exit_scope(@_[0, 2]) }
+
+sub exit_scope { ($_[1])->exit_scope($_[0], $_[2]) }
 #{
 #    my $self = shift;
 #    my ($context, $no_delta) = @_;
 #
 #    return $context->exit_scope($self, $no_delta);
 #}
-                                                                                
+
 sub deltas
 {
 #    my $self = shift;
 #    my ($context) = @_;
-                                                                                
+
     return {};
 }
-                                                                                
-sub resolve
-{
+
+# Everyone seems to have their own versions.
+# Maybe, it's part of the API to require that you have the right one of these
+# defined?
+#sub resolve
+#{
 #    my $self = shift;
 #    my ($context) = @_;
-                                                                                
-    '';
-}
-
-sub render
-{
+#
+#    '';
+#}
+#
+#sub render
+#{
 #    my $self = shift;
 #    my ($context) = @_;
-
-    1;
-}
+#
+#    1;
+#}
 
 1;
 __END__