require_relative 'printer' module Sapos module Print class QReader class << self attr_accessor :printer_config, :verbose end attr_accessor :pubnub, :printer, :config def self.run! reader = QReader.new callback = Pubnub::SubscribeCallback.new( message: -> (envelope){ document = Base64.decode64(envelope.result[:data][:message]['document']) if reader.printer.print(document) puts "OK" else puts "Printer Error".red end }, presence: ->(envelope){}, status: ->(envelope){} ) reader.pubnub.add_listener(callback: callback) reader.pubnub.subscribe(channels: reader.config.q) ARGV.clear while line = gets do #Wait forever ;-) end end def initialize @config = QReader.printer_config @printer = Printer.new(@config) @pubnub = Pubnub.new(subscribe_key: @config.key) end end end end