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 
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
more details
Please don’t UPCASE all your classes man … 