# Code Review: DefaultBinderRefactoring2

**URL:** <https://www.ruby-forum.com/t/code-review-defaultbinderrefactoring2/164150>\
**Category:** IronRuby\
**Created:** [March 28, 2009, 7:47pm UTC](https://www.ruby-forum.com/t/code-review-defaultbinderrefactoring2/164150 "2009-03-28T19:47:58Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![grujildo](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/g/94ad74/32.png) [@grujildo](https://www.ruby-forum.com/u/grujildo)\
**Post date:** [March 28, 2009, 7:47pm UTC](https://www.ruby-forum.com/t/code-review-defaultbinderrefactoring2/164150/1 "2009-03-28T19:47:58Z")

</div>

tfpt review “/shelveset:DefaultBinderRefactoring2;REDMOND\tomat”

Outer DLR, Python:

Refactors default method call binder:

- Moves SiteLocalStorage to Python. Ruby uses a different storage class  
and it’s very simple for languages to define and use their own.
- ActionBinder.BindSpecialParameter shouldn’t deal with CodeContext and  
SiteLocalStorage - moved to PythonBinder.
- Moved ContextArgBuilder and SiteLocalStorageArgbuilder to Python.
- ArgBuilder.CanGenerateDelegate needs to be protected so that custom  
ArgBuilders can override it.
- Renames various identifiers to make naming consistent and more  
meaningful.
- Simplifies some methods in MethodBinder and MethodCandidate, removes  
dependency on CodeContext - this was only used by JScript (disables a  
couple of JS tests).

Ruby:

- Replaces calls to obsolete methods of default method binder with  
those using meta-objects.

Tomas
