I have an ObjectMap class that contains other classes. I inherit from
the base class.Could someone tell me how I can run a nested class
method from the inherited class?
Here is the code:
<snip>
class ObjectMap
@@ie = Watir::IE.new #each page has a class where objects of that class are mapped
class Login
def username;@@ie.text_field(:name, 'user_name');end
def password;@@ie.text_field(:name, 'password');end
def remember_me;@@ie.checkbox(:name, 'remember_me');end
def sign_in;@@ie.button(:value, 'Sign in');end
end
class DashBoard #more methods
end
end
class A_Test < ObjectMap
@@ie.goto('www.updatelog.com')
@@ie.maximize #how do I run the username method?
@@ie.goto('www.updatelog.com')
@@ie.maximize #how do I run the username method?
login.username
end
-a
···
On Wed, 4 Apr 2007, aidy wrote:
Hi,
I have an ObjectMap class that contains other classes. I inherit from
the base class.Could someone tell me how I can run a nested class
method from the inherited class?
Here is the code:
<snip>
class ObjectMap
@@ie = Watir::IE.new #each page has a class where objects of that class are mapped
class Login
def username;@@ie.text_field(:name, 'user_name');end
def password;@@ie.text_field(:name, 'password');end
def remember_me;@@ie.checkbox(:name, 'remember_me');end
def sign_in;@@ie.button(:value, 'Sign in');end
end
class DashBoard #more methods
end
end
class A_Test < ObjectMap
@@ie.goto('www.updatelog.com')
@@ie.maximize #how do I run the username method?
end
<snip>
Need to, for example, run the username method?
Thanks
aidy
--
be kind whenever possible... it is always possible.
- the dalai lama
Note that username is not a method of ObjectMap but of the nested
class ObjectMap::Login
You could also do this from outside ObjectMap and it's subclasses like so:
ObjectMap::Login.new.username
If you made login and it's brethren class methods:
class Login
def self.username;@@ie.text_field(:name, 'user_name');end
def self password;@@ie.text_field(:name, 'password');end
def self.remember_me;@@ie.checkbox(:name, 'remember_me');end
def sign_in;@@ie.button(:value, 'Sign in');end
end
Then the above would be
class A_Test < ObjectMap
Login..username
end
or from outside:
ObjectMap::Login.username
Lacking more information about what you are really trying to
accomplish, your code looks a little odd to my eye.
ObjectMap seems like it really should be a module rather than a class
since from what you've shown it's really acting as what looks like a
name space.
You're using class variables which always raises a yellow flag in my mind.
Of course some of this could be Watir practice and I've never used Watir.
···
On 4/3/07, aidy <aidy.rutter@gmail.com> wrote:
Hi,
I have an ObjectMap class that contains other classes. I inherit from
the base class.Could someone tell me how I can run a nested class
method from the inherited class?
Here is the code:
<snip>
class ObjectMap
@@ie = Watir::IE.new #each page has a class where objects of that class are mapped
class Login
def username;@@ie.text_field(:name, 'user_name');end
def password;@@ie.text_field(:name, 'password');end
def remember_me;@@ie.checkbox(:name, 'remember_me');end
def sign_in;@@ie.button(:value, 'Sign in');end
end
class DashBoard #more methods
end
end
class A_Test < ObjectMap
@@ie.goto('www.updatelog.com')
@@ie.maximize #how do I run the username method?