Question: Sorry about the wording of the question, I don't really know how to put it. What I mean is, how could I do this:

```
class Test
  def doSomething
    puts "I'm working"
  end
end

class numberTwo
  def doSomethingElse
    subject.doSomething
    puts "Doing other things"
  end
end
subject = Test.new
otherObject = numberTwo.new
otherObject.doSomethingElse

```

What I want is when otherObject.doSomethingElse is called, subject.doSomething to also be called. I'm not sure how you can do this, or if it is possible. 
Thanks in advance.

Answer: 
If you want a method in one class to know about an instance of another class (an instance is created when you call "new", and assigned to a variable, like subject), the variable either needs to 

a) be global, as glenn mcdonald indicated by suggesting you use $subject. The $ indicates a global variable

b) be a member of the class from which your calling, so it would not be created outside the class. So subject would be a member variable of NumberTwo, and initialized in NumberTwo's constructor perhaps

c) be passed in as a parameter.

It seems to me that the easiest way given what you're showing us, would be to pass in subject as a parameter.

```
class NumberTwo
  def doSomethingElse(subject)
     subject.doSomething
  end
end

subject = Test.new
otherObject = numberTwo.new
otherObject.doSomethingElse(subject)

```
I'm not sure if this is what you mean, but you can create a class method:

```
class Test
  def self.doSomething
    puts "I'm working"
  end
end

```

That should let you call that method without instantiating an object. But then your `subject.doSomething` line should be `Test.doSomething` .

Sorry if I misunderstood your question.