Professor Justin Mui guides you through everything Ruby as well as various frameworks such as the popular Ruby on Rails and Ruby Motion for iOS applications. Justin's method of teaching is very hands-on and interactive where you become deeply involved with your own Ruby code. Justin first goes over installing Ruby on a variety of OS's and then important programming concepts and incorporating them with how they are utilized in Ruby. Other topics include Data Types, Operations, and Methods, through Classes and Modules. Professor Justin Mui received his B.S. in Computer Science and has been in the web development industry for over 10 years. He is now a senior software engineer at a premier firm specializing in Ruby coding. Downloadable code examples are included in most lessons so you can follow along with Justin.

expand all   collapse all
I. Introduction to Ruby
  Setting Up Your Environment 22:08
   Intro 0:00 
   Installing Ruby 0:06 
    Ruby-lan.org 0:07 
    Three Ways of Installing Ruby 2:26 
    Compiling Ruby-Source Code 3:02 
    Third Party Tools 3:28 
    Other Implementations of Ruby 4:48 
   Windows Installation 5:21 
    RubyInstaller.org 5:22 
   Mac OSX and Linux Installation 6:13 
    Mac OSX and Linux Installation 6:14 
   Setting Up Debian/Linux 6:42 
    Setting Up Debian/Linux 6:43 
   Installing HomeBrew 6:56 
    HomeBrew for MAC OSX 6:57 
    HomeBrew Wiki 9:44 
    Installing HomeBrew 10:02 
   Setting Up Mac OSX 11:46 
    HomeBrew, RVM, OSX-GCC Installer, and Install Ruby 1.9.3 11:47 
   Ruby Version Manager (RVM) 12:11 
    Ruby Version Manager (RVM) Overview 12:12 
    Installing Ruby Version Manager (RVM): http://rvm.io 12:35 
   Install RVM with Ruby 14:20 
    Install RVM with Ruby 14:21 
   Install OSX-GCC-Installer 16:18 
    Download and Install Package for Your OSX 16:19 
   Install Ruby 1.9.3 17:28 
    Install Ruby 1.9.3 17:29 
   Test It Out! 18:09 
    rvm-help & ruby-v 18:10 
    Example: rvm gemset create educator 18:52 
   Set It As Default! 20:47 
    rvm Use 1.9.3@educator--default 20:48 
  Intro to Ruby 22:20
   Intro 0:00 
   What is Ruby? 0:06 
    What is Ruby? 0:07 
    Ruby Standard Library 0:52 
   Who Created Ruby? 1:22 
    Yukihiro Matsumoto 1:23 
   History 2:45 
    The Name 'Ruby' 2:46 
    Ruby v0.95 3:10 
    Ruby v1.0 3:56 
    English Language Mailing List Rubytalk 4:08 
    ruby-forum.com & the Mailing Lists 4:27 
    Ruby In The West 9:51 
    Ruby on Rails 10:39 
    The Pragmatic Programmer's Guide to Ruby 11:30 
    rubyonrails.org 13:34 
   Current Ruby 14:42 
    Ruby 1.8.7, Ruby 1.9.3, and Ruby 2.0 14:43 
   Why Programmers Enjoy Ruby? 15:40 
    Why Programmers Enjoy Ruby? 15:41 
   Ruby Is An Interpreted Language 16:21 
    Ruby Is An Interpreted Language 16:22 
   What Is It Used For? 16:50 
    What Is It Used For? 16:51 
   Ruby is Object-Oriented 18:17 
    Example: 5.class 18:18 
    Example: 0.0.class 18:54 
    Example: true.class 19:03 
    Example: nil.class 19:12 
   Object Class 19:19 
    BasicObject 19:20 
    Example 19:52 
    Superclass 20:50 
    Fixnum → Integer → Numeric → Object 21:32 
  Basic Tools for Using Ruby 27:44
   Intro 0:00 
   Interactive Ruby 0:08 
    irb: Interactive Command-Line Environment 0:09 
   Example 0:49 
    irb-v 0:50 
    irb-executes terminal 1:02 
    1.9.3-p125 > 'hi' 1:09 
    Live Demonstration 1:31 
   Why Use Interactive Ruby? 2:21 
    Why Use Interactive Ruby? 2:22 
   RDoc 3:05 
    RDoc 3:06 
    Ruby Core Documentation 3:32 
    Ruby Core Documentation: Example 5:30 
    Ruby Core Documentation: Markup 6:12 
    Ruby Core Documentation: Headings 7:44 
    Coding Example: RDoc 9:30 
   Why Use RDoc? 13:02 
    Learning Core Ruby Functions 13:03 
   Generating RDoc 15:31 
    rdoc-help # usage 15:32 
   Ruby Interpreter 15:57 
    ruby -- help 15:58 
    ruby [switches] [-] program [arguments] 16:16 
    Example: How to Run a Ruby Script 16:28 
   Rake 18:38 
    Rake Overview 18:39 
    Ruby Core Documentation: Rake 19:46 
    Coding Example: Rake 23:14 
   Why Was It Created? 24:30 
    Why Was It Created? 24:31 
   Lesson Summary 25:13 
    Lesson Summary 25:14 
    IDE/script Editors: MacVIM 26:24 
  Ruby Specifics 20:45
   Intro 0:00 
   Ruby Specifics 0:06 
   Comments 0:51 
    Hashtags 1:00 
    Example 1:23 
   Multi-Line Comment 2:04 
    Example 3:10 
   RDoc Comments 4:02 
    When do you generate an Rdoc? 4:10 
    Headings and subheadings 4:24 
    Examples 4:48 
    Generating an Rdoc - example 4:50 
   Common Code Conventions 6:28 
    For every tab use two spaces indentation 7:38 
    Never use tabs 7:42 
   Common Code Conventions (Cont.) 8:18 
    Camel case 8:20 
    Snake case 9:18 
   Identifiers 9:44 
    Constants begin with CAP letter 10:00 
    Examples 10:10 
    Identifiers with Different Scoping 10:26 
    Global 10:34 
    Instance Variable 10:40 
    Class Variable 10:46 
    Examples 10:56 
   Reserved Keywords 12:22 
    Do not use reserved keywords in code 12:25 
   Parentheses are Sometimes Optional 13:04 
    Functions do not require parentheses 13:16 
    When in doubt, use parentheses 13:54 
    Examples 14:10 
   Newlines Are Statement Terminators 14:20 
    Examples 15:10 
   Continuation with a Period 16:20 
    Period means continue to next line 16:46 
   Multiple Statements Allowed on a Single Line 17:38 
    Try not to use semi-colons 17:58 
   Code Blocks 18:20 
    Use code blocks for one liners 18:28 
    Examples 18:40 
    Recommended for multiple lines 20:16 
  Ruby Data Types (Part 1) 29:37
   Intro 0:00 
   Overview 0:10 
   Ruby Data Types 0:10 
    Numbers 0:16 
    Strings 0:18 
    Symbols 0:24 
   Numbers 0:30 
    Numeric 0:44 
    Float 0:50 
    Complex 0:56 
    BigDecimal 0:58 
    Rational 1:00 
    Integer (most popular) - Fixnum and Bignum 1:06 
    Fixnum stores 31 bits 1:18 
    Bignum stores larger bits 1:24 
    All number objects are instances of Numeric 1:28 
   Integer Literals 2:28 
    Represent whole-numbers 2:40 
    Examples - Different bases 2:42 
    Binary 3:04 
    Octal 3:30 
    Hexadecimal 3:44 
    Examples 4:06 
   Floating Point Literals 4:45 
    Examples 4:58 
    e-value can be capital or lowercase 5:30 
    Example 5:44 
   Strings 6:16 
    Mutable objects 6:18 
    Used for inserting and deleting text, searching, and replacing 6:26 
   String Rdoc 6:46 
    Definition 7:00 
   String Literals 8:20 
    Single-Quoted 8:28 
    Double-Quoted (most used) 8:50 
    Example 9:32 
    Escape Sequences 11:10 
    Newline 11:16 
    Tab 11:22 
    Double quote 11:28 
    Blackslash 11:36 
    Interpolation 11:50 
    Sprintf 13:48 
    Unicode Escaping 14:38 
    Example 15:50 
    Delimiters 16:18 
    Here Documents 17:18 
    Example 17:25 
   String Operators 19:58 
    Concatenation 20:03 
    Appending 20:40 
    String Equality 21:04 
    Example 21:24 
   Substrings 22:00 
    Range object (inclusive) 22:22 
   String Encoding 24:52 
    Differences between Ruby 1.8 and 1.9 24:56 
   Symbols 26:02 
    Definitions 26:04 
    Examples 26:46 
    When to use symbols 26:54 
   Symbols and Strings 27:42 
    Symbols Rdoc 28:22 
  Ruby Gems 25:50
   Intro 0:00 
   RubyGems 0:08 
    What are RubyGems? 0:24 
   RubyGems.org 0:44 
    How RubyGems are used 2:06 
    Java's jar utility 2:50 
    Unix/Linux's tar utility 3:06 
   What is a Gem? 3:16 
    Definition of Gem 3:20 
    Version 3:34 
    Date 3:44 
    Author 3:50 
    Description 5:58 
   What Are the Uses? 4:18 
    Uses for Gems 4:22 
   Installation 5:06 
    How to install RubyGems 5:30 
   Updating to the Latest Ruby Gems 5:54 
   Testing 6:22 
    Example 6:34 
   Installing Rake 7:24 
    Example 7:46 
   Verifying 9:22 
    Example 9:56 
   Structure 10:56 
    gem.gemspec 11:30 
   Specification 13:40 
    What is in the gem? 13:42 
    Who made it? 13:50 
    Update gem version 13:58 
    Example 14:10 
   Create Our First Gem 17:20 
    Steps involved 17:28 
    RubyGems Guides 17:36 
    Example 20:02 
    Steps Review 18:56 
   Create Our First Gem (Cont.) 23:08 
    Building the gem 19:38 
    Example 20:00 
    Installing the gem 22:32 
    Run it 22:52 
    Publish it 23:04 
   Get Some Gems! 25:06 
    rake 25:14 
    rails 25:19 
    fastercsv 25:25 
    koala 25:37 
  Ruby Data Types (Part 2) 40:24
   Intro 0:00 
   Ruby Data Types 0:15 
    Boolean 0:21 
    Arrays 0:27 
    Hashes 0:33 
    Range 0:37 
   Boolean Types 0:42 
    TrueClass 0:56 
    FalseClass 1:12 
    NilClass 1:18 
    TrueClass Examples 2:48 
    FalseClass Examples 3:22 
   Arrays 4:16 
    Ordered collection of objects 4:22 
    Can hold different objects 4:32 
    Starts at index 0 4:50 
   Array of Strings 5:50 
    Example 5:52 
   Arrays (Cont.) 6:20 
    Can be created using literals 6:22 
    Can be created using constructors 6:54 
    Position and indexed value 8:04 
    Negative Indexed Values 8:56 
    Shift and Unshift 10:18 
    Push and Pop 11:38 
    .delete method 12:38 
    Addition and Subtraction 13:32 
    Union and Intersection 14:48 
    Insert 15:52 
    Iteration 16:52 
    Arrays Rdoc 17:48 
   Hashes 22:08 
    Maps and Associative Arrays 22:44 
    Created using the constructor 22:56 
    Created using a hash literal 24:02 
    Stored in a hash table 25:26 
    Example 25:50 
    Accessing Key-Values 27:46 
    Deletion 29:48 
    Iteration 31:04 
    Hashes Rdoc 32:04 
   Ranges 36:40 
    Two dots are inclusive 36:57 
    Three dots are exclusive 37:16 
    Example 37:50 
    Ranges Rdoc 38:24 
  Objects 65:46
   Intro 0:00 
   Objects 0:10 
   Object References 1:36 
    Ruby Core 2:16 
    Example 4:30 
   Creating New Objects 6:00 
    New Method 6:08 
    Initialize Method 6:31 
    Example 7:18 
   Garbage Collection 9:54 
    Global values always reachable 10:25 
   Object Identity 11:08 
    Every object has an object identifier 11:20 
    Object identifier is constant and unique 11:30 
    Example 11:54 
   Object Class 12:58 
    Class method 13:10 
    Superclass method 13:28 
    Object Testing 14:46 
    is_a? 15:49 
    respond_to? 16:26 
    String and Regexp 18:10 
    Comparing two object instances 20:06 
    Example 23:30 
   Object Equality 25:48 
    Comparing objects 25:54 
    equal? 25:58 
    Popular way to test for equality 27:16 
    Opposite way to test for equality 27:25 
    Arrays 28:30 
    Hash 29:42 
    Case equality operator 30:47 
    Class tests 31:16 
    Range tests 31:48 
    Symbol tests 32:32 
   Object Conversion 33:14 
    Explicit conversion 33:54 
    Implicit conversion 35:00 
    Example 36:12 
   Object Conversion: Kernel Module 38:22 
    Array 38:38 
    Float 39:26 
    Integer 39:58 
    String 40:10 
    Example 40:34 
   Object Conversion: Coerce 42:00 
    Used for mixed type numeric operations 42:08 
    Example 43:40 
   Object Conversion: Boolean 47:42 
    Every object has a boolean value 47:44 
    Example 48:54 
   Object Copying 50:52 
    dup 50:58 
    clone 51:03 
    Example 51:42 
   Object Freezing 57:36 
   Object Marshaling 58:38 
    Save state 59:04 
    Load state 59:27 
    Example 59:32 
   Tainted Objects 61:50 
    taint 62:08 
    farm field 62:12 
   Untrusted Objects 64:06 
    trust 64:24 
    untrust 64:34 
    untrusted? 64:42 
  Loops 38:54
   Intro 0:00 
   Loops 0:12 
    while and until 0:48 
    for and in 0:54 
    iterators 1:04 
    enumerable in objects 1:06 
   While-loop 1:14 
    Will keep going is condition is true 1:18 
   Until-loop 2:58 
    Will keep going until condition becomes true 3:06 
   Single Expression Loops 4:20 
    Compact form 4:30 
    Expressed as a modifier 4:42 
   Do-While Loop 5:52 
    Executes body first 6:06 
   Do-Until Loop 7:54 
    Similar to do-while loop 7:58 
    Using Break Inside Loops 8:54 
    break 8:58 
   For-In Loop 11:56 
    for-loop 12:06 
    var 12:34 
    collection 12:54 
    body 13:00 
    Examples 13:08 
    Examples (Cont.) 15:54 
    Nested loops 16:40 
   Numeric Iterators 18:32 
    upto 18:40 
    downto 18:42 
    times 18:48 
    Examples 20:28 
   External Iterators 21:00 
    Enumerator class 21:04 
    Rdoc 21:16 
   Enumerables in Objects 24:35 
    Enumerable is a mix-in 24:41 
    RDoc 25:24 
   Commonly Used Enumerables in Objects 27:01 
    Array 27:19 
    Hash 27:51 
    Range 28:47 
    Examples 29:29 
   Enumerables in Objects (Cont.) 31:13 
    File Processing 31:15 
    Example 31:45 
   Enumerables in Objects (Cont.) 33:07 
    collect 33:23 
    select 34:11 
    reject 34:59 
    inject 35:29 
  Strings 28:30
   Intro 0:00 
   Strings 0:08 
    Why do you want to get familiar with strings? 1:00 
   String Creation 1:16 
    new 1:28 
    empty? 1:50 
    length or size 2:10 
    Example 3:12 
   String Manipulation 4:40 
    slice 4:56 
    square brackets [ ] 5:02 
    token 5:40 
    [fixnum] 6:52 
    offset and length 8:40 
    chaining 12:42 
   String Insertion 12:56 
    insert 12:58 
    positive or negative index 13:46 
   String Updates 15:24 
    [token] 15:36 
    Examples 16:40 
    chop or chop! 17:54 
    chomp! 18:56 
    gsub 20:28 
   String Deletion 21:38 
    delete 21:38 
   String Reversal 22:46 
    reverse 22:52 
   String Manipulation 23:16 
    split(pattern=$, limit) 23:22 
    pattern 24:10 
    limit 24:15 
    upcase or upcase! 25:28 
    downcase or downcase! 26:02 
    swapcase 26:24 
   Incrementing Strings 27:26 
    next or next! 27:32 
   Check Out the Other Lessons 28:00 
    Ruby Data Types Part 1 28:12 
    Regular Expressions 28:18 
  Regular Expressions 33:27
   Intro 0:00 
    Regular Expressions 0:10 
    How to create a regular expression 0:48 
    What goes inside 1:36 
    Metacharacters 3:10 
    Bracket expressions 3:14 
    Quantifiers 3:18 
    Anchors 3:20 
   Metacharacters 3:30 
    word and non-word characters 4:04 
    digit and non-digit characters 4:44 
    hexdigit and non-hexdigit characters 4:56 
    whitespace and non-whitespace characters 5:08 
    Examples 5:24 
   POSIX Bracket Expressions 7:48 
   Non-POSIX Bracket Expressions 9:48 
   Bracket Expression Examples 10:58 
   Quantifiers 12:34 
    Examples 13:30 
   Character Properties 17:24 
    Similar to POSIX bracket classes 18:22 
    More Character Properties 18:48 
    Examples 19:32 
   Anchors 20:08 
    Examples 21:14 
   Regular Expression Matching: Regexp Object 22:40 
    match 22:51 
   Regular Expression Matching: String Object 24:14 
    match 24:26 
   Regular Expression Modifier Characters 25:14 
    pat 25:38 
    Example 26:42 
   Regular Expression Modifier Objects 27:14 
    Example 28:38 
    Regexp Rdoc 30:40 
  Arrays 14:35
   Intro 0:00 
   Arrays 0:12 
   Creating an Array with a Block 0:50 
   Alternative Ways to Create an Array 3:52 
   Checking the Class 5:14 
    Iterate through the array 5:26 
    Call the class method 5:28 
   Array Shortcuts 6:38 
    at(index) 6:44 
    delete_at(index) 7:28 
    first(n) 8:28 
    last(n) 9:28 
   Removing Duplicates 9:58 
    uniq or uniq! 10:04 
   Sorting the Array 10:48 
    sort or sort! 10:54 
   Getting the Index 11:35 
    index 11:56 
    rindex 12:38 
   Multidimensional Arrays 12:56 
    flatten 13:33 
   Check Out the Earlier Lesson 14:16 
    Ruby Data Types Part 2 14:26 
  Hashes 27:48
   Intro 0:00 
   Hashes 0:12 
   Creating Hashes 1:18 
    Setting a Default Value 2:24 
   Accessing Hashes 4:16 
    Accessible by keys or by values 4:28 
    Keys must be unique 4:36 
   Creating Hashes 5:16 
    Comma-separated list 5:42 
    Hash rocket 8:28 
    Examples 10:16 
   Iterating Keys and Values 11:43 
    each_key 12:04 
    each_value 14:04 
   Merging Hashes 16:10 
    merge(other_hash) 16:20 
   Sorting Hashes 18:46 
   Replacing Hashes 20:57 
    replace(other_hash) 21:18 
   Converting Hashes to Other Classes 22:04 
    to_a 22:22 
    to_s 23:22 
    Example 24:34 
   Check Out the Earlier Lesson 27:22 
    Ruby Data Types Part 2 27:32 
  Math Operations, Part 1 28:47
   Intro 0:00 
   Math Objects 0:12 
    Numeric 0:26 
    Integer 0:38 
    Float 1:02 
    Fixnum 1:14 
    Bignum 1:56 
    Rational 2:04 
    Math 2:24 
   Math Operations 2:36 
    Example 3:14 
    div(numeric) 4:54 
    divmod(numeric) 6:30 
    modulo(numeric) 7:23 
    quo(numeric) 8:18 
    remainder(numeric) 9:35 
   Operation Precedence 1 of 3 10:35 
   Operation Precedence 2 of 3 13:18 
   Operation Precedence 3 of 3 14:28 
   Abbreviated Math Operations 14:54 
    Move the operator in front of the equal sign 15:52 
   Numbers 16:36 
    Numeric Class 17:06 
   Numeric Methods 18:41 
    ceil 18:52 
    floor 19:32 
    round 19:50 
   Example with Numbers 20:20 
   Numeric Methods (Cont.) 22:20 
    truncate 22:28 
    num.step(limit, step) 23:02 
    Numeric Rdoc 25:26 
  Math Operations, Part 2 28:51
   Intro 0:00 
   Math Operations 0:12 
    Math Module 0:24 
    Rational Numbers 0:44 
    Complex Numbers 0:52 
    Prime Numbers 0:58 
    Matrices 1:06 
   Math Module 1:12 
    PI and E 1:32 
   Math Module Methods 2:47 
    atan2(x,y) 2:56 
    cos(x) 3:14 
    exp(x) 3:44 
    Examples 4:38 
    log(x) 5:44 
    log(num, base) 6:34 
    log10(x) 7:04 
    sin(x) 7:34 
    sqrt(x) 7:52 
    tan(x) 8:06 
   Math Functions: Part 1 of 3 8:12 
   Math Functions: Part 2 of 3 9:32 
   Math Functions: Part 3 of 3 10:19 
    Math Module Rdoc 11:25 
   Rational Numbers 13:23 
    How to use 14:06 
    Example 15:02 
   Mathematical Ruby Scripts (Mathn) 16:25 
    Example 17:28 
   Complex Numbers 18:26 
    polar 18:56 
    rect 19:10 
   Complex Number Examples 19:18 
   Prime Numbers 20:14 
    each(ubound=nil) 20:44 
    prime? 21:22 
    Example 21:58 
   Matrices 23:15 
    build(row_size, column_size=row_size) 23:44 
    Example 24:44 
    Matrix Rdoc 24:58 
  Dates and Times 26:01
   Intro 0:00 
   Dates and Times 0:12 
   Time Class 0:38 
   Methods of the Time Class 1:43 
    now 1:44 
    at(time) 2:10 
    Epoch & Unix Timestamp Conversion Tools 3:19 
   Components of a Time 5:07 
   Convert Time to an Array 5:54 
    to_a 6:08 
   Creating a New Time 6:48 
    Time.local 7:08 
    Year is required 7:22 
    Time.utc 8:12 
    What should be specified 9:30 
   More Methods of the Time Class 10:16 
    strftime(string) 11:26 
    RDoc 12:50 
   Date Library 16:46 
   Initializing a New Date 17:08 
   Parsing Dates 18:28 
    parse(string) 18:42 
   Today's Date 19:19 
    Date.today 19:22 
   Tomorrow's Date 20:22 
    Next 20:28 
    Next week 21:22 
   Count Down 21:26 
   Count Up 22:37 
   Components of a Date 23:20 
   Converting to Datetime 23:48 
    to_datetime 24:00 
   Initializing a Datetime 24:24 
   Converting to Time 25:23 
    self.to_time 25:32 
  Methods: Part 1 31:24
   Intro 0:00 
   What is a Method? 0:12 
   Basic Method 0:58 
   Return Value 4:37 
    return 4:46 
   Factorial Example 6:18 
    Example 8:46 
   Return Two Values 10:06 
    Set the return keyword 10:14 
    Collected and returned as an array 10:28 
   Undefining Methods 11:22 
    undef method_to_undefine 11:44 
    Example 12:32 
   Method Names 13:02 
    Begin with lowercase letter 13:16 
    Separate longer words with underscores 13:26 
    Can end with equal sign, question mark, or exclamation point 14:03 
    Equal sign 14:26 
   Method Names with Question Mark 14:44 
    empty? 15:24 
   Method Names with Exclamation Point 16:01 
    mutators 16:12 
    ! means use with caution 16:46 
   Method Aliases 18:05 
    alias new_method existing_method 18:42 
   Operator Methods 20:00 
    Operators 20:02 
    Array Operators 20:10 
    Unary Operators 20:32 
    Binary Operators 20:40 
    Example 21:28 
   Methods and Parentheses 25:00 
    Optional in most cases 25:20 
    Required in other cases 27:13 
   Methods and Blocks 27:54 
    Associated with blocks 28:18 
    block_given? 28:26 
    yield 28:36 
    Example 29:24 
  Methods: Part 2 20:11
   Intro 0:00 
   Methods with the Unary Ampersand Operator 0:14 
    & 0:34 
    Block to a Proc 0:56 
    Example 2:02 
    Proc object 3:58 
    Example 5:04 
   Methods with Default Values 5:54 
    Example 7:12 
   Methods with variable-Length Arguments 8:05 
    How to create it 8:36 
    Example 11:06 
   Using Hashes with Arguments 13:02 
    Multiple arguments 13:08 
    Solution 13:30 
    Example 14:56 
    Rdoc 18:12 
  Classes: Part I 26:51
   Intro 0:00 
   Classes 0:10 
    Definition of a class 0:14 
    Class represents a container 0:32 
    Can be reused 0:46 
   Creating our First Class 1:00 
    Keyword class will create new class 1:06 
    Name must begin with capital letter 1:30 
   Instantiating Our First Class 2:46 
    New will create a new instance of class 2:58 
   Initializing Values 3:58 
    Definition of def 4:14 
    Instance method 5:08 
    Example 7:02 
   Defining the to_s Method 8:24 
    Creating a string representation class 8:34 
    Example 10:54 
   Self in the Class 12:16 
    Definition of self 12:26 
    Example 13:54 
   Accessor Methods 15:52 
    getter methods 16:22 
    Example 17:00 
   Setter Methods 18:00 
    Mutator methods 18:02 
    Example 19:46 
   Automating Getter and Setter Methods 21:10 
    Defined in the module class 21:30 
    attr_reader 21:54 
    attr_writer 22:48 
    attr creates getter and setter methods 23:50 
    Example 24:28 
   Notes on Ruby's Accessor Methods 25:32 
  Classes: Part II 26:42
   Intro 0:00 
   Defining Operators 0:10 
    You can define arithmetic operators 0:32 
    Unary Operators 0:46 
    Let's define operators in our class! 0:56 
    Example 2:52 
   Class Methods 6:24 
    Examples 6:56 
   Opening Up the Class 9:38 
    Adds an additional method 9:54 
    Examples 11:04 
   Array and Hash Access Method 15:40 
    Use square brackets 16:02 
    Define your own has access method 16:08 
    Example 16:56 
   Enumerating The Values 18:40 
    Define the each iterator 18:40 
   Testing for Equality 19:36 
    Class Triplex 19:50 
    Examples 20:54 
   Constants 25:00 
    Usually defined at the top of class 25:24 
  Classes: Part III 53:36
   Intro 0:00 
   Class Variables 0:14 
    Example 2:16 
    Ruby Glass Jar Example 8:50 
   Class Instance Variables 10:20 
    Instance variables of class objects 10:46 
    Advantage of class instance variables 11:18 
    Examples 11:30 
   Method Visibility 16:16 
    Three types of method visibility 16:26 
    Public methods 17:34 
    Private methods 17:38 
    Protected methods 18:04 
   Invoking Method Visibility 19:21 
    Public , Protected, and Private Visibility 19:22 
    Invoking Method Visibility With Arguments 21:39 
    Example: Invoking Method Visibility 22:12 
   Class Visibility 23:31 
    Instance and Class Variables are Private 23:32 
    Constants are Public 24:00 
    Makes Existing Class Methods Private 24:27 
    Makes Existing Class Methods Public 25:08 
    Example: Class Visibility and class GlassJar 25:43 
   Subclassing 27:08 
    Subclassing: Subclass and Superclass 27:09 
    Example: Subclassing 29:43 
   Inheritance 30:05 
    Inheritance 30:06 
    Example: Inheritance 31:25 
   Subclassing and Inheritance 31:34 
    Descendants 31:41 
    Ancestors 31:56 
    More On Descendants and Ancestors 32:08 
   Extending a Class 33:27 
    Extending a Class 33:28 
    Coding Example: Extending a Class 34:24 
   Overriding a Method 36:41 
    Overriding a Method 36:42 
    Coding Example: Overriding a Method 37:18 
   Modifying Methods with Chaining 38:52 
    Modifying Methods with Chaining 38:53 
    Super 39:25 
    Coding Example: Modifying Methods with Chaining 39:51 
   The Singleton Pattern 44:52 
    Introduction to The Singleton Pattern 44:53 
    Setting Up Singleton 45:28 
    The Instance Method 45:58 
    Rdoc for Singleton: Usage 46:23 
    Rdoc for Singleton: Implementation 47:45 
    Coding Example: Singleton 49:38 
  Modules 24:19
   Intro 0:00 
   Modules 0:04 
    What is Modules? 0:05 
    Modules Examples 0:40 
   Modules: Mix-Ins 3:31 
    What is a Mix-in? 3:32 
   Modules: Namespace 4:07 
    What is a Namespace? 4:08 
    Why Use a Namespace? 5:13 
   Example of a Namespace Module 5:59 
    Example of Mixing in The Module Into the Global Scope 6:00 
   Modules: Creation 7:04 
    How to Create a New Module? 7:05 
   Modules: Usage 8:19 
    How to Use It? 8:20 
    class Poker & class Bridge 9:13 
   Creating Our Module as a Mix-In 9:41 
    Example of a Module Using Instance Methods 9:42 
    Coding Example 10:20 
   Creating Our Module as a Namespace 12:11 
    Implement Class Methods for the Module 12:12 
    Coding Example 14:56 
   Loading Our Module 19:46 
    Loading Our Module Overview 19:47 
    Require & Load 20:15 
    Coding Example: Loading Module 20:48 
   Lesson Summary 23:36