Comprehensive Ruby Tutorial
Introduction to Ruby
Ruby is a dynamic, open-source programming language with a focus on simplicity and productivity. It has an elegant syntax that is natural to read and easy to write.
Installation
To install Ruby, follow these steps:
Install Ruby using a version manager like RVM:
Or install Ruby using a package manager like Homebrew on macOS:
Basic Syntax
Let's start with a simple "Hello, World!" program in Ruby:
puts 'Hello, World!'
Save the above code in a file named hello.rb
and run it using the following command:
Variables
In Ruby, variables are used to store data. Here is an example:
name = 'Alice' age = 30 puts "Name: #{name}, Age: #{age}"
The output will be:
Data Types
Ruby supports several data types, including:
- Numbers: Integers and floating-point numbers
- Strings: Sequence of characters
- Arrays: Ordered, integer-indexed collections of objects
- Hashes: Collections of key-value pairs
Here are some examples:
num = 42 pi = 3.14 greeting = 'Hello' colors = ['red', 'green', 'blue'] person = {'name' => 'Alice', 'age' => 30}
Control Structures
Ruby provides several control structures, including if
statements, loops, and iterators.
If Statements
age = 18 if age >= 18 puts 'You are an adult.' else puts 'You are a minor.' end
Loops
5.times do |i| puts "Iteration #{i}" end
Iterators
colors = ['red', 'green', 'blue'] colors.each do |color| puts color end
Methods
Methods in Ruby are used to bundle one or more repeatable statements into a single unit. Here's an example:
def greet(name) "Hello, #{name}!" end puts greet('Alice')
Classes and Objects
Ruby is an object-oriented language. Everything in Ruby is an object, and classes define the blueprint for objects. Here's an example:
class Person attr_accessor :name, :age def initialize(name, age) @name = name @age = age end def greet "Hello, my name is #{@name} and I am #{@age} years old." end end person = Person.new('Alice', 30) puts person.greet
Modules
Modules in Ruby are used to group related methods. Modules cannot create instances. Here's an example:
module Greetings def greet(name) "Hello, #{name}!" end end class Person include Greetings end person = Person.new puts person.greet('Alice')
Exception Handling
Ruby provides a mechanism for handling errors through exception handling. Here's an example:
begin # Risky operation result = 10 / 0 rescue ZeroDivisionError => e puts "Error: #{e.message}" end
Working with Kafka in Ruby
Apache Kafka is a distributed streaming platform. To integrate Kafka with Ruby, you can use the ruby-kafka
gem. Here's how to get started:
Installation
Add the following line to your Gemfile
:
Then run:
Producing Messages
require 'kafka' kafka = Kafka.new(seed_brokers: ['kafka://localhost:9092']) producer = kafka.producer producer.produce('Hello, Kafka!', topic: 'greetings') producer.deliver_messages
Consuming Messages
require 'kafka' kafka = Kafka.new(seed_brokers: ['kafka://localhost:9092']) consumer = kafka.consumer(group_id: 'my-group') consumer.subscribe('greetings') consumer.each_message do |message| puts message.value end