Class Barby::Bookland
In: lib/barby/barcode/bookland.rb
Parent: EAN13
EAN13 Bookland EAN8 Barcode1D Code128 Code25 Code93 Code39 Barcode Barcode2D QrCode Pdf417 Code128A Code128B Code128C GS1128 Outputter CairoOutputter PngOutputter ASCIIOutputter PDFWriterOutputter RmagickOutputter PrawnOutputter SvgOutputter Code25IATA Code25Interleaved lib/barby/barcode/gs1_128.rb lib/barby/outputter/png_outputter.rb lib/barby/outputter/svg_outputter.rb lib/barby/outputter/rmagick_outputter.rb lib/barby/barcode.rb lib/barby/outputter/ascii_outputter.rb lib/barby/outputter.rb lib/barby/barcode/code_128.rb lib/barby/barcode/code_39.rb lib/barby/outputter/pdfwriter_outputter.rb lib/barby/barcode/code_93.rb lib/barby/outputter/prawn_outputter.rb lib/barby/barcode/pdf_417.rb lib/barby/barcode/ean_8.rb lib/barby/barcode/code_25_iata.rb lib/barby/outputter/cairo_outputter.rb lib/barby/barcode/ean_13.rb lib/barby/barcode/code_25.rb lib/barby/barcode/code_25_interleaved.rb lib/barby/barcode/qr_code.rb lib/barby/barcode/bookland.rb VERSION Barby dot/m_22_0.png

Bookland barcodes are EAN-13 barcodes with number system 978 (hence "Bookland"). The data they encode is an ISBN with its check digit removed. This is a convenience class that takes an ISBN no instead of "pure" EAN-13 data.

Methods

data   isbn_only   new  

Constants

BOOKLAND_NUMBER_SYSTEM = '978'

Attributes

isbn  [RW] 

Public Class methods

[Source]

    # File lib/barby/barcode/bookland.rb, line 15
15:     def initialize(isbn)
16:       self.isbn = isbn
17:       raise ArgumentError, 'data not valid' unless valid?
18:     end

Public Instance methods

[Source]

    # File lib/barby/barcode/bookland.rb, line 20
20:     def data
21:       BOOKLAND_NUMBER_SYSTEM+isbn_only
22:     end

Removes any non-digit characters, number system and check digit from ISBN, so "978-82-92526-14-9" would result in "829252614"

[Source]

    # File lib/barby/barcode/bookland.rb, line 26
26:     def isbn_only
27:       s = isbn.gsub(/[^0-9]/, '')
28:       if s.size > 10#Includes number system
29:         s[3,9]
30:       else#No number system, may include check digit
31:         s[0,9]
32:       end
33:     end

[Validate]