Class Details

Advanced Ruby Programming Price: $1,990

Training promotions may be available, contact a training consultant at 240-667-7507 for more information!

This course is for programmers who want to deepen their knowledge of Ruby. It explores sophisticated topics like callable objects, reflection, and threading.

Price Match Guarantee Phoenix TS

Advanced Ruby Programming Course Includes:

  • Class exercises in addition to training instruction
  • Courseware books, notepads, pens, highlighters and other materials
  • eBooks will be emailed to students registered for Live Online training the week prior to the start of class
  • Course retake option
  • Full breakfast with variety of bagels, fruits, yogurt, doughnuts and juice
  • Tea, coffee, and soda available throughout the day
  • Freshly baked cookies every afternoon - *only at participating locations

Course Outline

Ruby Review

  • Basic Ruby language literacy 
  • Anatomy of the Ruby installation 
  • Ruby extensions and programming libraries 
  • Out-of-the-box Ruby tools and applications 
  • Lab: Create a program

Objects, methods, and local variables 

  • Talking to objects 
  • Creating an object 
  • The innate behaviors of an object 
  • A close look at method arguments 
  • Local variables and variable assignment 
  • Lab: Local variables

Organizing objects with classes 

  • Classes and instances 
  • Instance variables and object state 
  • Setter methods
  • Attributes and the attr_* method family 
  • Inheritance and the Ruby class hierarchy 
  • Classes as objects and message receivers 
  • Constants up close 
  • Lab: Organizing objects with classes

Modules and program organization

  • Basics of module creation and use 
  • Modules, classes, and method lookup 
  • The method_missing method 
  • Class/module design and naming

The default object (self), scope, and visibility 

  • Understanding self, the current/default object 
  • Determining scope 
  • Deploying method-access rules 
  • Writing and using top-level methods 
  • Lab: The default object

Control-flow techniques 

  • Conditional code execution 
  • Repeating actions with loops 
  • Iterators and code blocks 
  • Error handling and exceptions
  • Lab: Control-flow techniques

Built-in Essentials 

  • Ruby’s Literal constructors 
  • Recurrent syntactic sugar 
  • Bang(!) methods and *danger* 
  • Built-in and custom to *(conversion) methods 
  • Boolean states, Boolean objects, and nil 
  • Comparing two objects 
  • Inspecting object capabilities 
  • Lab: Essentials

Strings, symbols, and other scalar objects 

  • Working with strings 
  • Symbols and their uses 
  • Numerical objects 
  • Times and dates 
  • Lab: Strings, symbols, and other scalar objects

Collection and container objects 

  • Arrays and hashes in comparison 
  • Collection handling with arrays 
  • Hashes 
  • Ranges 
  • Sets 
  • Lab: Collection and container objects

Collections central: Enumerable and Enumerator

  • Gaining enumerability through each 
  • Enumerable Boolean queries 
  • Element-wise enumerable operations 
  • Relatives of each 
  • The map method 
  • Strings as quasi-enumerables 
  • Strong enumerables 
  • Enumerators and the next dimension of enumerability 
  • Enumerator semantics and uses 
  • Enumerator method chaining 
  • Lazy enumerators

Regular expressions and regexp-based string operations 

  • What are regular expressions 
  • Writing regular expressions 
  • Building a pattern in a regular expression 
  • Matching, substring captures, and MatchData 
  • Fine-tuning regular expressions with quantifiers, anchors, and modifiers 
  • Converting strings and regular expression 
  • Common methods that use regular expression 
  • Lab: Expressions

File and I/O Operations 

  • How Ruby’s I/O stystem is put together 
  • Basic file operations 
  • Querying IO and File objects 
  • Directory manipulation with the Dir class 
  • Lab: File and I/O Operations

Object individuation 

  • The singleton methods 
  • Modifying Ruby’s core classes and modules 
  • BasicObject as ancestor and class

Callable and runnable objects 

  • Basic anonymous functions 
  • Creating functions with lambda 
  • Methods as objects 
  • The eval family of methods 
  • Parallel execution with threads 
  • Issuing system commands from inside Ruby programs 
  • Lab: Callable and runnable objects

Callbacks, hooks, and runtime introspection 

  • Callbacks and hooks
  • Interpreting objects capability queries 
  • Introspection of variables and constants 
  • Tracing execution 
  • Callbacks and method inspection in practice 
  • Lab: Callbacks, hooks, and runtime introspection

Objectives

Advanced Ruby Programming Course Objectives: 

  • Develop Ruby code that is elegant and maintainable
  • Write solid object-oriented code using best practices