views:

406

answers:

5

What version of Ruby should I be using on a windows environment?

I'm trying to use Watir on 1.9 and it does not work. Will work on 1.8.6.

Any recomendations on which version to use and reasons why Watir does not work on 1.9

+1  A: 

There's no "correct" version. 1.8.6, 1.8.7 and 1.9.1 are all officially "recommended", which is not much help!

When 1.8.x gems don't work with 1.9.x under Windows, it's often the case that the gem - or one of its dependencies - includes a compiled element (a DLL, usually named with a .so extension) and that this component hasn't yet been compiled against mingw32, which is the standard for Ruby 1.9, whereas 1.8.6 and previous versions were compiled with the (old) MS Visual C.

Looking at the watir gem, I see it includes win32ole.so, which could be the problem. I'm not sure why that should have been necessary - it's part of the installed set for Windows. Perhaps the developers needed to ensure a fixed stable version so they forced a particular version rather than use the one from the library. Or maybe they fixed something? Dunno.

Beyond that, watir also depends on win32-api and nokogiri, both of which installed mswin32 versions on my machine and will need to have mingw32 versions to work with 1.9.

Not having a 1.9 instance to hand, I can't quickly tell if these versions exist.

Try looking for a mingw32 version of win32ole.so (probably somewhere like [ruby-dir]/lib/ruby/1.9/i386-mingw32) and putting it in place of the one used by watir.

Mike Woodhouse
+1  A: 

It's best to use the mingw versions of Ruby as supplied with the RubyInstaller. The older mswin32 versions of Ruby are considered legacy. Some gems need to be compiled from source (RedCloth being a good example) and for this you'll need to install the DevKit; however, watir doesn't need anything to be compiled - all of its gem dependencies come pre-compiled with mingw32 extensions (nokogiri and win32-api).

You can install multiple versions of Ruby (including JRuby and IronRuby) on Windows using Pik. Once you've installed the Pik gem, you can easily install new versions of ruby by issuing commands such as pik install ruby 1.9.1 or pik install jruby. You can even do pik install devkit to install the DevKit for all installed copies of Ruby. Documentation and lots of examples of use can be found here.

Charles Roper
+3  A: 

Watir.com recommends using Ruby 1.8.6-26. I have not tried it, but there is a fork of Watir that claims to be compatible with Ruby 1.9:

http://github.com/vapir/vapir

marc
+2  A: 

I use this one and it works:

>ruby -v
ruby 1.8.6 (2007-09-24 patchlevel 111) [i386-mswin32]
katmoon
A: 

To allow Watir (and FireWatir) to run on ruby 1.9.2 install devkit and follow procedures listed here : http://rubyinstaller.org/downloads/ Ruby Installer at GitHub

gem uninstall win32-api gem install win32-api --platform=ruby

Cliff