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)