From: Kevin Clark Date: Wed, 18 Jun 2008 00:52:26 +0000 (+0000) Subject: rb: Add deprecate! method Rename TTransport#readAll/isOpen, and deprecate X-Git-Tag: 0.2.0~650 X-Git-Url: https://source.supwisdom.com/gerrit/gitweb?a=commitdiff_plain;h=c669efa48ba7ade8cdaf77d4ca9a939db8a56f05;p=common%2Fthrift.git rb: Add deprecate! method Rename TTransport#readAll/isOpen, and deprecate git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@668899 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/lib/rb/lib/thrift/deprecation.rb b/lib/rb/lib/thrift/deprecation.rb new file mode 100644 index 00000000..242a8593 --- /dev/null +++ b/lib/rb/lib/thrift/deprecation.rb @@ -0,0 +1,19 @@ +class Module + def deprecate!(*method_names) + method_names.each do |method_name| + module_eval <<-END + alias_method :deprecated_#{method_name}, :#{method_name} + def #{method_name}(*args, &block) + $stderr.puts "Warning: calling deprecated method: #{self}.#{method_name}" + return deprecated_#{method_name}(*args, &block) + end + END + end + end +end + +require 'thrift/transport/ttransport' + +class TTransport + deprecate! :isOpen, :readAll +end \ No newline at end of file diff --git a/lib/rb/lib/thrift/transport/ttransport.rb b/lib/rb/lib/thrift/transport/ttransport.rb index c53e405b..a5f6a816 100644 --- a/lib/rb/lib/thrift/transport/ttransport.rb +++ b/lib/rb/lib/thrift/transport/ttransport.rb @@ -31,7 +31,7 @@ end # TTransport is basically an abstract class, but isn't raising NotImplementedError # TODO: Think about if this is the right thing - Kevin Clark - 3/27/08 class TTransport - def isOpen; end + def is_open?; end def open; end @@ -39,21 +39,34 @@ class TTransport def read(sz); end - def readAll(sz) + def read_all(size) buff = '' have = 0 - while (have < sz) - chunk = read(sz - have) + + while (have < size) + chunk = read(size - have) have += chunk.length buff << chunk end - return buff + + buff end - + def write(buf); end def flush; end - + + ################ + ## Deprecated + ################ + + def isOpen + is_open? + end + + def readAll(sz) + read_all sz + end end class TServerTransport diff --git a/test/rb/core/transport/test_ttransport.rb b/test/rb/core/transport/test_ttransport.rb index 5811dece..bb876dcc 100644 --- a/test/rb/core/transport/test_ttransport.rb +++ b/test/rb/core/transport/test_ttransport.rb @@ -18,8 +18,8 @@ class TestTTransport < Test::Unit::TestCase @trans = TTransport.new end - def test_isOpen - assert_nil @trans.isOpen + def test_is_open? + assert_nil @trans.is_open? end def test_open @@ -39,7 +39,7 @@ class TestTTransport < Test::Unit::TestCase # It _looks_ like read isn't guarenteed to return the length # you ask for and readAll is. This means our test needs to check # for blocking. -- Kevin Clark 3/27/08 - def test_readAll + def test_read_all # Implements read t = DummyTransport.new("hello") assert_equal "hello", t.readAll(5) @@ -52,4 +52,20 @@ class TestTTransport < Test::Unit::TestCase def test_flush assert_nil @trans.flush end +end + +class TestTTransportDeprecation < Test::Unit::TestCase + def setup + @trans = TTransport.new + end + + def test_isOpen + assert_nil @trans.isOpen + end + + def test_readAll + # Implements read + t = DummyTransport.new("hello") + assert_equal "hello", t.readAll(5) + end end \ No newline at end of file