In Ruby, everything is an object — including numbers, strings, and even classes themselves. Classes define blueprints; objects are instances.
Basic Class
Ruby
class Student
attr_accessor :name, :age, :grade
def initialize(name, age, grade)
@name = name
@age = age
@grade = grade
end
def introduce
"Hi, I'm #{@name}, age #{@age}"
end
def passing?
@grade >= 50
end
end
ram = Student.new("Ram", 22, 85)
puts ram.introduce # "Hi, I'm Ram, age 22"
puts ram.passing? # trueInheritance
Ruby
class Animal
attr_reader :name
def initialize(name)
@name = name
end
def speak
"..."
end
end
class Dog < Animal
def speak
"#{@name} says Woof!"
end
end
class Cat < Animal
def speak
"#{@name} says Meow!"
end
end
[Dog.new("Rex"), Cat.new("Whiskers")].each { |a| puts a.speak }Modules (Mixins)
Ruby
module Trackable
def track(label)
puts "[#{label}] #{self.class} at #{Time.now}"
end
end
class Order
include Trackable
def initialize(amount)
@amount = amount
end
end
order = Order.new(500)
order.track("created") # [created] Order at 2024-...Tips
- Use
attr_accessorfor getters/setters — saves boilerplate. - Use modules for shared behaviour (mixins) instead of multiple inheritance.
- Ruby classes are open — you can add methods to existing classes.
🎉 You have completed the Ruby course! The next step is to build something with Ruby on Rails.