Section 1: 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 |
1:05: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 | |