You want to sharpen your Ruby?
In this series, we will start from the beginning and will discover every aspect of Ruby one step at a time.
Each post will include some theory but also exercise and solution.
If you have any questions/comments or you are new and need help, you can comment below or send me a message.
Run your Ruby code
No need to go through a complete install. Just go to this website https://replit.com/languages/ruby and start learning right now. You will have plenty of time to figure out the Ruby installation on your local machine later on...
If you’re new to programming, variables are the fundamental building blocks of a programming language as they are used to store different values that you want to process in your code.
Once the variable is store in program memory, it can be used later on.
For example, let say you want to store the user name you can use a variable call name and set its value to Mike Taylor.
name = 'Mike Taylor'
In Ruby string is enclosed with quotation marks.
The variable name we just created is a string variable. In Ruby, we don't have to specify the variable type.
Ruby is a Just-in-time (JIT) interpreted language. Which automatically recognizes the data type based on what variables are stored.
Here are some Ruby basic variables types and how to create them
# string full_name = 'Mike Taylor' # integer number count = 20 # float number book_price = 15.80 # booleans active? = true admin_user? = false
Ruby also has more advanced variables types like an array, hash, structure, and class. We will cover all of those in detail later.
In Ruby, it is possible to output information to the console/terminal.
For example, let's send our name variable to the console
name = 'Mike Taylor' puts name
The puts method will take any value we give him and print it to the console...
name = 'Mike Taylor' puts 'Hello World' puts 'Hello', name
Hello World Hello Mike Taylor
As you can see we can send multiple values to puts method and he will display all of them.
Another Ruby method very similar to puts is the method print. Print can display something to the console but will not send the line break after each print. Example:
name = 'Mike Taylor' print 'Hello ', name
Hello Mike Taylor
How about getting info from the user. In Ruby we use the method gets to do just that
print 'Enter user name: ' name = gets
The console will then wait for user input:
Enter user name: _
The gets method will return everything you type plus a line break characters. If you don't want to read the line break characters use the chomp method to remove that last character
print 'Enter user name: ' name = gets.chomp
Everything in Ruby is an object
The following concept will be a bit more advance. Beginners could have hard time to fully understand this concept. (and it is ok).
In Ruby, everything is an object. Event types like integer, string, array are all objects. All Ruby objects inherit properties and methods from their parent object.
Here an example
name = 'Mike' puts name.upcase # MIKE
In this example, we use the method upcase to convert our string to upper case. How is that's possible? The name variable is a string and the string in Ruby is an object. All string objects have already many pre-build methods to help the developer.
The .upcase method is not the only method provided by the string object. There are many more methods available. We will discover some of those in future posts.
If you want to know all available methods for string or any other Ruby objects you can consult Ruby official documentation: https://www.ruby-lang.org/en/documentation/
We will come back later to this concept, but just keep it in your mind: Everything in Ruby is an object.
Create a little program that asks for the user name and age and save the result in the name and age variable.
Then display name and age variable in the console
print 'Enter user name: ' name = gets.chomp print 'Enter user age: ' age = gets.chomp puts 'The user name is: ', name puts 'The user age is: ', age
That's it for today. The journey just started, stay tuned for the next post very soon.
If you have any comments or questions please do so here or send me a message on Twitter.
Follow me: @EricTheCoder_