lib/service.rb in servicy-0.0.5 vs lib/service.rb in servicy-0.0.6

- old
+ new

@@ -26,11 +26,11 @@ unless args[:version] =~ VERSION_REGEX raise ArgumentError.new("Service version must be in formation M.m.r(-p)?") end if !args[:port].is_a?(Fixnum) || args[:port] < 1 || args[:port] > 65535 - raise ArgumentError.new("Service port must be an integer betwee 1-65535") + raise ArgumentError.new("Service port must be an integer betwee 1-65535. Got: #{args[:port].inspect}") end args[:heartbeat_port] ||= args[:port] if !args[:heartbeat_port].is_a?(Fixnum) || args[:heartbeat_port] < 1 || args[:heartbeat_port] > 65535 raise ArgumentError.new("Service heartbeat port must be an integer betwee 1-65535") @@ -116,11 +116,11 @@ Timeout.timeout(5) do s.recvfrom(1) end record_heartbeat(1) return true - rescue + rescue => e record_heartbeat(0) return false ensure s.close rescue nil t2 = Time.now @@ -179,16 +179,16 @@ # Decode things coming back @transport.unformat(result) end - private - def skip_heartbeat? !!no_heartbeat end + private + def transport_from_class_or_string(transport) transport.is_a?(Servicy::Transport) ? transport : transport_from_string(transport) end def transport_from_string(transport) @@ -196,15 +196,15 @@ end # These are just to keep us from filling up memory. def record_latency(t1, t2) @latencies << t2.to_i - t1.to_i - @latencies = @latencies[0...10] if @latencies.length > 10 + @latencies.slice!(2...10) if @latencies.length > 10 end def record_heartbeat(h) @heartbeats << h - @heartbeats = @heartbeats[0...10] if @heartbeats.length > 10 + @heartbeats.slice!(2...10) if @heartbeats.length > 10 end # The api is broken into two kinds of methods; instance and class. Each can # define method name, argument number and types, and return types. def check_api(api_def)