Kick off your book project in 3 hours! Live workshop on Zoom. You’ll leave with a real book project, progress on your first chapter, and a clear plan to keep going. Saturday, June 6, 2026. Learn more…

Leanpub Header

Skip to main content

Meet Ruby

The Ruby book that never gets old — updated with every major release, free forever for everyone who buys it. Written by the author of the first Ruby book ever published in Brazil, and believed to be the first book worldwide to cover RubyLLM. Now in English for the first time.

This book is a translation into English of Conhecendo Ruby which was originally written in Portuguese (Brazilian)

Minimum price

$29.00

$29.00

You pay

Author earns

$
PDF
663
Pages
About

About

About the Book

Meet Ruby — The book that grows with the language.

For over 20 years, this book has been the definitive Ruby reference for thousands of Brazilian developers. Written, maintained and updated since the early days of Ruby in Brazil — when almost nothing existed in Portuguese — it became the foundation for a generation of Ruby developers in the country.

Now, for the first time, it's available in English.

This isn't a snapshot. It's a living book.

Most technical books are written once and slowly become obsolete. Meet Ruby works differently. Every major Ruby release brings a new updated edition — and everyone who bought it receives the new version automatically, at no extra cost. No subscriptions. No upgrade fees. No hunting for the latest version. Buy once, stay current forever.

Beyond the annual updates, smaller revisions, corrections and new content are added throughout the year as the language evolves and the community grows.

What's inside

At more than 600 pages, Meet Ruby covers Ruby in depth — from the fundamentals to advanced topics that most books haven't touched yet:

  • Believed to be the first book worldwide to cover RubyLLM, still adding more content!
  • Among the first books covering Ractors, Ruby's modern concurrency model

This is a book written by someone who has been using, teaching and writing about Ruby for over two decades — not assembled from documentation.

A commitment you can count on

I've maintained this book in Portuguese for over 20 years without abandoning it. That track record isn't accidental — it reflects how seriously I take the responsibility of being someone's primary Ruby reference.

For the English edition, I'm formally committing to at least 5 years of active maintenance and updates, conditioned on my health and well-being. If circumstances ever change, you'll be informed transparently and promptly. No surprises.

About the author

I'm the author of the first Ruby book ever published in Brazil. I've been writing, teaching and working with Ruby since the early 2000s — through every major version, every shift in the ecosystem, and every wave of new tooling. Meet Ruby is the distillation of all of that experience.

Share this book

This book is a translation into English of Conhecendo Ruby which was originally written in Portuguese (Brazilian)

Author

About the Author

Eustáquio Rangel de Oliveira Jr.

I've been working with Ruby since the early 2000s — before it was fashionable, before Rails made it mainstream, and long before most of the ecosystem we know today existed.

Over the past 20+ years I've trained developers across dozens of companies, delivered talks in the Ruby community, contributed to open source projects, and built production systems across a wide range of industries. The kind of experience that doesn't come from reading documentation — it comes from being in the trenches when things break, when requirements change, and when the language itself evolves under your feet.

I'm also the author of the first Ruby book ever published in Brazil, which I've maintained and updated continuously since it launched — not as a side project, but as a professional commitment to the community that trusted me.

Translations

Translations

Languages

Contents

