さまりー
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の引数が違うようですがどう
報告すればよいやら。
- by hkrn
- at 22:30