Re: mspec error undefined method `filtered' for MSpecScript:Class


#1

The gem won’t work for now. Make sure that the mspec that runs is the
Mspec in Merlin/External.LCA_RESTRICTED.

JD


#2

Sounds like you’re not running Dev.bat. Before doing anything with
IronRuby (when you get it from the git repo), please run
Merlin/Main/Languages/Ruby/Scripts/Dev.bat. That will make sure things
are all set up properly. To make this easy, just create a ironruby.bat
file somewhere which calls Dev.bat. I even add that as the first
shortcut in my quicklaunch toolbar so WIN+1 will launch a dev.bat
cmd.exe window.

~js


#3

Thank you, I did run the dev.bat but still get same error. I’m
investigating why it load from gems rather than what get in .mspecrc
file.

Bests,

  • Jirapong

#4

If you have RUBYOPTS set to “-rubygems” (as is done by default by the
MRI one-click installer), RubyGems will get first shot at finding
“mspec” and will look at installed gems before looking at $LOAD_PATH.
That could also be the issue. Just using the different version of
mspec.bat may not fix the issue as it just runs the first “ruby.exe” it
finds on the path, and could still get tripped up over the “-rubygems”
issue…

Jim, how different are the two versions of mspec supposed to be? Do you
know what the RubySpec team’s plan is to unify them? Do we know why the
gem will not work, and is there a bug to track the issue?


#5

Thank you Jimmy. That’s work!

gem uninstall mspec
del c:\ruby\bin\mspec*

Bests,
-Jirapong


#6

It’s because the “mspec” command you’re running lives in your
C:\ruby\bin directory, not
C:…\ironruby\Merlin\External.LCA_RESTRICTED\Languages\IronRuby\mspec\mspec\bin.
Running “where mspec” should show something like this:

C:\dev\jschementi-ironruby\Merlin\Main\Languages\Ruby>where mspec
C:\dev\jschementi-ironruby\Merlin\External.LCA_RESTRICTED\Languages\IronRuby\mspec\mspec\bin\mspec
C:\dev\jschementi-ironruby\Merlin\External.LCA_RESTRICTED\Languages\IronRuby\mspec\mspec\bin\mspec.bat

If you don’t really need the mspec gem installed, removing that would
probably remedy this.