Book Image

The Ruby Workshop

By : Akshat Paul, Peter Philips, Dániel Szabó, Cheyne Wallace
Book Image

The Ruby Workshop

By: Akshat Paul, Peter Philips, Dániel Szabó, Cheyne Wallace

Overview of this book

The beauty of Ruby is its readability and expressiveness. Ruby hides away a lot of the complexity of programming, allowing you to work quickly and 'do more' with fewer lines of code. This makes it a great programming language for beginners, but learning any new skill can still be a daunting task. If you want to learn to code using Ruby, but don't know where to start, The Ruby Workshop will help you cut through the noise and make sense of this fun, flexible language. You'll start by writing and running simple code snippets and Ruby source code files. After learning about strings, numbers, and booleans, you'll see how to store collections of objects with arrays and hashes. You'll then learn how to control the flow of a Ruby program using boolean logic. The book then delves into OOP and explains inheritance, encapsulation, and polymorphism. Gradually, you'll build your knowledge of advanced concepts by learning how to interact with external APIs, before finally exploring the most popular Ruby framework ? Ruby on Rails ? and using it for web development. Throughout this book, you'll work on a series of realistic projects, including simple games, a voting application, and an online blog. By the end of this Ruby book, you'll have the knowledge, skills and confidence to creatively tackle your own ambitious projects with Ruby.
Table of Contents (14 chapters)

Encapsulation

Encapsulation is a fundamental concept in OOP that deals with keeping some data (variables) and behavior (methods) private and protected from the other code that interacts with our class. We want to design our classes in such a way that we create a well-defined interface for them that rarely, or never, changes. This is so other code that relies on these classes is not dependent on the low-level implementation details of those classes. Therefore, we need a way to designate whether a method is public or private inside a class. In Ruby, there are three levels of privacy (also known as visibility) of methods:

  • Public
  • Private
  • Protected

Public Methods

This is the default level of the visibility of methods in Ruby classes. When we define a method on a class, or use any of the attr_ methods, such as attr_accessor, attr_reader, and attr_writer, we are declaring public methods.

Consider the following code for the User class:

class User
  ...