Sha256: 91f24cb77d83decc2e8a9f647a671b67e16103cb33b1e8ea0408425f72727ace

Contents?: true

Size: 982 Bytes

Versions: 1

Compression:

Stored size: 982 Bytes

Contents

require 'socket'

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

1 entries across 1 versions & 1 rubygems

Version Path
log_simulator-0.0.7 lib/log_simulator.rb