# Code Review: RubyClrInterop05

**URL:** <https://www.ruby-forum.com/t/code-review-rubyclrinterop05/154002>\
**Category:** IronRuby\
**Created:** [November 24, 2008, 2:25pm UTC](https://www.ruby-forum.com/t/code-review-rubyclrinterop05/154002 "2008-11-24T14:25:50Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![curthibbs](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/c/ac91a4/32.png) [@curthibbs](https://www.ruby-forum.com/u/curthibbs)\
**Post date:** [November 24, 2008, 2:25pm UTC](https://www.ruby-forum.com/t/code-review-rubyclrinterop05/154002/1 "2008-11-24T14:25:50Z")

</div>

tfpt review “/shelveset:RubyClrInterop05;REDMOND\curth”

Comment :  
A smÃ¶rgÃ¥sbord of GetMemberNames  
Changes to Python, DLR outer ring:  
Removed OldGetMemberNames from API and moved legacy Python  
functionality into language context  
Fixed/added some comments  
Changes to Ruby:  
Use the RubyContext associated with the RubyClass for virtual  
method implementation instead of the default context  
Implement ICustomTypeDescriptor on RubyObject, typegen’d classes  
Moved ForEachMember functionality onto RubyModule where it can be  
used by CustomTypeDesc, MO  
Implemented GetDynamicMemberNames on RubyObject, RubyClass MOs  
Note to self: in the future, we could create a generic custom type  
descriptor on top of a MO
