Chapter 1: Introduction to Ruby
- Lesson 1: What is Ruby?
- Lesson 2: History and Evolution of Ruby
- Lesson 3: Ruby's Philosophy and Features
- Lesson 4: Installing Ruby (RVM, rbenv, RubyInstaller, etc.)
- Lesson 5: Setting Up the Ruby Environment
- Lesson 6: Writing Your First Ruby Program
- Lesson 7: Running Ruby Code (IRB, Interactive Ruby, and Scripts)
Chapter 2: Variables and Data Types
- Lesson 1: Declaring and Using Variables in Ruby
- Lesson 2: Understanding Ruby’s Dynamic Typing
- Lesson 3: Data Types: Strings, Numbers, Symbols, Booleans, Arrays, Hashes
- Lesson 4: Type Conversion in Ruby
- Lesson 5: Constants and Global Variables
- Lesson 6: Special Variables in Ruby ($_, $?, $~, etc.)
Chapter 3: Operators in Ruby
- Lesson 1: Arithmetic Operators
- Lesson 2: Comparison Operators
- Lesson 3: Logical and Boolean Operators
- Lesson 4: Assignment Operators
- Lesson 5: Range Operators
- Lesson 6: Ternary Operator
- Lesson 7: Safe Navigation Operator (&.)
Chapter 4: Control Structures
- Lesson 1: Conditional Statements (if, else, elsif, unless)
- Lesson 2: Case Statements (Pattern Matching in Ruby 2.7+)
- Lesson 3: Looping Constructs (while, until, for)
- Lesson 4: Iterators (each, map, select, reject, reduce)
- Lesson 5: The break, next, and redo Keywords
Chapter 5: Methods and Blocks
- Lesson 1: Defining and Calling Methods
- Lesson 2: Method Arguments and Default Values
- Lesson 3: Return Values and return Keyword
- Lesson 4: Yielding to Blocks (yield keyword)
- Lesson 5: Lambda Functions and Procs
- Lesson 6: Closures in Ruby
Chapter 6: Strings and Regular Expressions
- Lesson 1: String Basics and Manipulation
- Lesson 2: String Interpolation and Formatting
- Lesson 3: Multi-line Strings and Here-documents
- Lesson 4: Working with Regular Expressions (Regexp)
- Lesson 5: Pattern Matching in Ruby 3+
Chapter 7: Arrays and Hashes
- Lesson 1: Creating and Manipulating Arrays
- Lesson 2: Multi-dimensional Arrays
- Lesson 3: Array Methods (push, pop, shift, unshift, etc.)
- Lesson 4: Working with Hashes (Dictionaries)
- Lesson 5: Hash Methods (keys, values, merge, etc.)
Chapter 8: Object-Oriented Programming in Ruby
- Lesson 1: Introduction to OOP in Ruby
- Lesson 2: Creating Classes and Objects
- Lesson 3: Instance and Class Variables (@var, @@var)
- Lesson 4: Getters, Setters, and Attribute Accessors (attr_reader, attr_writer, attr_accessor)
- Lesson 5: Understanding self in Ruby
- Lesson 6: The initialize Method (Constructors)
Chapter 9: Inheritance and Polymorphism
- Lesson 1: Understanding Inheritance
- Lesson 2: Method Overriding
- Lesson 3: Using super to Call Parent Methods
- Lesson 4: Duck Typing and Dynamic Typing in Ruby
Chapter 10: Modules and Mixins
- Lesson 1: What Are Modules?
- Lesson 2: Using require and include
- Lesson 3: Namespaces in Ruby
- Lesson 4: Creating and Using Mixins (extend and include)
Chapter 11: Error Handling in Ruby
- Lesson 1: Exception Handling Basics (begin, rescue, ensure, else)
- Lesson 2: Creating Custom Exception Classes
- Lesson 3: Ensuring Cleanup with ensure
- Lesson 4: Retrying Failed Operations
Chapter 1: Metaprogramming in Ruby
- Lesson 1: Introduction to Metaprogramming
- Lesson 2: method_missing and respond_to?
- Lesson 3: Defining Methods Dynamically (define_method)
- Lesson 4: Open Classes and Monkey Patching
- Lesson 5: Using eval, instance_eval, and class_eval
Chapter 2: File Handling and I/O
- Lesson 1: Reading and Writing Files
- Lesson 2: Working with Streams (IO and StringIO)
- Lesson 3: File Permissions and Metadata (chmod, chown, stat)
Chapter 3: Asynchronous Programming in Ruby
- Lesson 1: Threads in Ruby
- Lesson 2: The Thread Class and Synchronization
- Lesson 3: Using Fibers for Lightweight Concurrency
- Lesson 4: EventMachine and Async Libraries
Chapter 4: Advanced Collections and Enumerators
- Lesson 1: Understanding Enumerables
- Lesson 2: Lazy Evaluation in Ruby 2.0+
- Lesson 3: Custom Enumerators (Enumerator class)
Chapter 5: Web Development with Ruby
- Lesson 1: Introduction to Ruby Web Frameworks (Sinatra, Ruby on Rails)
- Lesson 2: Working with HTTP Requests and Responses
- Lesson 3: RESTful APIs in Ruby
Chapter 6: Networking and Socket Programming
- Lesson 1: TCP and UDP Sockets in Ruby
- Lesson 2: HTTP Client with Net::HTTP and Faraday
- Lesson 3: Building a Simple Chat Application
Chapter 7: Database Connectivity
- Lesson 1: Working with SQLite, PostgreSQL, and MySQL
- Lesson 2: Object-Relational Mapping (ORM) with ActiveRecord
- Lesson 3: Querying Databases with SQL in Ruby
Chapter 8: Cryptography and Security
- Lesson 1: Hashing and Encryption with Digest
- Lesson 2: Secure Password Storage (BCrypt, Argon2)
- Lesson 3: Secure API Authentication
Chapter 9: Testing and Debugging
- Lesson 1: Introduction to Testing in Ruby (Minitest, RSpec)
- Lesson 2: Writing Unit and Integration Tests
- Lesson 3: Debugging with pry and byebug
Chapter 10: Ruby Design Patterns
- Lesson 1: What are Design Patterns?
- Lesson 2: Creational Patterns | Singleton, Factory Method, Abstract Factory, Builder, Prototype
- Lesson 3: Structural Patterns | Adapter, Bridge, Composite, Decorator, Facade, Flyweight, Proxy
- Lesson 4: Behavioral Patterns | Chain of Responsibility, Command, Interpreter, Iterator, Mediator, Memento, Observer, State, Strategy, Template Method, Visitor
Chapter 11: Building and Deploying a Ruby Gem
- Lesson 1: What Are Ruby Gems?
- Lesson 2: Creating a Ruby Gem (gem build)
- Lesson 3: Hosting Gems on RubyGems.org
Chapter 12: GUI Development with Ruby
- Lesson 1: Creating GUIs with Tk, FXRuby, and Shoes
- Lesson 2: Working with GTK and Qt
Chapter 13: Embedded Systems with Ruby
- Lesson 1: Using Ruby for IoT and Embedded Development
- Lesson 2: Working with Raspberry Pi