--- /dev/null
+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
# 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
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
@trans = TTransport.new
end
- def test_isOpen
- assert_nil @trans.isOpen
+ def test_is_open?
+ assert_nil @trans.is_open?
end
def test_open
# 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)
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