okay,.. I think this is ready for release
[gitmo/MooseX-Daemonize.git] / lib / MooseX / Daemonize / Pid.pm
index 0faaedb..bcfd3b5 100644 (file)
@@ -1,14 +1,21 @@
 package MooseX::Daemonize::Pid;
 use strict;    # because Kwalitee is pedantic
 use Moose;
+use Moose::Util::TypeConstraints;
+
+coerce 'MooseX::Daemonize::Pid' 
+    => from 'Int' 
+        => via { MooseX::Daemonize::Pid->new( pid => $_ ) };
 
 our $VERSION = '0.01';
 
 has 'pid' => (
-    is      => 'rw',
-    isa     => 'Int',
-    lazy    => 1,
-    default => sub { $$ }
+    is        => 'rw',
+    isa       => 'Int',
+    lazy      => 1,
+    clearer   => 'clear_pid',
+    predicate => 'has_pid',
+    default   => sub { $$ }
 );
 
 sub is_running { kill(0, (shift)->pid) ? 1 : 0 }
@@ -22,24 +29,37 @@ __END__
 =head1 NAME
 
 MooseX::Daemonize::Pid - PID management for MooseX::Daemonize
-
-=head1 SYNOPSIS
      
 =head1 DESCRIPTION
 
+This is a very basic Pid management object, it doesn't do all that 
+much, and mostly just serves as a base class for L<MooseX::Daemonize::Pid::File>.
+
 =head1 ATTRIBUTES
 
-=over
+=over 4
 
-=item pid Int
+=item I<pid Int>
 
 =back
 
 =head1 METHODS 
 
-=over
+=over 4
+
+=item B<clear_pid>
+
+This will clear the value of the I<pid> attribute. It is useful for making sure
+that the parent process does not have a bad value stored in it.
 
-=item is_running
+=item B<has_pid>
+
+This is a predicate method to tell you if your I<pid> attribute has 
+been initialized yet.
+
+=item B<is_running>
+
+This checks to see if the I<pid> is running.
 
 =item meta()
 
@@ -75,7 +95,6 @@ reserved.
 This module is free software; you can redistribute it and/or
 modify it under the same terms as Perl itself. See L<perlartistic>.
 
-
 =head1 DISCLAIMER OF WARRANTY
 
 BECAUSE THIS SOFTWARE IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY