Skip to Content
Head First Ruby
book

Head First Ruby

by Jay McGavren
August 2015
Beginner
572 pages
13h 48m
English
O'Reilly Media, Inc.
Content preview from Head First Ruby

Chapter 10. Comparable and Enumerable: Ready-Made Mixes

image with no caption

You’ve seen that mixins can be useful. But you haven’t seen their full power yet. The Ruby core library includes two mixins that will blow your mind. The first, Comparable, is used for comparing objects. You’ve used operators like <, >, and == on numbers and strings, but Comparable will let you use them on your classes.

The second mixin, Enumerable, is used for working with collections. Remember those super-useful find_all, reject, and map methods that you used on arrays before? Those came from Enumerable. But that’s a tiny fraction of what Enumerable can do. And again, you can mix it into your classes. Read on to see how!

Mixins built into Ruby

Now that you know how modules work, let’s take a look at some useful modules that are included with the Ruby language...

Remember comparing numbers using <, >, and == in the guessing game in Chapter 1? You may recall that comparison operators are actually methods in Ruby.

All the numeric classes need comparison operators, so the creators of Ruby could have just added them to the Numeric class, which is a superclass of Fixnum, Float, and all the other numeric classes in Ruby.

But the String class needs comparison operators, too. And it doesn’t seem wise to make String a subclass of Numeric. For one thing, String would inherit a bunch of methods like abs (which gives the absolute value of a number) ...

Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.

Read now

Unlock full access

More than 5,000 organizations count on O’Reilly

AirBnbBlueOriginElectronic ArtsHomeDepotNasdaqRakutenTata Consultancy Services

QuotationMarkO’Reilly covers everything we've got, with content to help us build a world-class technology community, upgrade the capabilities and competencies of our teams, and improve overall team performance as well as their engagement.
Julian F.
Head of Cybersecurity
QuotationMarkI wanted to learn C and C++, but it didn't click for me until I picked up an O'Reilly book. When I went on the O’Reilly platform, I was astonished to find all the books there, plus live events and sandboxes so you could play around with the technology.
Addison B.
Field Engineer
QuotationMarkI’ve been on the O’Reilly platform for more than eight years. I use a couple of learning platforms, but I'm on O'Reilly more than anybody else. When you're there, you start learning. I'm never disappointed.
Amir M.
Data Platform Tech Lead
QuotationMarkI'm always learning. So when I got on to O'Reilly, I was like a kid in a candy store. There are playlists. There are answers. There's on-demand training. It's worth its weight in gold, in terms of what it allows me to do.
Mark W.
Embedded Software Engineer

You might also like

The Ruby Programming Language

The Ruby Programming Language

David Flanagan, Yukihiro Matsumoto
Beginning Ruby 3: From Beginner to Pro

Beginning Ruby 3: From Beginner to Pro

Carleton DiLeo, Peter Cooper

Publisher Resources

ISBN: 9781449372644Errata Page