Table of Contents

  1. About this book
  2. Ruby
    1. What is Ruby?
    2. Philosophy and Principles
    3. Practical Characteristics
    4. Installing Ruby
      1. Ubuntu
      2. OSX
      3. Windows
      4. RVM
        1. Installing a Ruby interpreter
  3. Language Basics
    1. Dynamic typing
    2. Strong typing
    3. Basic types
      1. Integers
        1. Fixnums
        2. Bignums
      2. Floating point
      3. BigDecimals
      4. Dates
      5. Times
      6. Rationals
      7. Booleans
      8. Nil
      9. Strings
      10. Substrings
      11. Concatenating Strings
      12. Encodings
      13. Variables are references in memory
      14. Freezing objects explicitly
      15. Some String methods and tricks
      16. Symbols
        1. The philosophy of symbols
      17. Regular expressions
        1. Groups
        2. Named groups
        3. Accented characters
        4. Timeout
      18. Arrays
      19. Duck Typing
      20. Sets
      21. Ranges
      22. Hashes
      23. Code blocks
      24. Type conversions
      25. Base conversions
      26. Exception handling
        1. Raising exceptions
        2. Discovering the previous exception
        3. Creating our own exceptions
        4. Comparing exceptions
        5. Using catch and throw
    4. Control structures
      1. Conditionals
        1. if
        2. unless
        3. case
      2. Pattern matching
      3. Loops
        1. Magic comments
        2. while
        3. for
        4. until
      4. Operators
        1. Arithmetic operators
        2. Assignment operators
        3. Unary operators
        4. Logical operators
        5. Splat
        6. Bitwise operators
    5. Procs and lambdas
    6. Iterators
      1. Selecting elements
      2. Selecting elements that do not meet a condition
      3. Processing and modifying elements
      4. Detecting a condition in all elements
      5. Detecting if any element meets a condition
      6. Detecting and returning the first element that meets a condition
      7. Detecting maximum and minimum values
      8. Accumulating elements
      9. Splitting the collection into two Arrays based on a condition
      10. Traversing elements with their indices
      11. Sorting a collection
      12. Combining elements
      13. Traversing values upward and downward
      14. Filtering with grep
      15. Chaining iterators
      16. Random numbers
    7. Methods
      1. Returning values
      2. Sending values
      3. Sending and processing blocks and Procs
      4. Values are passed by reference
      5. Intercepting exceptions directly in the method
      6. Destructive and predicate methods
    8. Sending options on the command line
  4. Classes and objects
    1. Open classes
    2. Aliases
    3. Inserting and removing methods
    4. Inheritance
    5. Shallow and deep copying
    6. Metaclasses
    7. Class variables
    8. Fluent interfaces
    9. DSLs
    10. Class instance variables
    11. Playing with dynamic methods and hooks
    12. Delegation
    13. Operator-like methods
    14. Closures
    15. Static typing support
      1. Generating the RBS file
      2. Checking the types
    16. Prism
  5. Modules
    1. Mixins
      1. Composition versus inheritance
      2. Where methods are inserted
      3. Modules extending themselves
      4. Implementing singletons
      5. Refinements
    2. Namespaces
    3. TracePoint
    4. Ruby::Box
  6. RubyGems
    1. Installing manually
    2. Commands
    3. Using the installed gem
    4. Using memoization with the gem
    5. Managing with a Gemfile
    6. Tail call optimization
  7. Threads
    1. Threads
      1. Sending Procs
      2. Mutexes
      3. Queues
      4. Canceling
      5. Intercepting signals
    2. Fibers
    3. Continuations
    4. Parallel processes
    5. Benchmarks
      1. Measuring time
      2. Seeing where time is spent
    6. Ractors
      1. Understanding the Actor Model
      2. Getting to know Ractor::Port
      3. Reusing Ports
      4. Isolation
      5. Waiting
      6. Copying and moving
      7. Creating pools
      8. Checking parallelism
      9. Sharing Procs and lambdas
      10. Error handling
      11. Recommendations
      12. Choosing between Threads, Fibers and Ractors
  8. JIT
    1. MJIT
    2. RJIT
    3. Enabling YJIT
    4. ZJIT
  9. Input and output
    1. Files
      1. FileUtils
      2. Zip files
      3. CSV
        1. Creating
        2. Reading
      4. XML
      5. XSLT
      6. JSON
      7. YAML
    2. Network protocols
      1. TCP
      2. UDP
      3. SMTP
      4. POP3
      5. FTP
      6. HTTP
      7. HTTPS
      8. SSH
    3. Operating system processes
      1. Backticks
      2. System
      3. Exec
      4. IO.popen
      5. Open3
    4. XML-RPC
      1. Python
      2. PHP
      3. Java
  10. JRuby
    1. Using Java classes from inside Ruby
    2. Using Ruby classes inside Java
  11. Databases
    1. Installing the necessary gems
    2. Opening the connection
    3. Executing queries
    4. Queries that do not return data
    5. Updating a record
    6. Deleting a record
    7. Queries that return data
    8. Prepared statements
    9. Metadata
    10. ActiveRecord
  12. C extensions
    1. Using external libs
      1. Writing the C code of the lib
    2. Using the shared lib
  13. Garbage collector
    1. Phase 1: Initial State
    2. Phase 2: Unreachable Object
    3. Phase 3: Mark Phase
    4. Phase 4: Sweep Phase
    5. Heap Structure
      1. Young Space
      2. Old Space
    6. Types of collection
      1. Minor GC
      2. Major GC
      3. Object promotion
    7. This is not a C book, but ...
    8. This is still not a C book, but ...
      1. A small detail: not every String uses malloc/free
  14. Testing
    1. Starting with the classic API
    2. Failing
    3. Pending
    4. Omitted
    5. Notifications
    6. Assertions
    7. Modernizing the tests
      1. Randomizing the tests
      2. Testing with specs
      3. Benchmarks
    8. Mocks
    9. Stubs
    10. Expectations
    11. Different output formats
    12. Debugging
    13. Continuous testing
      1. Running tests automatically
      2. Running only selected tests
  15. Building gems
    1. Creating the gem
    2. Testing the gem
    3. Building the gem
    4. Publishing the gem
      1. Publishing locally
      2. Publishing to the official repository
    5. Extracting a gem
    6. Signing a gem
      1. Creating a certificate
      2. Adapting the gem to use the certificate
      3. Building and publishing the signed gem
      4. Using the signed gem
      5. Always using signed gems
  16. Rake
    1. Defining a task
    2. Namespaces
    3. Dependent tasks
    4. Running tasks in other programs
    5. Different files
    6. Tasks with file names
    7. Tasks with file lists
    8. Rules
    9. Extending
  17. AI
    1. The RubyLLM gem
      1. Creating a chat
        1. Text chat
        2. Interpreting an image
        3. Interpreting a video
        4. Interpreting a document
        5. Interpreting code
        6. Interpreting audio
        7. Using static methods
        8. Creating images
  18. Generating documentation
    1. Rdoc
    2. YARD
  19. Challenges
    1. Challenge 1
    2. Challenge 2
    3. Challenge 3
    4. Challenge 4
    5. Challenge 5
    6. Challenge 6
  20. Companies

Get the free sample chapters

Click the buttons to get the free sample in PDF or EPUB, or read the sample online here

Other books by this author

Other books by this author

The Leanpub 60 Day 100% Happiness Guarantee

Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.

You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!

So, there's no reason not to click the Add to Cart button, is there?

See full terms...

Earn $8 on a $10 Purchase, and $16 on a $20 Purchase

We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.

(Yes, some authors have already earned much more than that on Leanpub.)

In fact, authors have earned over $15 million writing, publishing and selling on Leanpub.

Learn more about writing on Leanpub

Free Updates. DRM Free.

If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).

Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.

Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.

Learn more about Leanpub's ebook formats and where to read them

Write and Publish on Leanpub

You can use Leanpub to easily write, publish and sell in-progress and completed ebooks and online courses!

Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks.

Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. (Or, if you are producing your ebook your own way, you can even upload your own PDF and/or EPUB files and then publish with one click!) It really is that easy.

Learn more about writing on Leanpub