require 'socket_server' class StatsSocket < SocketServer def initialize(socket_path) super(socket_path) end protected def get_response(command) result = case command when "gc_stat" GC.stat.to_json when "v8_stat" stats = {} ObjectSpace.each_object(MiniRacer::Context) do |context| context.heap_stats.each do |k,v| stats[k] = (stats[k] || 0) + v end end stats.to_json else "[\"UNKNOWN COMMAND\"]" end result << "\n" end end