Gems setup.rb continued

After a hack to work around the previous regular expression substitution
problem, we continue …

  1. throw exception “Malformed version number” (due to $1 returning nil
    after a successful match)

    • fixed my previous Regexp.=== patch to set CurrentMatch in current
      scope, see attached patch
  2. $1 still incorrectly returns nil

    • fixed trivial index range bug in RubyScope.GetCurrentMatchGroup,
      see attached patch
  3. Wrong number or type of arguments for method “module_eval”

    • created module_eval aliases for each class_eval method in
      Builtins.ModuleOps
    • corrected signatures for overloads that take a code string with
      file name and line number
    • implemented these new methods by calling the version that takes
      code string (and ignoring the other parameters)
      (see attached patch)
  4. Wrong number or type of arguments for method “private”

    • generalized ModuleOps.SetPrivateVisibility to take param array of
      obects rather than Symbols and cast them to symbols, see attached patch.
    • will need to do the same for protected, public and top-level
      versions of these methods
  5. Wrong number or type of arguments for method “define_method”

    • created overloaded version of define_method that takes method name
      string and converts it to Symbol, see attached patch.
  6. Undefined method “module_function”

    • not yet implemented in ModuleOps.
    • this one looks a little tricker, so I’ll leave it to someone with
      greater knowledge of the IronRuby internals …

Cheers, Wayne.

Wayne K.:

see attached patch
4) Wrong number or type of arguments for method “private”
6) Undefined method “module_function”
- not yet implemented in ModuleOps.
- this one looks a little tricker, so I’ll leave it to someone
with greater knowledge of the IronRuby internals …

Thanks for making this stuff happen, Wayne!

I’m working on a broad set of changes in the libraries right now. I’ll
review and integrate your changes ASAP.

Thanks,
-John