Require and OO

A

aidy

Hi,

[wasn't sure which group to submit this post to Watir or Ruby, but even
though I use Watir, I think it is more of a Ruby question]

If I use 'require' for example on two files within a master file:

require 'browser'
require 'logon'

And these two files contain this code


browser.rb

require 'watir'

def start_browser (url)
@ie = Watir::IE.new
@ie.goto(url)
@ie.maximize()
end


logon.rb

def login (username, password)

@ie.link:)text, 'Log in').click
@ie.text_field:)name, "userid").set(username)
@ie.text_field:)name, "password").set(password)
@ie.button:)value,'Log in').click
end

Will the i.e. instance be the same in logon as browser, or are they
different objects?
Should I be using this pre-fix '@@'?

I am uncomfortable that Ruby allows me to slide into functional
programming while I am consciously trying to move to OO.Is this a
problem do you think, for Web scripting?

Aidy
 
T

Timothy Goddard

Ruby code is never truly functional. All code written at the base level
is executed in the context of a singleton instance of Object called,
imaginatively, main. This should work, although it isn't a good idea.
This is really no different from using a global variable. Try wrapping
the whole thing up in a class.

e.g.

require 'watir'

class Browser
def initialize(url)
@ie = Watir::IE.new
@ie.goto(url)
@ie.maximize()
end
def login(username, password)
@ie.link:)text, 'Log in').click
@ie.text_field:)name, "userid").set(username)
@ie.text_field:)name, "password").set(password)
@ie.button:)value,'Log in').click
end
end

b = Browser.new

This is a much cleaner way of solving the problem. Ruby is fairly
lenient and doesn't force you to use clean concepts all the time like
languages such as Java do (this has upsides and downsides), but you
will get the most out of it if you use it properly.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top