Sha256: ec3ab62bffebf91b82b9f9cbfe0c030e6c16edf858384796b6a71b6fda711c3d
Contents?: true
Size: 1.55 KB
Versions: 1
Compression:
Stored size: 1.55 KB
Contents
require 'cucumba' require 'net/http' module Cucumba class Railz def rails_start! if run? puts "=> #{self.description} booting..." boot! wait_untill_alive! end end def rails_stop! pid = File.read(@pid_file).to_i puts "=> Killing alive server #{self.description}(pid:#{pid})" Process.kill('INT',pid) rescue Errno::ESRCH, Errno::ENOENT puts "=> Server #{self.description} is not running" end private def boot! cmd = "ruby #{File.join(@path,'script','server')}" cmd+= " --port=#{@port}" cmd+= " --daemon" cmd+= " --environment=#{@environment}" puts `#{cmd}` end def wait_untill_alive! check_start_time = Time.now loop do raise TimeoutError, "server #{self.description} start timeout" if (200-(Time.now.to_i - check_start_time.to_i)) <= 0 if alive? puts "=> #{self.description} alive!" break else sleep 0.2 end end end def alive? Net::HTTP.start(@host, @port) { |http| http.get('/rails/info/properties') } rescue Errno::ECONNREFUSED, Errno::EBADF return false end end class <<self # run all cucumba servers that should be run(:run => true) def servers_start! config.each do |server_config| Cucumba[server_config[:name]].rails_stop! Cucumba[server_config[:name]].rails_start! end end alias :start_servers! :servers_start! def servers_stop! config.each { |server_config| Cucumba[server_config[:name]].rails_stop! } end alias :stop_servers! :servers_stop! end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
cucumba-0.0.6 | lib/cucumba/railz/runner.rb |