Sha256: 83c87eec29ff4230e356338183528e652ec3aa0e5fccae5732bcd02f63d7e92b

Contents?: true

Size: 965 Bytes

Versions: 2

Compression:

Stored size: 965 Bytes

Contents

module LogSimulator
  class PlusLogSimulator

    def self.start(filepath,timescale)
      begin
        socket = TCPSocket.new 'localhost',7658
      rescue Exception => _
        socket = nil
      end

      path = File.expand_path(filepath)
      puts "Opening log file at path: " + path

      if !File.exist? path
        puts 'No such file at path '+ path
        return
      end

      time = 0
      File.open(path,'r+:utf-8') do |file|
        file.each_line do |line|
          timestamp_parse(line) do |_time,message|
            if time != 0
              sleep (_time - time) * timescale
            end
            if socket != nil
              socket.puts message
            end
            puts '<' + message
            time = _time
          end
        end
      end
    end

    def self.timestamp_parse (line)
      line.scan(/N\|(\d+)\|RECEIVE << (.*)/) do |timeStr,message|
        yield timeStr.to_i,message
      end
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
log_simulator-0.0.5 lib/log_simulator.rb
log_simulator-0.0.4 lib/log_simulator.rb