Cache::Swiftyにパッチ

というほどでもまったくないのですが、
現在のVersion0.02では
ScalarValueしかあつかえんでしたので。

↓間違ってます

[nekokak@kobayashi218]$ diff -u Swifty.pm.org Swifty.pm
--- Swifty.pm.org       2007-09-12 15:14:15.000000000 +0900
+++ Swifty.pm   2007-09-13 22:54:26.000000000 +0900
@@ -2,6 +2,7 @@

 use strict;
 use warnings;
+use Storable ();

 require Exporter;

@@ -35,7 +36,7 @@

 sub get {
     my ($self, $key) = @_;
-    swifty_get(
+    my $val = swifty_get(
         $self->{m},
         $self->{hasher}->($key, length $key),
         $key,
@@ -43,10 +44,12 @@
         time(),
         $self->{lifetime},
     );
+    Storable::thaw($val);
 }

 sub set {
     my ($self, $key, $value) = @_;
+    $value = Storable::nfreeze($value);
     swifty_set(
         $self->{m},
         $self->{hasher}->($key, length $key),

今日のIRCの流れは見てただけですが、色々勉強になります。

(追記)
パッチがあさっての方向にむいてるのを指摘してもらったのではりなおしました><
miyagawaさんありがとうございますー。

(さらに追記)
もっとあさっての方向にむかってた><
ScalarValueがあつかえなくなってたのでした

[nekokak@kobayashi218]$ diff -u Swifty.pm.org Swifty.pm
--- Swifty.pm.org       2007-09-12 15:14:15.000000000 +0900
+++ Swifty.pm   2007-09-14 10:56:56.000000000 +0900
@@ -2,6 +2,7 @@

 use strict;
 use warnings;
+use Storable ();

 require Exporter;

@@ -35,7 +36,7 @@

 sub get {
     my ($self, $key) = @_;
-    swifty_get(
+    my $val = swifty_get(
         $self->{m},
         $self->{hasher}->($key, length $key),
         $key,
@@ -43,10 +44,15 @@
         time(),
         $self->{lifetime},
     );
+    my $thawed_val;
+    eval { $thawed_val = Storable::thaw($val) } ? $thawed_val : $val;
 }

 sub set {
     my ($self, $key, $value) = @_;
+    if (ref $value) {
+        $value = Storable::nfreeze($value);
+    }
     swifty_set(
         $self->{m},
         $self->{hasher}->($key, length $key),

あうあう。