Friday, April 09, 2010

Non SAP: Install gem ruby-debug-ide in NetBeans

Had problems debugging Ruby code in NetBeans when using the platform Ruby 1.9 as it was complaining of not having fast debugger. Tried to install gem ruby-debug-ide via the tools options but resulted in error.

From the blog the corrections were

    1. Download Ruby DevKit. (The links brings you to a .7z file, that you can open with 7Zip).
    2. Open the .7z file and follow the instructions in INSTALL file: basically they said to extract top-level folders (i.e. bin and devkit) to the Ruby's root folder and to modify the contents of fstab file according to your installation. In my case, my Ruby folder was: C:\programmi\ruby19, so my fstab file contents became:
      C:\Programmi\Ruby19\devkit\gcc\3.4.5\mingw32 /mingw
      C:\Programmi\Ruby19\devkit\msys\1.0.11\usr\local /usr/local
    3. Execute the command gem install ruby-debug-ide19
      (Note that's fundamental to install ruby debug ide as ruby-debug-ide19 because RubyMine looks for a gem with name ruby-debug-ide19 and not ruby-debug-ide, as you would expect). Also be patient because the command takes a while to complete.
    4. Open with a text editor the file command.rb that's part of the installed ruby-debug-ide19 gem. In my case, that file was under folder C:\Programmi\Ruby19\lib\ruby\gems\1.9.1\gems\ruby-debug-ide19-0.4.12\lib\ruby-debug
    5. Modify the beginning of procedure debug_eval (at line 120) so to enter a new statement between statements str = str.to_s and max_time = 10. The new statement to enter is:
      return "" if str == "$FILENAME"
      At the end, the procedure debug_eval should begin like this:
      def debug_eval(str, b = get_binding)
        begin str = str.to_s
      return "" if str == "$FILENAME"
        max_time = 10
        to_inspect = str.gsub(/\\n/, "\n")
    6. Save the file