Ruby Programming Language

  1. The Ruby Ecosystem
    1. RubyGems and Bundler
      1. What is a Gem?
        1. Gem Structure
          1. Gemspec Files
            1. Versioning
            2. Finding and Choosing Gems
              1. RubyGems.org
                1. Gem Documentation
                  1. Popularity Metrics
                    1. Security Considerations
                    2. Installing and Using Gems
                      1. gem install Command
                        1. Gem Loading
                          1. require vs require_relative
                          2. Managing Dependencies with Bundler
                            1. Dependency Resolution
                              1. Version Constraints
                                1. Development vs Production
                                2. The Gemfile
                                  1. Gem Specification
                                    1. Source Configuration
                                      1. Groups
                                        1. Platform-Specific Gems
                                        2. The Gemfile.lock
                                          1. Dependency Locking
                                            1. Version Pinning
                                              1. Reproducible Builds
                                              2. Updating and Removing Gems
                                                1. bundle update
                                                  1. gem uninstall
                                                    1. Dependency Conflicts
                                                    2. Creating Gems
                                                      1. Gem Structure
                                                        1. Building Gems
                                                          1. Publishing Gems
                                                        2. Standard Library
                                                          1. Overview of the Standard Library
                                                            1. Core vs Standard Library
                                                              1. Loading Standard Library
                                                              2. Date and Time Handling
                                                                1. Date Class
                                                                  1. Time Class
                                                                    1. DateTime Class
                                                                      1. Parsing and Formatting
                                                                        1. Time Zones
                                                                        2. JSON Parsing and Generation
                                                                          1. JSON Module
                                                                            1. Parsing JSON
                                                                              1. Generating JSON
                                                                                1. Custom Serialization
                                                                                2. YAML Parsing and Generation
                                                                                  1. YAML Module
                                                                                    1. Loading YAML
                                                                                      1. Dumping YAML
                                                                                        1. Safe Loading
                                                                                        2. FileUtils for File Operations
                                                                                          1. File Copying
                                                                                            1. Directory Operations
                                                                                              1. Permissions
                                                                                              2. Net::HTTP for HTTP Requests
                                                                                                1. GET and POST Requests
                                                                                                  1. Headers and Parameters
                                                                                                    1. Response Handling
                                                                                                      1. HTTPS Support
                                                                                                      2. Other Useful Libraries
                                                                                                        1. URI
                                                                                                          1. Base64
                                                                                                            1. Digest
                                                                                                              1. OpenSSL
                                                                                                                1. CSV
                                                                                                                  1. Logger
                                                                                                                2. Testing in Ruby
                                                                                                                  1. Importance of Testing
                                                                                                                    1. Test-Driven Development
                                                                                                                      1. Behavior-Driven Development
                                                                                                                        1. Testing Pyramid
                                                                                                                        2. Minitest
                                                                                                                          1. Test Structure
                                                                                                                            1. Writing Test Cases
                                                                                                                              1. Assertions
                                                                                                                                1. assert_equal
                                                                                                                                  1. assert_nil
                                                                                                                                    1. assert_raises
                                                                                                                                    2. Test Organization
                                                                                                                                      1. Mocking and Stubbing
                                                                                                                                      2. RSpec
                                                                                                                                        1. Spec Syntax
                                                                                                                                          1. describe and it Blocks
                                                                                                                                            1. Matchers
                                                                                                                                              1. eq
                                                                                                                                                1. be
                                                                                                                                                  1. include
                                                                                                                                                    1. raise_error
                                                                                                                                                    2. Hooks and Setup
                                                                                                                                                      1. Shared Examples
                                                                                                                                                      2. Test Organization and Best Practices
                                                                                                                                                        1. Test File Structure
                                                                                                                                                          1. Naming Conventions
                                                                                                                                                            1. Test Data Management
                                                                                                                                                              1. Continuous Integration
                                                                                                                                                            2. Common Development Tools
                                                                                                                                                              1. Rake (Ruby Make)
                                                                                                                                                                1. Rakefile Structure
                                                                                                                                                                  1. Writing Rake Tasks
                                                                                                                                                                    1. Task Dependencies
                                                                                                                                                                      1. Running Rake Tasks
                                                                                                                                                                        1. Built-in Tasks
                                                                                                                                                                        2. Pry (IRB Alternative)
                                                                                                                                                                          1. Features of Pry
                                                                                                                                                                            1. Syntax Highlighting
                                                                                                                                                                              1. Code Browsing
                                                                                                                                                                                1. Debugging with Pry
                                                                                                                                                                                  1. Breakpoints
                                                                                                                                                                                    1. Stack Navigation
                                                                                                                                                                                    2. Code Linters and Formatters
                                                                                                                                                                                      1. RuboCop
                                                                                                                                                                                        1. Code Style Guidelines
                                                                                                                                                                                          1. Automatic Formatting
                                                                                                                                                                                          2. Documentation Tools
                                                                                                                                                                                            1. RDoc
                                                                                                                                                                                              1. YARD
                                                                                                                                                                                                1. Inline Documentation
                                                                                                                                                                                                2. Profiling and Performance
                                                                                                                                                                                                  1. ruby-prof
                                                                                                                                                                                                    1. Benchmark Module
                                                                                                                                                                                                      1. Memory Profiling