Tracの設定を読むモジュール
CatalystからArkに切り替えより引き続き。横道それすぎなじゃないかと思ってる。
Net::TracのPod及び、ソースを読む限り、あくまで現状がチケットの扱いがメインらしい。設定が読み込めないため、trac.dbとtrac.iniの中身をコピペするしかないんだけれど、変更のために逐一触れるのめんどくさい。
そこで書くことにした。
package Net::Trac::Config; use Any::Moose; use Carp; use DBI; has 'path' => ( is => 'rw', isa => 'Str', ); has 'config' => ( is => 'rw', isa => 'ArrayRef', ); sub read { my $self = shift; unless (defined $self->path) { croak "Need path to trac.db"; return; } if (substr($self->path, length($self->path) - 7, 7) ne 'trac.db') { croak "Need path to trac.db"; return; } unless ( -e $self->path ) { croak "trac.db not found"; return; } my $dbh = DBI->connect("dbi:SQLite:dbname=".$self->path, undef, undef, {}); $self->config( $dbh->selectcol_arrayref( "select name from enum where type='ticket_type'" ) ); return $self->config; } __PACKAGE__->meta->make_immutable; no Any::Moose; 1;
まだdbから一部しか読まないので、iniのほうとか色々書かないといけない。dbの更新も可能な気がするけど、はたして大丈夫なのかどうか。