Allow use of our subroutines as class methods, patch from Adam Kennedy, thanks!
[Business-CreditCard.git] / CreditCard.pm
index 4fe901e..4fdcebd 100644 (file)
@@ -132,7 +132,7 @@ types.  Lee also contributed a working test.pl.  Alexandr Ciornii
 
 Copyright (C) 1995,1996,1997 Jon Orwant
 Copyright (C) 2001-2006 Ivan Kohler
-Copyright (C) 2007-2013 Freeside Internet Services, Inc.
+Copyright (C) 2007-2014 Freeside Internet Services, Inc.
 
 This library is free software; you can redistribute it and/or modify
 it under the same terms as Perl itself, either Perl version 5.8.8 or,
@@ -174,6 +174,9 @@ providing credit card number verification (LUHN checking).
 ## a lot more than just 6011*, they don't handle processing agreements, etc.
 
 sub cardtype {
+    # Allow use as a class method
+    shift if UNIVERSAL::isa( $_[0], 'Business::CreditCard' );
+
     my ($number) = @_;
 
     $number =~ s/[\s\-]//go;
@@ -242,6 +245,9 @@ sub cardtype {
 }
 
 sub generate_last_digit {
+    # Allow use as a class method
+    shift if UNIVERSAL::isa( $_[0], 'Business::CreditCard' );
+
     my ($number) = @_;
 
     die "invalid operation" if length($number) == 8 || length($number) == 9;
@@ -274,6 +280,9 @@ sub generate_last_digit {
 #  $type = '' if $ccn % 10;
 #  return $type;
 sub validate {
+    # Allow use as a class method
+    shift if UNIVERSAL::isa( $_[0], 'Business::CreditCard' );
+
     my ($number) = @_;
 
     my ($i, $sum, $weight);