X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FPromulger%2FList.pm;h=9e0e9697e10d4ff0e3816de95cab37b931f55217;hb=243baf4d17a8918313b4555521216318e32c1e64;hp=5238e99957cb4dc036e4d408b0ca8fe94725ce31;hpb=e9b4d3bcc394d5680b0b26c67e4a7547e5a6bc1e;p=p5sagit%2FPromulger.git diff --git a/lib/Promulger/List.pm b/lib/Promulger/List.pm index 5238e99..9e0e969 100644 --- a/lib/Promulger/List.pm +++ b/lib/Promulger/List.pm @@ -1,40 +1,37 @@ package Promulger::List; -use Moose; -use MooseX::Storage; +use Moo; use autodie ':all'; use Carp; use Path::Class; use Fcntl ':flock'; use Tie::File; +use File::Slurp qw/read_file, write_file/; +use Data::Dumper; +$Data::Dumper::Purity = 1; use Promulger::Config; has listname => ( is => 'ro', - isa => 'Str', + isa => sub { $_[0] =~ /^\w+$/ or die "listname must be a string" }, required => 1, ); has active => ( is => 'rw', - isa => 'Bool', + isa => sub { ($_[0] == 0 || $_[0] == 1) or die "active must be 0 or 1" }, required => 1, - default => 1, + default => sub { 1 }, ); has subscribers => ( is => 'rw', - isa => 'HashRef', + isa => sub { ref $_[0] eq 'HASH' or die "subscribers must be a hashref" }, required => 1, default => sub { {} }, ); -with Storage ( - format => 'JSON', - io => 'File', -); - sub resolve { my ($self, $proto) = @_; $proto =~ s/-request$//; @@ -113,4 +110,15 @@ sub find_path_for { return $path; } +sub store { + my ($self, $path) = @_; + my $dumped = 'do { my '. Dumper($self) . '; $VAR1; }'; + write_file($path, $dumped); +} + +sub load { + my ($class, $path) = @_; + return do $path; +} + 'http://mitpress.mit.edu/sicp/';