You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by kc...@apache.org on 2008/06/24 03:32:04 UTC

svn commit: r670989 - in /incubator/thrift/trunk/lib/rb: lib/thrift/struct.rb spec/struct_spec.rb

Author: kclark
Date: Mon Jun 23 18:32:03 2008
New Revision: 670989

URL: http://svn.apache.org/viewvc?rev=670989&view=rev
Log:
rb: When passing unknown keys to Thrift::Struct.new, report those keys in the exception [THRIFT-51]

Author: kevin@rapleaf.com

Modified:
    incubator/thrift/trunk/lib/rb/lib/thrift/struct.rb
    incubator/thrift/trunk/lib/rb/spec/struct_spec.rb

Modified: incubator/thrift/trunk/lib/rb/lib/thrift/struct.rb
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/rb/lib/thrift/struct.rb?rev=670989&r1=670988&r2=670989&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/rb/lib/thrift/struct.rb (original)
+++ incubator/thrift/trunk/lib/rb/lib/thrift/struct.rb Mon Jun 23 18:32:03 2008
@@ -9,7 +9,7 @@
         Thrift.check_type(value, type)
         instance_variable_set("@#{name}", value)
       end
-      raise Exception, "Unknown arguments given to #{self.class}.new" unless d.empty?
+      raise Exception, "Unknown keys given to #{self.class}.new: #{d.keys.join(", ")}" unless d.empty?
     end
 
     def struct_fields

Modified: incubator/thrift/trunk/lib/rb/spec/struct_spec.rb
URL: http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/rb/spec/struct_spec.rb?rev=670989&r1=670988&r2=670989&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/rb/spec/struct_spec.rb (original)
+++ incubator/thrift/trunk/lib/rb/spec/struct_spec.rb Mon Jun 23 18:32:03 2008
@@ -196,7 +196,8 @@
     end
 
     it "should raise an exception when unknown types are given to Thrift::Struct.new" do
-      lambda { Hello.new(:fish => 'salmon') }.should raise_error(Exception, "Unknown arguments given to SpecNamespace::Hello.new")
+      lambda { Hello.new(:fish => 'salmon') }.should raise_error(Exception, "Unknown keys given to SpecNamespace::Hello.new: fish")
+      lambda { Hello.new(:foo => 'bar', :baz => 'blah', :greeting => 'Good day') }.should raise_error(Exception, /^Unknown keys given to SpecNamespace::Hello.new: (foo, baz|baz, foo)$/)
     end
   end
 end