Class: Ig3tool::BibBook
- Inherits:
-
ActiveRecord::Base
- Object
- ActiveRecord::Base
- Ig3tool::BibBook
- Defined in:
- lib/bib.rb
Class Method Summary collapse
-
._isbn10(code) ⇒ Object
ISBN-10 -> ISBN-13.
-
._isbn13(code) ⇒ Object
ISBN-13 -> ISBN-10.
Instance Method Summary collapse
Methods inherited from ActiveRecord::Base
#attributes_protected_by_default, hash_lookup, set_nonauto_primary_key
Class Method Details
._isbn10(code) ⇒ Object
ISBN-10 -> ISBN-13
68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'lib/bib.rb', line 68 def self._isbn10(code) raise "Invalid ISBN-13 number!" if code.length != 13 code = code[3..11] sum = 0 9.times {|i| sum += code[i].chr.to_i * (10 - i) } check = 11 - sum % 11 check = 0 if sum == 0 check = 'X' if check == 10 code = code + check.to_s end |
._isbn13(code) ⇒ Object
ISBN-13 -> ISBN-10
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/bib.rb', line 51 def self._isbn13(code) raise "Invalid ISBN-10 number!" if code.length != 10 code.chop! code = "978" + code sum = 0 code.split(//).each_with_index do |c, i| sum += c.to_i * ( i % 2 == 0 ? 1 : 3 ) end rem = sum % 10 check = (rem == 0) ? 0 : 10 - rem code = code + check.to_s end |
Instance Method Details
#available ⇒ Object
46 47 48 |
# File 'lib/bib.rb', line 46 def available copies - loans.length end |
#available? ⇒ Boolean
42 43 44 |
# File 'lib/bib.rb', line 42 def available? available > 0 end |