lib/petrarca/isbn13.rb in petrarca-0.6.7 vs lib/petrarca/isbn13.rb in petrarca-1.0.0
- old
+ new
@@ -1,47 +1,47 @@
-require "petrarca/helpers"
-
-
-module Petrarca
- module ISBN13
-
- extend self
-
- def valid?(isbn)
- isbn = isbn.to_s
- if correct_format?(isbn) && isbn[-1] == calc_check_digit(isbn)
- if isbn.include?("-")
- Helpers.split(isbn) == isbn.split("-")
- else
- true
- end
- else
- false
- end
- end
-
- def correct_format?(isbn)
- isbn = dehyphenate(isbn)
- !!(/\A97[89]\d{9}\d\z/ =~ isbn)
- end
-
- def calc_check_digit(isbn)
- nums = dehyphenate(isbn).split("")[0, 12].map{|x| x.to_i }
- sum = nums.zip([1, 3] * 6).map{|x, y| x * y }.inject(:+)
- check_digit = 10 - (sum % 10)
- check_digit == 10 ? "0" : check_digit.to_s
- end
-
- def dehyphenate(isbn)
- Petrarca.dehyphenate(isbn)
- end
-
- def hyphenate(isbn)
- split(isbn).join("-")
- end
-
- def split(isbn)
- Helpers.split(isbn)
- end
-
- end
-end
+require "petrarca/helpers"
+
+
+module Petrarca
+ module ISBN13
+
+ extend self
+
+ def valid?(isbn)
+ isbn = isbn.to_s
+ if correct_format?(isbn) && isbn[-1] == calc_check_digit(isbn)
+ if isbn.include?("-")
+ Helpers.split(isbn) == isbn.split("-")
+ else
+ true
+ end
+ else
+ false
+ end
+ end
+
+ def correct_format?(isbn)
+ isbn = dehyphenate(isbn)
+ !!(/\A97[89]\d{9}\d\z/ =~ isbn)
+ end
+
+ def calc_check_digit(isbn)
+ nums = dehyphenate(isbn).split("")[0, 12].map{|x| x.to_i }
+ sum = nums.zip([1, 3] * 6).map{|x, y| x * y }.inject(:+)
+ check_digit = 10 - (sum % 10)
+ check_digit == 10 ? "0" : check_digit.to_s
+ end
+
+ def dehyphenate(isbn)
+ Petrarca.dehyphenate(isbn)
+ end
+
+ def hyphenate(isbn)
+ split(isbn).join("-")
+ end
+
+ def split(isbn)
+ Helpers.split(isbn)
+ end
+
+ end
+end