Sha256: 4e8be445cf048b50398c31f9d084085a7ed08f96add122c7013f2ff739fc1228

Contents?: true

Size: 1.25 KB

Versions: 10

Compression:

Stored size: 1.25 KB

Contents

#!/usr/bin/env ruby
require 'optparse'
require 'rubygems'

#$: << File.join(File.dirname(__FILE__), '..', 'lib')
require 'barby'

options = {
  :outputter => 'Png',
  :outputter_method => 'to_png',
  :barcode => 'Code128B'
}

ARGV.options do |o|
  o.banner = "  Usage: #{File.basename(__FILE__)} [OPTIONS] data"
  o.define_head '  Generates barcodes and prints the generated output to STDOUT'

  o.separator ''
  o.separator '  EXPERIMENTAL'
  o.separator ''

  o.on('-b', '--barcode=ClassName', String, 'Barcode type (Code128B)'){|v| options[:barcode] = v }
  o.on('-o', '--outputter=ClassName', String, 'Outputter (Png)'){|v| options[:outputter] = v }
  o.on('-m', '--method=method_name', String, 'Outputter method (to_png)'){|v| options[:outputter_method] = v }

  o.on_tail("-h", "--help", "Show this help message.") { puts o; exit }
    
  o.parse!
end

#p STDIN.read
#exit

require "barby/outputter/#{options[:outputter].gsub(/[A-Z]/){|c| '_'+c.downcase }[1..-1]}_outputter"

barcode_class = Barby.const_get(options[:barcode])
barcode = barcode_class.new($*.empty? ? STDIN.read.chomp : $*)
outputter_class = Barby.const_get("#{options[:outputter]}Outputter")
outputter = outputter_class.new(barcode)

print eval("outputter.#{options[:outputter_method]}(#{ENV['OPTIONS']})")

Version data entries

10 entries across 10 versions & 3 rubygems

Version Path
arena_barby-0.3.2 bin/barby
barby-chunky_png-0.3.4 bin/barby
barby-0.4.2 bin/barby
barby-0.4.1 bin/barby
barby-0.4.0 bin/barby
barby-chunky_png-0.3.3 bin/barby
barby-0.3.2 bin/barby
barby-0.3.1 bin/barby
barby-0.3.0 bin/barby
barby-0.2.1 bin/barby