さらに修正

前回の記事に書いたMyApp::YAML::Loaderクラスがなんだか、カプセル化ができていなかったのでさらに修正しました。

package MyApp::YAML::Loader;

use strict;
use warnings;

use YAML;

sub new {
    my $class = shift;
    $class = ref($class) || $class;

    my $file = shift;
    my $yaml = YAML::LoadFile($file);

    my $self = bless {yaml => $yaml}, $class;
    return $self;
}

sub get_all {
    my $self = shift;

    return $self->{yaml};
}

1;

コンストラクタはあったけど、メソッドがなくオブジェクトの中身を直接いじる感じだったので、get_allというメソッドを追加。

名前のごとくYAMLファイルの中身を全部取得するメソッドです。


今回自分の場合は、YAMLファイルの形は変わることがないので、そのYAMLファイル用のメソッドをいくつか作って、Catalystの中で簡単に取得したい値のみを呼び出せるようにしようと思っています。