Sha256: 0c836e9fa83768d67867140e846e1829c5740f37546a97c739e5a79cda4f04ed
Contents?: true
Size: 1.8 KB
Versions: 2
Compression:
Stored size: 1.8 KB
Contents
require 'socket' require 'erb' require 'json/pure' module Jasmine def self.root ENV["JASMINE_ROOT"] || File.expand_path(File.join(File.dirname(__FILE__), '../../jasmine')) end # this seemingly-over-complex method is necessary to get an open port on at least some of our Macs def self.open_socket_on_unused_port infos = Socket::getaddrinfo("localhost", nil, Socket::AF_UNSPEC, Socket::SOCK_STREAM, 0, Socket::AI_PASSIVE) families = Hash[*infos.collect { |af, *_| af }.uniq.zip([]).flatten] return TCPServer.open('0.0.0.0', 0) if families.has_key?('AF_INET') return TCPServer.open('::', 0) if families.has_key?('AF_INET6') return TCPServer.open(0) end def self.find_unused_port socket = open_socket_on_unused_port port = socket.addr[1] socket.close port end def self.server_is_listening_on(hostname, port) require 'socket' begin socket = TCPSocket.open(hostname, port) rescue Errno::ECONNREFUSED return false end socket.close true end def self.wait_for_listener(port, name = "required process", seconds_to_wait = 10) time_out_at = Time.now + seconds_to_wait until server_is_listening_on "localhost", port sleep 0.1 puts "Waiting for #{name} on #{port}..." raise "#{name} didn't show up on port #{port} after #{seconds_to_wait} seconds." if Time.now > time_out_at end end def self.cachebust(files, root_dir="", replace=nil, replace_with=nil) require 'digest/md5' files.collect do |file_name| real_file_name = replace && replace_with ? file_name.sub(replace, replace_with) : file_name begin digest = Digest::MD5.hexdigest(File.read("#{root_dir}#{real_file_name}")) rescue digest = "MISSING-FILE" end "#{file_name}?cachebust=#{digest}" end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
jasmine-1.0.1 | lib/jasmine/base.rb |
jasmine-1.0.0 | lib/jasmine/base.rb |