Skip to content
Dave Strus edited this page Feb 1, 2016 · 3 revisions

Welcome to the Ruby training wiki!

Audience

This curriculum is aimed at people with some programming experience and some exposure to Ruby. Although it covers many of the basics, it does assume some comfort working with objects, methods, control flow, loops, arrays, and hashes.

Topics

Terminal

  • Ruby interpreter
  • Shebang interpreter directives
  • UNIX commands
    • chmod
    • tree
    • less

Git Source Code Management

  • Initializing an empty Git repository
  • Staging changes
  • Committing changes
  • View a project's history
  • The hidden .git directory
  • Ignoring files with .gitignore

Ruby I/O

  • Using gets to capture user input
  • The difference between print and puts

Built-in Modules and Classes

  • String
    • The differences between single-quoted and double-quoted string literals
    • String interpolation
    • String#strip
    • String#chomp
    • String#gsub
  • Symbol
    • How symbols differ from strings
    • Symbol#to_proc
  • Enumerable
    • Hash
    • Array
    • Enumerable#each
    • Enumerable#each_with_index
    • Enumerable#map

Classes

  • Instance variables
  • Instance methods
  • Class methods
  • Naming conventions
  • Directory structure conventions
  • Data hiding
  • attr_accessor
  • Constants
  • Class methods
  • Attribute writer methods

Metaprogramming

  • Splat operator
  • Object#send

Modules

  • Namespaces
  • Mixins
  • Module#include
  • Module directory structure conventions

Monkey Patching

  • Modifying built-in classes
  • Monkey patching via Module#include

RubyGems

  • Package management
  • Gem structure
    • Gemspec
    • Directory structure
    • Namespacing
    • Executables
  • Building gems
  • Installing gems

Bundler

  • Dependency management with Bundler
    • Gemfile
    • Gemfile.lock
    • Using Bundler to scaffold gems

Tools

  • Pry
    • Pry as a developer console
    • Using Pry to inspect our projects at runtime

Not yet documented

  • Unit testing with Minitest
  • Using Rake to run tests