Review: ActiveSupport bug fixes


#1
Implement File.chown. It is a nop (on Windows)
ObjectSpace.each_byte:
 It was not throwing an exception for the unsupported cases.
 Also, the unsupported cases should throw RuntimeError to match 

ActiveSupport/JRuby conventions
The return value was also incorrect
NameError should call #inspect on self, not #to_s
#instance_method on singleton classes behaves a bit differently - it
puts a contraint of the nominal type.
UnboundMethod#bind was doing an incorrect type check and not dealing
with singleton classes. Factored out RubyContext.IsKindOf for this

Files changed:

Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/ironruby-tags/core/file/chown_tags.txt
*
Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/rubyspec/core/exception/name_error_spec.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-1
*
Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/rubyspec/core/module/fixtures/classes.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-2
*
Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/rubyspec/core/module/instance_method_spec.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-3
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Errno.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-4
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/FileOps.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-5
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/KernelOps.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-6
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-7
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ObjectSpace.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-8
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/UnboundMethod.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-9
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-10
*
Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyClass.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-11
*
Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/ProtocolConversionAction.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-12
*
Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyContext.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-13
*
Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyExceptions.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-14
*
Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized_spec.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-15

Also added mocha gem :

Thanks,
Shri


#2

NominalClass is already implemented by GetNonSingletonClass(). The
difference is that GetNonSingletonClass() finds the first non-singleton
class in hierarchy. For object singletons this is the immediate
_superClass but for class/module singletons the super is also a
singleton. Have you tried how UnboundMethod#bind works on them?

Tomas

From: Shri B.
Sent: Monday, May 11, 2009 10:07 AM
To: removed_email_address@domain.invalid; IronRuby External Code R.
Subject: Review: ActiveSupport bug fixes

http://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e

Implement File.chown. It is a nop (on Windows)
ObjectSpace.each_byte:
 It was not throwing an exception for the unsupported cases.
 Also, the unsupported cases should throw RuntimeError to match 

ActiveSupport/JRuby conventions
The return value was also incorrect
NameError should call #inspect on self, not #to_s
#instance_method on singleton classes behaves a bit differently - it
puts a contraint of the nominal type.
UnboundMethod#bind was doing an incorrect type check and not dealing
with singleton classes. Factored out RubyContext.IsKindOf for this

Files changed:

Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/ironruby-tags/core/file/chown_tags.txt
*
Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/rubyspec/core/exception/name_error_spec.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-1
*
Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/rubyspec/core/module/fixtures/classes.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-2
*
Merlin/External.LCA_RESTRICTED/Languages/IronRuby/mspec/rubyspec/core/module/instance_method_spec.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-3
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/Errno.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-4
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/FileOps.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-5
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/KernelOps.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-6
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ModuleOps.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-7
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/ObjectSpace.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-8
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Builtins/UnboundMethod.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-9
*
Merlin/Main/Languages/Ruby/Libraries.LCA_RESTRICTED/Initializers.Generated.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-10
*
Merlin/Main/Languages/Ruby/Ruby/Builtins/RubyClass.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-11
*
Merlin/Main/Languages/Ruby/Ruby/Runtime/Calls/ProtocolConversionAction.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-12
*
Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyContext.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-13
*
Merlin/Main/Languages/Ruby/Ruby/Runtime/RubyExceptions.cshttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-14
*
Merlin/Main/Languages/Ruby/Tests/Interop/uncategorized_spec.rbhttp://github.com/shri/ironruby/commit/31d3ab9297eac7ac61dd9cee8fd98558d509886e#diff-15

Also added mocha gem :
http://github.com/shri/ironruby/commit/bdaf0adb28e0a075e5632e3930feaa4bcee1ad30

Thanks,
Shri