work towards s/Moose/Moo/g
Chris Nehren [Thu, 4 Aug 2011 00:57:34 +0000 (20:57 -0400)]
Makefile.PL
lib/App/Promulger/Command/newsub.pm
lib/Promulger/List.pm

index 7e3934c..af46329 100644 (file)
@@ -15,9 +15,7 @@ requires 'Email::Sender';
 requires 'Fcntl';
 requires 'IPC::Run3';
 # requires 'Mail::Verp'; # not yet
-requires 'Moose';
-requires 'MooseX::Storage';
-requires 'JSON::Any';
+requires 'Moo';
 requires 'Path::Class';
 requires 'Tie::File';
 requires 'autodie';
@@ -32,5 +30,7 @@ resources 'IRC'         => 'irc://irc.perl.org/#promulger';
 resources 'license'     => 'http://dev.perl.org/licenses/';
 resources 'repository'  => 'git://git.shadowcat.co.uk/p5sagit/Promulger.git';
 
+auto_install();
+
 WriteAll();
 
index 567221f..6afce38 100644 (file)
@@ -16,9 +16,7 @@ sub run {
   my $listname = $args->[0];
   my $list = Promulger::List->resolve($listname);
 
-  if($list) {
-    $list->delete;
-  } else {
+  if(!$list) {
     die "$listname doesn't exist\n";
   }
 
index 5238e99..9e0e969 100644 (file)
@@ -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/';