O'Reilly logo

Ruby Pocket Reference by Michael Fitzgerald

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

Methods

Methods provide a way to collect programming statements and expressions into one place so that you can use them conveniently and, if necessary, repeatedly. Most of the operators in Ruby are actually methods. Here is a simple definition of a method named hello, created with the keywords def and end:

def hello
  puts "Hello, world!"
end

hello # => Hello, world!

You can undefine a method with undef:

undef hello # undefines the method named hello

hello # try calling this method now
NameError: undefined local variable or method 'hello' for
main:Object
        from (irb):11
        from :0

Methods can take arguments. The repeat method shown here takes two arguments, word and times:

def repeat( word, times )
 puts word * times
end

repeat("Hello! ", 3) # => Hello! Hello! Hello!
repeat "Goodbye! ", 4 # => Goodbye! Goodbye! Goodbye!
Goodbye!

Parentheses

Parentheses are optional in most Ruby method definitions and calls. If you don’t use parentheses when calling a method that takes arguments, you may get warnings, depending on the argument types.

Return Values

Methods have return values. In other languages, you explicitly return a value with a return statement. In Ruby, the value of the last expression evaluated is returned, with or without an explicit return statement. This is a Ruby idiom. You can also define a return value explicitly with the return keyword:

def hello
  return "Hello, world!"
end

Method Name Conventions

Ruby has conventions about the last character in method names—conventions that are very common ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required