SL::DB::Unit::base_factor: Verwendung von $::request->cache()
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 16 Jun 2014 12:24:32 +0000 (14:24 +0200)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Tue, 17 Jun 2014 15:57:57 +0000 (17:57 +0200)
SL/DB/Unit.pm

index b133d8f..e8d260c 100644 (file)
@@ -39,11 +39,13 @@ sub convertible_units {
 sub base_factor {
   my ($self) = @_;
 
-  if (!defined $self->{__base_factor}) {
-    $self->{__base_factor} = !$self->base_unit || !$self->factor || ($self->name eq $self->base_unit) ? 1 : $self->factor * $self->base->base_factor;
+  my $cache = $::request->cache('base_factor');
+
+  if (!defined $cache->{$self->id}) {
+    $cache->{$self->id} = !$self->base_unit || !$self->factor || ($self->name eq $self->base_unit) ? 1 : $self->factor * $self->base->base_factor;
   }
 
-  return $self->{__base_factor};
+  return $cache->{$self->id};
 }
 
 sub convert_to {