Implemented header protocol for Ruby client library
diff --git a/test/rb/integration/TestClient.rb b/test/rb/integration/TestClient.rb
index 1876529..ca54c8b 100755
--- a/test/rb/integration/TestClient.rb
+++ b/test/rb/integration/TestClient.rb
@@ -40,9 +40,9 @@
     puts "\t--domain-socket arg (=) \t Unix domain socket path"
     puts "\t--host arg (=localhost) \t Host to connect \t not valid with domain-socket"
     puts "\t--port arg (=9090) \t Port number to listen \t not valid with domain-socket"
-    puts "\t--protocol arg (=binary) \t protocol: accel, binary, compact, json"
+    puts "\t--protocol arg (=binary) \t protocol: accel, binary, compact, json, header"
     puts "\t--ssl \t use ssl \t not valid with domain-socket"
-    puts "\t--transport arg (=buffered) transport: buffered, framed, http"
+    puts "\t--transport arg (=buffered) transport: buffered, framed, header, http"
     exit
   elsif a.start_with?("--domain-socket")
     $domain_socket = a.split("=")[1]
@@ -87,6 +87,8 @@
         transportFactory = Thrift::BufferedTransport.new(@socket)
       elsif $transport == "framed"
         transportFactory = Thrift::FramedTransport.new(@socket)
+      elsif $transport == "header"
+        transportFactory = Thrift::HeaderTransport.new(@socket)
       else
         raise 'Unknown transport type'
       end
@@ -99,6 +101,9 @@
         @protocol = Thrift::JsonProtocol.new(transportFactory)
       elsif $protocolType == "accel"
         @protocol = Thrift::BinaryProtocolAccelerated.new(transportFactory)
+      elsif $protocolType == "header"
+        # HeaderProtocol wraps its own transport, so pass the selected transport
+        @protocol = Thrift::HeaderProtocol.new(transportFactory)
       else
         raise 'Unknown protocol type'
       end
@@ -386,4 +391,3 @@
   end
 
 end
-
diff --git a/test/rb/integration/TestServer.rb b/test/rb/integration/TestServer.rb
index afa6c2d..65d1285 100755
--- a/test/rb/integration/TestServer.rb
+++ b/test/rb/integration/TestServer.rb
@@ -120,9 +120,9 @@
     puts "\t -h [ --help ] \t produce help message"
     puts "\t--domain-socket arg (=) \t Unix domain socket path"
     puts "\t--port arg (=9090) \t Port number to listen \t not valid with domain-socket"
-    puts "\t--protocol arg (=binary) \t protocol: accel, binary, compact, json"
+    puts "\t--protocol arg (=binary) \t protocol: accel, binary, compact, json, header"
     puts "\t--ssl \t use ssl \t not valid with domain-socket"
-    puts "\t--transport arg (=buffered) transport: buffered, framed, http"
+    puts "\t--transport arg (=buffered) transport: buffered, framed, header, http"
     exit
   elsif a.start_with?("--domain-socket")
     domain_socket = a.split("=")[1]
@@ -145,6 +145,8 @@
   @protocolFactory = Thrift::JsonProtocolFactory.new
 elsif protocol == "accel"
   @protocolFactory = Thrift::BinaryProtocolAcceleratedFactory.new
+elsif protocol == "header"
+  @protocolFactory = Thrift::HeaderProtocolFactory.new
 else
   raise 'Unknown protocol type'
 end
@@ -153,6 +155,8 @@
   @transportFactory = Thrift::BufferedTransportFactory.new
 elsif transport == "framed"
   @transportFactory = Thrift::FramedTransportFactory.new
+elsif transport == "header"
+  @transportFactory = Thrift::HeaderTransportFactory.new
 else
   raise 'Unknown transport type'
 end