Ruby helper classes for barcodes

In my day job, I work a lot with barcodes. We develop Windows Mobile software for devices with barcode readers. From time to time, I need to do file manipulation chores. That is: colleagues give me text files that contain barcodes and ask me to transform these.

Yesterday, a colleague of mine asked me to take as input a file with 12 characters long barcodes and add a check digit assuming the barcodes are EAN13. I decided to do it and also start maintaining a set of barcode helper classes written in Ruby. I haven’t created a gem yet, cause the functionality is … lets say limited :-), but I plan to do so later.

You can go to

and just download the barcode.rb file.

Here is how I used the barcode.rb file in order to transform the file:

[sourcecode language=”ruby”]
require "barcode"

file ="apog.txt")

file.each do |line|
bc = line.slice(0..11)
bc13 =
puts bc13 + line.slice(12..line.length)


The file had the following format:

[sourcecode language=”text”]

and for the three lines above it produces:

[sourcecode language=”text”]

Update: I have changed this project to a gem. You can read about it in my PAbarcode gem post.

3 thoughts on “Ruby helper classes for barcodes

  1. Thank you very much!

    Your assistance it was very helpful.

    It’ll be very helpful if your project can do the following specified steps:
    1. the name of the input text file
    2. the type of file i.e. a csv file, a delimited field or an Excel file
    3. the field that we want to check and change (of course the barcode field)
    4. the name of the output file
    5. the format of the output file i.e. a csv file, a delimited field or an Excel file

    Thank you again Petro

    1. You are welcome. The utility that I mention in the post is written in Ruby. Are you sure you would like what you describe written in Ruby?

  2. @Petros
    Why not my friend?

    I’m curious to see the solving method not the actual programming code.
    Then, i believe, it’s easy to implement it in another programming language.

    Best regards
    Happy Holidays!

Leave a Reply