From 9f1094ef367a5d66dd87c114f73d8c4e5f8c3e08 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Tue, 6 May 2014 01:07:58 -0700 Subject: [PATCH] Allow use of our subroutines as class methods, patch from Adam Kennedy, thanks! --- Changes | 2 ++ CreditCard.pm | 11 ++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Changes b/Changes index d3c2183..9a90f30 100644 --- a/Changes +++ b/Changes @@ -3,6 +3,8 @@ Revision history for Perl extension Business::CreditCard. 0.33 unreleased - With $Country explicity to CA, fix identification of JCB 3529-3589 as Discover + - Allow use of our subroutines as class methods, patch from Adam + Kennedy, thanks! 0.32 Thu Feb 21 16:02:42 PST 2013 - Add Israeli Isracard (no checksum yet) diff --git a/CreditCard.pm b/CreditCard.pm index 4fe901e..4fdcebd 100644 --- a/CreditCard.pm +++ b/CreditCard.pm @@ -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); -- 2.11.0