# Code Review: MOX4

**URL:** <https://www.ruby-forum.com/t/code-review-mox4/144648>\
**Category:** IronRuby\
**Created:** [July 31, 2008, 7:37pm UTC](https://www.ruby-forum.com/t/code-review-mox4/144648 "2008-07-31T19:37:51Z")\
**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:** [July 31, 2008, 7:37pm UTC](https://www.ruby-forum.com/t/code-review-mox4/144648/1 "2008-07-31T19:37:51Z")

</div>

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

Next step towards meta-objects in Ruby.

Ruby:

- 

```
Removes dependency on RuleBuilder from all rule generators in 

```

Ruby. The generators use a MetaObjectBuilder that stores restriction  
expression, condition expression, result expression and temp variables  
defined in the expressions. MetaObjectBuilder can produce both  
RuleBuilder’s Test and Target, and MetaObject’s Expression and  
Restrictions. Currently it is called only to produce rules, but as soon  
as we have MetaObjects for all Ruby dynamic objects we can start  
producing MetaObjects w/o changes to the rule generators.

DLR (Microsoft.Scripting):

- 

```
Removes ArgumentKind.Block - it's not needed anymore.

```

- 

```
Adds RuleBuilder.AddTemporary(). Allows to add variables on the 

```

rule after the tree is generated. This is especially useful for  
variables that are defined in test expression and used in target  
expression. Without this method it’s not possible to generate a tree  
with such variables first and then create the rule.

- 

```
Removes a dependency on RuleBilder from 

```

BindingTarget.MakeExpression. Only CodeContext expression is needed  
there.

Tomas
