diff --git a/lib/rb/lib/thrift/transport/ttransport.rb b/lib/rb/lib/thrift/transport/ttransport.rb
index dd015ae..0532423 100644
--- a/lib/rb/lib/thrift/transport/ttransport.rb
+++ b/lib/rb/lib/thrift/transport/ttransport.rb
@@ -122,8 +122,8 @@
     @write     = write
   end
 
-  def isOpen()
-    return @transport.isOpen
+  def open?()
+    return @transport.open?
   end
 
   def open()
@@ -144,7 +144,7 @@
     end
 
     if (@rbuf.length == 0)
-      readFrame
+      read_frame
     end
 
     # return full buf
@@ -193,7 +193,7 @@
 
   private
 
-  def readFrame
+  def read_frame
     buf  = @transport.readAll(4)
     val  = buf.unpack('N')
     sz   = val[0]
@@ -218,7 +218,7 @@
     @rpos = 0
   end
 
-  def isOpen
+  def open?
     return 1
   end
 
@@ -232,11 +232,11 @@
     return @rpos < @wpos
   end
 
-  def getBuffer
+  def get_buffer
     return @buf
   end
 
-  def resetBuffer(new_buf = '')
+  def reset_buffer(new_buf = '')
      @buf  = new_buf
      @sz   = new_buf.length
      @wpos = new_buf.length
