Class Barby::Code25Interleaved
In: lib/barby/barcode/code_25_interleaved.rb
Parent: Code25
EAN13 Bookland EAN8 Barcode1D Code128 Code25 Code93 Code39 Barcode Barcode2D QrCode Pdf417 Code128A Code128B Code128C GS1128 Outputter CairoOutputter PngOutputter ASCIIOutputter RmagickOutputter PDFWriterOutputter SvgOutputter PrawnOutputter 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/ean_8.rb lib/barby/barcode/pdf_417.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_23_0.png

Code 2 of 5 interleaved. Same as standard 2 of 5, but spaces are used for encoding as well as the bars. Each pair of numbers get interleaved, that is, the first is encoded in the bars and the second is encoded in the spaced. This means an interleaved 2/5 barcode must have an even number of digits.

Methods

Constants

START_ENCODING = [N,N,N,N]
STOP_ENCODING = [W,N,N]

Public Instance methods

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 29
29:     def digit_encodings
30:       raise_invalid unless valid?
31:       digit_pairs.map{|p| encoding_for_pair(p) }
32:     end

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 34
34:     def digit_encodings_with_checksum
35:       digit_pairs_with_checksum.map{|p| encoding_for_pair(p) }
36:     end

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 16
16:     def digit_pairs(d=nil)
17:       (d || digits).inject [] do |ary,d|
18:         ary << [] if !ary.last || ary.last.size == 2
19:         ary.last << d
20:         ary
21:       end
22:     end

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 24
24:     def digit_pairs_with_checksum
25:       digit_pairs(digits_with_checksum)
26:     end

Encodes an array of interleaved W or N bars and spaces ex: [W,N,W,W,N,N] => "111011100010"

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 47
47:     def encoding_for_interleaved(*bars_and_spaces)
48:       bar = false#starts with bar
49:       bars_and_spaces.flatten.inject '' do |enc,bar_or_space|
50:         bar = !bar
51:         enc << (bar ? '1' : '0') * (bar_or_space == WIDE ? wide_width : narrow_width)
52:       end
53:     end

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 39
39:     def encoding_for_pair(pair)
40:       bars, spaces = ENCODINGS[pair.first], ENCODINGS[pair.last]
41:       encoding_for_interleaved(bars.zip(spaces))
42:     end

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 56
56:     def start_encoding
57:       encoding_for_interleaved(START_ENCODING)
58:     end

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 60
60:     def stop_encoding
61:       encoding_for_interleaved(STOP_ENCODING)
62:     end

[Source]

    # File lib/barby/barcode/code_25_interleaved.rb, line 65
65:     def valid?
66:       #                           When checksum is included, it's included when determining "evenness"
67:       super && digits.size % 2 == (include_checksum? ? 1 : 0)
68:     end

[Validate]