Fixed lint errors and responded to CR comments.

Change-Id: If7b1cc0f03f609a7f43ddafc8509b44207c60910
diff --git a/conformance/conformance_ruby.rb b/conformance/conformance_ruby.rb
index e7bd4ed..cd06567 100755
--- a/conformance/conformance_ruby.rb
+++ b/conformance/conformance_ruby.rb
@@ -32,8 +32,8 @@
 
 require 'conformance'
 
-test_count = 0;
-verbose = false;
+$test_count = 0
+$verbose = false
 
 def do_test(request)
   test_message = Conformance::TestAllTypes.new
@@ -43,9 +43,10 @@
     case request.payload
     when :protobuf_payload
       begin
-        test_message = Conformance::TestAllTypes.decode(request.protobuf_payload)
+        test_message =
+          Conformance::TestAllTypes.decode(request.protobuf_payload)
       rescue Google::Protobuf::ParseError => err
-        response.parse_error = err.message.encode("utf-8")
+        response.parse_error = err.message.encode('utf-8')
         return response
       end
 
@@ -53,34 +54,36 @@
       test_message = Conformance::TestAllTypes.decode_json(request.json_payload)
 
     when nil
-      raise "Request didn't have payload.";
+      fail "Request didn't have payload"
     end
 
     case request.requested_output_format
     when :UNSPECIFIED
-      raise "Unspecified output format"
+      fail 'Unspecified output format'
 
     when :PROTOBUF
-      response.protobuf_payload = Conformance::TestAllTypes.encode(test_message)
+      response.protobuf_payload = test_message.to_proto
 
     when :JSON
-      response.json_payload = Conformance::TestAllTypes.encode_json(test_message)
+      response.json_payload = test_message.to_json
     end
-  rescue Exception => err
-    response.runtime_error = err.message.encode("utf-8") + err.backtrace.join("\n")
+  rescue StandardError => err
+    response.runtime_error = err.message.encode('utf-8')
   end
 
-  return response
+  response
 end
 
+# Returns true if the test ran successfully, false on legitimate EOF.
+# If EOF is encountered in an unexpected place, raises IOError.
 def do_test_io
   length_bytes = STDIN.read(4)
   return false if length_bytes.nil?
 
-  length = length_bytes.unpack("V").first
+  length = length_bytes.unpack('V').first
   serialized_request = STDIN.read(length)
-  if serialized_request.nil? or serialized_request.length != length
-    raise "I/O error"
+  if serialized_request.nil? || serialized_request.length != length
+    fail IOError
   end
 
   request = Conformance::ConformanceRequest.decode(serialized_request)
@@ -88,24 +91,24 @@
   response = do_test(request)
 
   serialized_response = Conformance::ConformanceResponse.encode(response)
-  STDOUT.write([serialized_response.length].pack("V"))
+  STDOUT.write([serialized_response.length].pack('V'))
   STDOUT.write(serialized_response)
   STDOUT.flush
 
-  #if verbose
-  #  fprintf(stderr, "conformance-cpp: request=%s, response=%s\n",
-  #          request.ShortDebugString().c_str(),
-  #          response.ShortDebugString().c_str());
+  if $verbose
+    STDERR.puts("conformance-cpp: request={request.to_json}, " \
+                                 "response={response.to_json}\n")
+  end
 
-  #test_count++;
+  $test_count += 1
 
-  return true;
+  true
 end
 
-while true
-  if not do_test_io()
-    STDERR.puts("conformance-cpp: received EOF from test runner " +
-                "after #{test_count} tests, exiting")
-    exit 0
+loop do
+  unless do_test_io
+    STDERR.puts('conformance-cpp: received EOF from test runner ' \
+                "after #{$test_count} tests, exiting")
+    break
   end
 end