# Code Review: interop3

**URL:** <https://www.ruby-forum.com/t/code-review-interop3/162234>\
**Category:** IronRuby\
**Created:** [March 7, 2009, 8:14am UTC](https://www.ruby-forum.com/t/code-review-interop3/162234 "2009-03-07T08:14:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![raker\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ecae2f/32.png) [@raker\_t](https://www.ruby-forum.com/u/raker_t)\
**Post date:** [March 7, 2009, 8:14am UTC](https://www.ruby-forum.com/t/code-review-interop3/162234/1 "2009-03-07T08:14:58Z")

</div>

tfpt review “/shelveset:interop3;REDMOND\jdeville”  
Comment :

- Rearrange .NET tests according to the new test structure
- Add the csc method to inline C# fixtures into the Ruby code  
\*\* Should csc.bat be in a path’d scripts directory? Or is it okay  
having to specifiy a path to it?
- Modify both dev.bats to add  
Merlin\External\Languages\IronRuby\mspec\mspec\bin to %PATH%
- Modify IronRuby’s dev.bat to setup ~/.mspecrc if ~/.mspecrc doesn’t  
exist.  
\*\* Should this modification be in both? If so, why not have one  
Dev.bat that conditionally loads internal alias’s?
- Make the default.mspec, which becomes ~/.mspecrc, simply load our  
default configuration file from  
Merlin\External\Languages\IronRuby\mspec\default.mspec

---

<div class="post-metadata">

**Author:** ![raker\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ecae2f/32.png) [@raker\_t](https://www.ruby-forum.com/u/raker_t)\
**Post date:** [March 10, 2009, 1:08am UTC](https://www.ruby-forum.com/t/code-review-interop3/162234/2 "2009-03-10T01:08:55Z")

</div>

Looks good. About organization, I gave F2F feedback. Small comments  
about the nitty gritty…

In assembly/access/dependencies1, can A.dll and B.dll also be generated  
using some overloaded version of csc which takes an assembly name? Not a  
big deal for now since there are only two assemblies checked in, but if  
you are going to need more, you might as well use the csc infrastructure  
which you are building up anyway.

There is Tests\interop\assembly.cs as well as Tests\interop\assembly  
folder. Would be nice if the former was called Fixtures.cs or something  
like that to disambiguate the two.

Could you add a comment to the file saying it is generated by a script,  
or name it as foo.Generated.cs so it obvious that you should not edit it  
by hand?

Thanks,  
Shri

---

<div class="post-metadata">

**Author:** ![raker\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ecae2f/32.png) [@raker\_t](https://www.ruby-forum.com/u/raker_t)\
**Post date:** [March 11, 2009, 10:00pm UTC](https://www.ruby-forum.com/t/code-review-interop3/162234/3 "2009-03-11T22:00:06Z")

</div>

FYI review:  
Modified csc.rb to generate arbitrary assemblies and renamed the main  
generated code to fixtures.generated.cs.

JD  
tfpt review “/shelveset:interop4;REDMOND\jdeville”  
Comment :

- Rearrange .NET tests according to the new test structure
- Add the csc and assembly methods to inline C# fixtures into the Ruby  
code
- Modify both dev.bats to add  
Merlin\External\Languages\IronRuby\mspec\mspec\bin to %PATH%
- Modify IronRuby’s dev.bat to setup ~/.mspecrc if ~/.mspecrc doesn’t  
exist.  
\*\* Should this modification be in both? If so, why not have one  
Dev.bat that conditionally loads internal alias’s?
- Make the default.mspec, which becomes ~/.mspecrc, simply load our  
default configuration file from  
Merlin\External\Languages\IronRuby\mspec\default.mspec

---

<div class="post-metadata">

**Author:** ![raker\_t](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/ecae2f/32.png) [@raker\_t](https://www.ruby-forum.com/u/raker_t)\
**Post date:** [March 11, 2009, 10:18pm UTC](https://www.ruby-forum.com/t/code-review-interop3/162234/4 "2009-03-11T22:18:58Z")

</div>

Yup, you should update both copies of dev.bat since we do want mspec  
easily (and similarly) usable with TFS as well. You could combine the  
two copies if you want. You will have to conditionalize other things  
like setting of RUBY18\_EXE etc as well. You can diff the two copies to  
see everything that would need to be conditionalized. When I cloned it,  
it was simpler to clone it since it’s a small file anyway, and my  
thinking was that I can go back and refactor it if needed once things  
settles down.
