[SOLVED]Calling a method from another class

I’m learning about method calling and object oriented programming in
Ruby. The book I’m reading gives an example about calling a method.

I have two methods:

a mainMethod and DOG class.

My mainMethod reads as follows:

require_relative ‘dog’
class MAINMETHOD
DOG.bark
end

My DOG class reads as follows:

class DOG
def bark
puts “woof”
end
end

Whenever I try to run mainMethod, I get “undefined method `bark’ for
DOG:Class (NoMethodError)”

Am I doing something wrong? Please help :confused:

Figured it out, can’t believe I didn’t think of it earlier-- I
dishonored my Java knowledge.

I completely forgot to call dog:

dogCaller = DOG.new
dogCaller.bark

Got caught up with learning Ruby and forgot my older principles.

the way bark is defined it is an instance method
you need to create an instance of the DOG class to call it:
DOG.new.bark

or you change the definition of bark to be a class method:
def self.bark

which then can be called using the class

have a look at
http://rubymonk.com/learning/books/4-ruby-primer-ascent/chapters/45-more-classes/lessons/113-class-variablesfor
more details

Please don’t UPCASE all your classes man … :stuck_out_tongue:

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs