Books & Videos

Table of Contents

Chapter: Introduction

Effective Ruby LiveLessons: Introduction

04m 12s

Chapter: Lesson 1: Arrays and Hashes

Learning Objectives

00m 47s

Item 1 Duplicate collections you receive as arguments

08m 8s

Item 2 Use Set for efficient presence checks

07m 36s

Item 3 Consider using a default hash value

06m 9s

Item 4 Use Hash#fetch over Hash#[]

07m 54s

Item 5 Prefer decorating collections

12m 58s

Chapter: Lesson 2: Seams

Learning Objectives

00m 43s

Item 6 Avoid using class variables

06m 29s

Item 7 Avoid using class methods

05m 56s

Item 8 Obey the Law of Demeter

07m 16s

Item 9 Prefer methods over instance variables

05m 45s

Item 10 Prefer methods over constants

04m 10s

Item 11 Use the === protocol for matching tasks

06m 29s

Chapter: Lesson 3: Testing

Learning Objectives

00m 45s

Item 12 Use only one assertion or expectation per test

06m 57s

Item 13 Order your tests with the arrange, act, and assert pattern

08m 49s

Item 14 Run your tests in a random order

05m 7s

Item 15 Prefer spies to mocks or stubs

12m 10s

Item 16 Use Rack::Test for integration testing

07m 55s

Chapter: Lesson 4: Enumerables and Callables

Learning Objectives

00m 57s

Item 17 Prefer enumerable methods

00m 56s

Item 17.1 Use zip and each_with_index

10m 59s

Item 17.2 Use each_slice and each_con

08m 49s

Item 17.3 Use partition, select, and find

17m 54s

Item 17.4 Use group_by, reduce, and each_with_object

16m 14s

Item 17.5 Implement your own enumerable

04m 45s

Item 18 Prefer lambda instead of proc

08m 23s

Item 19 Use Symbol#to_proc where appropriate

04m 2s

Item 20 Use #method to pass instance methods as callables

04m 42s

Item 21 Use {} for blocks that return and do..end for blocks that mutate

06m 59s

Chapter: Lesson 5: The Standard Library

Learning Objectives

00m 40s

Item 22 Use block forms for IO

04m 44s

Item 23 Understand the difference between Time, DateTime, and Date

06m 40s

Item 24 Do HTTP requests with Net::HTTP

06m 57s

Item 25 Prefer file methods over manual path manipulation

01m 32s

Item 25.1 Use #absolute_path, #dirname, and __FILE__ to be OS independent

05m 27s

Item 25.2 Use File.extname to determine file type

03m 51s

Item 25.3 Use File.join to build file paths safely

03m 45s

Chapter: Summary

Effective Ruby LiveLessons: Summary

02m 3s