Forum: Ruby Modules, require, include, toplevel constants and Watir

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
C6621b3f2c84bbc0a7b06b06c6ed8e28?d=identicon&s=25 Chad M. (chadwickvm)
on 2009-03-25 22:21
Hi guys,

Despite working in IT for almost 2 years now I consider myself a
programming novice. Its probably my art degree. Anyway, I'm having
trouble figuring out what is going on here.

I'm using Watir here, but I suppose this would hold true with any

To give a little background. As far as I can tell, the Watir module
holds the IE class which holds the WinClicker class

This is the code:

require 'watir'

This will throw an error saying that the constant WinClicker is

Now, if I do this

require 'watir'


It works.

It also works with:

require 'watir'
include Watir

However, it is not a good idea to include Watir. In 1.6.2 of watir,
including it can break scripts and I'm told its generally a poor idea to
include at the global level.

If I use:

require 'watir'

I get a warning in the way I am referencing the toplevel class

My questions are:
1. What is Watir::IE doing in the second code example that allows me to
then use WinClicker
2. Is doing a Watir::IE the same as including Watir?
3. What does that warning when referencing Watir::IE::WinClicker imply
and what problems can arise from doing that?
4. If anyone knows, how should I be dealing with the creation of new
WinClicker objects so as to avoid the warning AND avoid including Watir.

Thanks a million.
68db3bafb0a990bf605c4cf62bf85db0?d=identicon&s=25 Bret Pettichord (Guest)
on 2009-03-26 01:40
(Received via mailing list)
On Wed, Mar 25, 2009 at 4:18 PM, Chad M. <> wrote:

> 1. What is Watir::IE doing in the second code example that allows me to
> then use WinClicker

There is an autoload set on Watir::IE. This is new with Watir 1.6.

It is the same as "require 'watir/ie'". This is probably what you want
to do

Bret Pettichord
CTO, WatirCraft LLC,
Lead Developer, Watir,


Watir Training: Portland/Beaverton April 16-17
C6621b3f2c84bbc0a7b06b06c6ed8e28?d=identicon&s=25 Chad M. (chadwickvm)
on 2009-03-27 10:59
That explains a lot.  Thanks Bret.  As it turns out, I was previously
using 'watir/ie' before but I had the insane notion that the ie.rb
file's name was in caps so I was using 'watir/IE' which gave a different
warning about the constant ATTACHER already being initialized.  I am
totally baffled on what made me think this but what can ya do.  Anyway,
thanks again.

This topic is locked and can not be replied to.