Believe it or not, those are method calls.
The first thing to remember in Ruby is that a method call does *not*
require parentheses, so the following two lines are equivalent:
validates_presence_of :title, :description
The second thing to remember is that Ruby classes are "open" ... that
is, at run time, you can add new method definitions, or change
existing ones ... and that's the sort of thing that goes on in a lot
of the magic that Rails supports. This syntactical quirk of Ruby,
plus a pretty elegant design of helper methods in Rails, gives you a
feel that you are using a "domain specific language" to specify the
characteristics of your model objects, even though ... deep down ...
it's just a bunch of Ruby methods provided by Rails.
This doesn't quite cover *all* the magic that is going on, however ...
you'll notice that your ActiveRecord classes can deal with method
calls like name() or name=() if the underlying table has a "name"
column. These capabilities are not actually provided by specific
methods ... to understand the nitty gritty details, you'll have to
become familiar with Ruby concepts like the method_missing() method.
But it's all open source, and there's lots of people willing to help
you figure that stuff out if you want to.
In the mean time, it's sure fun (coming from a Java background like I
do) to *not* have to write getter and setter methods, or any of that
other stuff that Java frameworks require :-).