Sha256: 22b5e2e8ec3e603d6ea15984a648b0c2b6b2ae57e010b742a1a185a65e13083d

Contents?: true

Size: 1.05 KB

Versions: 10

Compression:

Stored size: 1.05 KB

Contents

module Kernel
  def log(*args)
    MotionSupport.logger.log(*args)
  end
  
  def l(*args)
    MotionSupport.logger.log(args.map { |a| a.inspect })
  end
end

module MotionSupport
  class NullLogger
    def log(*args)
    end
  end

  class StdoutLogger
    def log(*args)
      puts args
    end
  end
  
  class NetworkLogger
    def initialize(host = "localhost", port = 2000)
      readStream = Pointer.new(:object)
      writeStream = Pointer.new(:object)
      CFStreamCreatePairWithSocketToHost(nil, host, port, readStream, writeStream)
      @output_stream = writeStream[0]
      @output_stream.setDelegate(self)
      @output_stream.scheduleInRunLoop(NSRunLoop.currentRunLoop, forMode:NSDefaultRunLoopMode)
      @output_stream.open
    end
    
    def log(*args)
      args.each do |string|
        data = NSData.alloc.initWithData("#{string}\n".dataUsingEncoding(NSASCIIStringEncoding))
        @output_stream.write(data.bytes, maxLength:data.length)
      end
    end
  end
  
  mattr_writer :logger
  
  def self.logger
    @logger ||= StdoutLogger.new
  end
end

Version data entries

10 entries across 10 versions & 2 rubygems

Version Path
motion-support-1.2.1 motion/logger.rb
motion-support-1.1.1 motion/logger.rb
motion-support-1.2.0 motion/logger.rb
motion-support-1.1.0 motion/logger.rb
motion-support-1.0.0 motion/logger.rb
motion-support-0.3.0 motion/logger.rb
motion_blender-support-0.2.8 motion/logger.rb
motion_blender-support-0.2.7 motion/logger.rb
motion-support-0.2.6 motion/logger.rb
motion-support-0.2.5 motion/logger.rb