I far prefer:

```ruby
def self.foo
end
```

... to...

```ruby
class << self
  def foo
  end
end
```

... or any variation thereof (including `extend self`).  The reason for this is intent-revealingness. If I miss the single line `extend self` at the top of the file, I'm not going to now that all of these methods are class methods.  Similarly, with `class << self`, if there are many class methods, given a single screen of code or the results of a grep, it is not at all obvious that these are class methods.

In code, I most always choose clarity over conciseness.  Now if only I did that when I was speaking.