さまりー

画像アップロード可能な0chの改造版img0ch、PHPで書かれたphp0ch、
C言語で書かれたApacheモジュールのmod_0chを配布しています。
[DOWNLOAD][BBS][README][WIKI]

March 23, 2006

created Tie::YAMLSyck but...

404 Blog Not Foundの中のTie::SaveLaterの記事
Tie::YAMLSyckというものを作ってみた。
しかしmake testに通らず、結局あきらめることに。
YAML YAML::Syckという関係だろうか?
[追記]
答えが出た
perl - Tie::YAML::Syck works - w/ black magic

[ソースコード]
Tie::YAMLSyckはTie::YAMLとしても利用できる。

package Tie::YAMLSyck;

use strict;
use warnings;
use base 'Tie::SaveLater';
use YAML::Syck;

our $VERSION = '0.1';
__PACKAGE__->make_subclasses;

sub load {
my ($class, $path) = @_;
LoadFile($path)
}

sub save {
my ($class) = @_;
my $path = $class->filename;
DumpFile($path, $class);
}

package Tie::YAML;

use strict;
use base qw(Tie::YAMLSyck);

__PACKAGE__->make_subclasses;

1;
__END__

[テストの結果]
スカラーに値が入っていない様子。
テストファイルに03-yaml.tを
少し変えて利用。
ok 1 - require Tie::YAMLSyck;
not ok 2 - Tie::YAML - hash
# Failed test 'Tie::YAML - hash'
# in 04-yamlsyck.t at line 28.
# Structures begin differing at:
# $got->{scalar} = undef
# $expected->{scalar} = '7'
not ok 3 - Tie::YAML - array
# Failed test 'Tie::YAML - array'
# in 04-yamlsyck.t at line 37.
# Structures begin differing at:
# $got->[0] = undef
# $expected->[0] = '7'
ok 4 - Tie::YAML - scalar
ok 5 - Tie::YAML - object
1..5
# Looks like you failed 2 tests of 5.

ちなみにFreezeThawもやってみたけれど
saveメソッドにおいてファイル名が取り出せず
これも諦めてしまいました。

YAML::SyckのpodのSYNOPSYSにある
DumpFileの引数が違うようですがどう
報告すればよいやら。