We need the
require 'rubygems'
so that the interpreter will know to search the rubygems install paths. Apparently, module locations are not hard coded into the interpreter.#!/usr/bin/env ruby require 'rubygems' require 'eventmachine' port = ARGV[0].to_i puts "PORT>>>#{port}<<<" module Echo def receive_data(data) puts "RECV>>>#{data.chomp}<<<" send_data(data) puts "SEND>>>#{data.chomp}<<<" if data.downcase.chomp == 'quit' EM.next_tick { EM.stop } end end end EM.run do EM.start_server("0.0.0.0", port, Echo) end