Sha256: 12675182bdc4a0488fb5bb7e76c169282188f02f39c4df8bc44adf95ff51333c
Contents?: true
Size: 1.62 KB
Versions: 2
Compression:
Stored size: 1.62 KB
Contents
require 'ostruct' require 'protobuf/common/logger' require 'protobuf/rpc/server' require 'spec/proto/test_service_impl' module StubProtobufServerFactory def self.build(delay) new_server = Class.new(Protobuf::Rpc::EventedServer) do class << self def sleep_interval @sleep_interval end def sleep_interval=(si) @sleep_interval = si end end def post_init sleep self.class.sleep_interval super end end new_server.sleep_interval = delay return new_server end end class StubServer include Protobuf::Logger::LogMethods attr_accessor :options def initialize(opts = {}) @running = true @options = OpenStruct.new({ :host => "127.0.0.1", :port => 9939, :delay => 0, :server => Protobuf::Rpc::EventedServer }.merge(opts)) start yield self ensure stop if @running end def start if @options.server == Protobuf::Rpc::EventedServer start_em_server else Protobuf::Rpc::SocketRunner.run(@options) end log_debug "[stub-server] Server started #{@options.host}:#{@options.port}" rescue => ex if ex =~ /no acceptor/ # Means EM didn't shutdown in the next_tick yet stop retry end end def start_em_server @server_handle = EventMachine::start_server(@options.host, @options.port, StubProtobufServerFactory.build(@options.delay)) end def stop if @options.server == Protobuf::Rpc::EventedServer EventMachine.stop_server(@server_handle) else Protobuf::Rpc::SocketRunner.stop end @running = false end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
protobuf-1.1.0.beta1 | spec/helper/server.rb |
protobuf-1.1.0.beta0 | spec/helper/server.rb |