From eff97fc04276eb7789ff885a604cfd96cfd1581b Mon Sep 17 00:00:00 2001 From: Kevin Clark Date: Wed, 18 Jun 2008 01:01:40 +0000 Subject: [PATCH] Use the correct name in deprecation warnings git-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@668928 13f79535-47bb-0310-9956-ffa450edef68 --- lib/rb/lib/thrift/deprecation.rb | 24 +++++++++++++++--------- lib/rb/spec/deprecation_spec.rb | 16 ++++++++-------- 2 files changed, 23 insertions(+), 17 deletions(-) diff --git a/lib/rb/lib/thrift/deprecation.rb b/lib/rb/lib/thrift/deprecation.rb index f2b57ae1..68ecb719 100644 --- a/lib/rb/lib/thrift/deprecation.rb +++ b/lib/rb/lib/thrift/deprecation.rb @@ -32,7 +32,7 @@ class Module end module Thrift::DeprecationProxy - def self.new_class(obj) + def self.new_class(obj, name) Class.new(obj) do klass = self @@self = klass @@ -46,13 +46,14 @@ module Thrift::DeprecationProxy (class << self;self;end).class_eval do @@self = klass @@obj = obj + @@name = name @@warned = false instance_methods.sort.reject { |x| [:__id__,:__send__].include? x.to_sym }.each do |sym| undef_method sym end def method_missing(sym, *args, &block) unless @@warned - STDERR.puts "Warning: class #{@@obj.inspect} is deprecated" + STDERR.puts "Warning: class #{@@name} is deprecated" STDERR.puts " from #{caller.first}" @@warned = true end @@ -65,17 +66,21 @@ module Thrift::DeprecationProxy end end end - def self.new_module(obj) + def self.new_module(obj, name) Module.new do @@obj = obj - @warned = false + @@warned = false + @@name = name include obj instance_methods.sort.reject { |x| [:__id__,:__send__].include? x.to_sym }.each do |sym| undef_method sym end def method_missing(sym, *args, &block) - STDERR.puts "Warning: module #{@@obj.inspect} is deprecated" - STDERR.puts " from #{caller.first}" + unless @@warned + STDERR.puts "Warning: module #{@@name} is deprecated" + STDERR.puts " from #{caller.first}" + @@warned = true + end @@obj.instance_method(sym).bind(self).call(*args, &block) end (class << self;self;end).class_eval do @@ -86,7 +91,7 @@ module Thrift::DeprecationProxy end def method_missing(sym, *args, &block) unless @@warned - STDERR.puts "Warning: module #{@@obj.inspect} is deprecated" + STDERR.puts "Warning: module #{@@name} is deprecated" STDERR.puts " from #{caller.first}" @@warned = true end @@ -108,7 +113,8 @@ module Kernel def deprecate_class!(klasses) return unless Thrift::DEPRECATION klasses.each_pair do |old, new| - Object.const_set old, Thrift::DeprecationProxy.new_class(new) + raise "deprecate_class! expected Class, called with #{new}" unless new.is_a? Class + Object.const_set old, Thrift::DeprecationProxy.new_class(new, old) end end @@ -116,7 +122,7 @@ module Kernel def deprecate_module!(modules) return unless Thrift::DEPRECATION modules.each_pair do |old, new| - Object.const_set old, Thrift::DeprecationProxy.new_module(new) + Object.const_set old, Thrift::DeprecationProxy.new_module(new, old) end end end diff --git a/lib/rb/spec/deprecation_spec.rb b/lib/rb/spec/deprecation_spec.rb index 0b994fd8..9e27f7c4 100644 --- a/lib/rb/spec/deprecation_spec.rb +++ b/lib/rb/spec/deprecation_spec.rb @@ -190,7 +190,7 @@ describe "deprecate_class!" do end end deprecate_class! :DeprecationSpecOldClass => klass - stub_stderr(klass) + stub_stderr(:DeprecationSpecOldClass) ::DeprecationSpecOldClass.should eql(klass) ::DeprecationSpecOldClass.new.foo.should == "foo" end @@ -207,7 +207,7 @@ describe "deprecate_class!" do end deprecate_class! :DeprecationSpecOldClass => klass end - stub_stderr(klass) + stub_stderr(:DeprecationSpecOldClass) ::DeprecationSpecOldClass.should eql(klass) ::DeprecationSpecOldClass.new.foo.should == "foo" end @@ -226,7 +226,7 @@ describe "deprecate_class!" do "subclass #{super}" end end - stub_stderr(klass) + stub_stderr(:DeprecationSpecOldClass) subklass.superclass.should eql(klass) subklass.new.foo.should == "subclass foo" end @@ -250,7 +250,7 @@ describe "deprecate_module!" do end end deprecate_module! :DeprecationSpecOldModule => mod - stub_stderr(mod) + stub_stderr(:DeprecationSpecOldModule) ::DeprecationSpecOldModule.should eql(mod) ::DeprecationSpecOldModule.foo.should == "foo" end @@ -267,7 +267,7 @@ describe "deprecate_module!" do end deprecate_module! :DeprecationSpecOldModule => mod end - stub_stderr(mod) + stub_stderr(:DeprecationSpecOldModule) ::DeprecationSpecOldModule.should eql(mod) ::DeprecationSpecOldModule.foo.should == "foo" end @@ -282,7 +282,7 @@ describe "deprecate_module!" do end end deprecate_module! :DeprecationSpecOldModule => mod - stub_stderr(mod) + stub_stderr(:DeprecationSpecOldModule) ::DeprecationSpecOldModule.should eql(mod) ::DeprecationSpecOldModule.foo.should == "foo" end @@ -301,7 +301,7 @@ describe "deprecate_module!" do include ::DeprecationSpecOldModule end end - stub_stderr(mod) + stub_stderr(:DeprecationSpecOldModule) mod2.foo.should == "foo" end end @@ -317,7 +317,7 @@ describe "deprecate_module!" do klass = Class.new do include ::DeprecationSpecOldModule end - stub_stderr(mod) + stub_stderr(:DeprecationSpecOldModule) klass.new.foo.should == "foo" end end -- 2.17.1