# Keywords¶ ↑

The following keywords are used by Ruby.

__ENCODING__

  The script encoding of the current file. See `Encoding`.

__LINE__

  The line number of this keyword in the current file.

__FILE__

  The path to the current file.

BEGIN

  Runs before any other code in the current file. See miscellaneous syntax

END

  Runs after any other code in the current file. See miscellaneous syntax

alias

  Creates an alias between two methods (and other things). See modules and classes syntax

and

  Short-circuit Boolean and with lower precedence than `&&`

begin

  Starts an exception handling block. See exceptions syntax

break

  Leaves a block early. See control expressions syntax

case

  Starts a `case` expression. See control expressions syntax

class

  Creates or opens a class. See modules and classes syntax

def

  Defines a method. See methods syntax

defined?

  Returns a string describing its argument. See miscellaneous syntax

do

  Starts a block.

else

  The unhandled condition in `case`, `if` and `unless` expressions. See control expressions

elsif

  An alternate condition for an `if` expression. See control expressions

end

  The end of a syntax block. Used by classes, modules, methods, exception handling and control expressions.

ensure

  Starts a section of code that is always run when an exception is raised. See exception handling

false

  Boolean false. See literals

for

  A loop that is similar to using the `each` method. See control expressions

if

  Used for `if` and modifier `if` statements. See control expressions

in

  Used to separate the iterable object and iterator variable in a `for` loop. See control expressions It also serves as a pattern in a `case` expression. See pattern matching

module

  Creates or opens a module. See modules and classes syntax

next

  Skips the rest of the block. See control expressions

nil

  A false value usually indicating “no value” or “unknown”. See literals

not

  Inverts the following boolean expression. Has a lower precedence than `!`

or

  Boolean or with lower precedence than `||`

redo

  Restarts execution in the current block. See control expressions

rescue

  Starts an exception section of code in a `begin` block. See exception handling

retry

  Retries an exception block. See exception handling

return

  Exits a method. See methods. If met in top-level scope, immediately stops interpretation of the current file.

self

  The object the current method is attached to. See methods

super

  Calls the current method in a superclass. See methods

then

  Indicates the end of conditional blocks in control structures. See control expressions

true

  Boolean true. See literals

undef

  Prevents a class or module from responding to a method call. See modules and classes

unless

  Used for `unless` and modifier `unless` statements. See control expressions

until

  Creates a loop that executes until the condition is true. See control expressions

when

  A condition in a `case` expression. See control expressions

while

  Creates a loop that executes while the condition is true. See control expressions

yield

  Starts execution of the block sent to the current method. See methods