package OOorNO;
use strict;
use Exporter;
$OOorNO::VERSION     = 0.0_2;                      # 9/12/02, 12:46 pm
@OOorNO::ISA         = qw( Exporter );
@OOorNO::EXPORT_OK   = qw
   (
      shave_opts   coerce_array   OOorNO   myargs   myself
   );
%OOorNO::EXPORT_TAGS = ( 'all' => [ @OOorNO::EXPORT_OK ] );

=pod

   AUTHOR
      Tommy Butler <tommy @ atrixnet.com>
      phone: (817)-468-7716
      6711 Forest Park Dr
      Arlington, TX
           76001-8403

   COPYRIGHT   Tommy Butler. All rights reserved
   LISCENCE    This software is free, use/distribute under the GNU GPL.
   BUGS TO     Tommy Butler <perlmod @ atrixnet.com>

=cut


# --------------------------------------------------------
# Constructor
# --------------------------------------------------------
sub new { bless({ }, shift(@_)); }


# --------------------------------------------------------
# OOorNO::OOorNO()
# --------------------------------------------------------
sub OOorNO { return($_[0]) if defined($_[0]) and UNIVERSAL::can($_[0],'can'); }


# --------------------------------------------------------
# OOorNO::myargs()
# --------------------------------------------------------
sub myargs { if (OOorNO(@_)) { shift(@_) } @_; }


# --------------------------------------------------------
# OOorNO::myself()
# --------------------------------------------------------
sub myself { return(@{$_[0]}) if OOorNO( @{$_[0]} ); }


# --------------------------------------------------------
# OOorNO::shave_opts()
# --------------------------------------------------------
sub shave_opts {

   my($mamma) = myargs(@_);

   return(undef) unless ($mamma && ref($mamma) eq 'ARRAY');

   my(@maid)   = @$mamma; @$mamma = ();
   my($opts)   = {};

   while (@maid) {

      my($o) = shift(@maid)||'';

      if ($o =~ /^\Q--\E\w/o) { $opts->{$o} = $o; } else { push(@$mamma, $o); }
   }

   return($opts);
}


# --------------------------------------------------------
# OOorNO::coerce_array()
# --------------------------------------------------------
sub coerce_array {

   my($hashref)   = {};
   my($i)         = 0;
   my(@shadow)    = myargs(@_);

   while (@shadow) {

      my($name,$val) = splice(@shadow,0,2);

      if (defined($name)) {

         $hashref->{$name} = (defined($val)) ? $val : '';
      }
      else {

         ++$i;

         $hashref->{qq[un-named key no. $i]} = (defined($val)) ? $val : '';
      }
   }

   return($hashref);
}


# --------------------------------------------------------
# OOorNO::DESTROY(), OOorNO::AUTOLOAD()
# --------------------------------------------------------
sub DESTROY { } sub AUTOLOAD { }


# --------------------------------------------------------
# end OOorNO Class, return true on import
# --------------------------------------------------------

1;