learn ruby 2011 - session 2

Post on 29-Jan-2018

772 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Learn Ruby 2011Session 2

Our SponsorsFlatsourcing, iSeatz, Koda, and Launchpad

Welcome BackReady to learn some Ruby?

Our Books

Learn to Program, 2ed

• For total beginners

• Systematic coverage of programming concepts

• Uses Ruby to teach programming

Programming Ruby, 3ed

• Comprehensive langauge reference

• Covers Ruby 1.9.2, annotations for 1.9 and 1.9.2 specific features

• de facto standard reference

Language CrashingLearning the basics in pieces

Objects vs Classes

• An Object is a discreet thing

• You can do things to Objects

• Classes tell you how to build Objects

• Classes in Ruby are also Objects

Objects vs Classes

• A Car is a Class

• My Car is an Object

• My Car has lots of things in common with other cars

• So, My Car is a Car

• But, Not every Car is My Car

Everything is an Object

• In Ruby everything is an object

• This means you can do things to everything you come across.

Everything has a Class

• Because everything is an Object, everything also has a class

• An Object’s class is often referred to as it’s Type

Duck Typing

• Ruby is Duck Typed

• This means that when you encounter an Object in Ruby, what you can do to it determines it’s type

• Ruby’s “Type Model” is concerned with what you can do with Objects

A Sample of Ruby

def say_goodnight(name) result = “Good night, “ + name return resultend

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Variables

def say_goodnight(name) result = “Good night, “ + name return resultend

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Variables

• Variables hold values, in Ruby they hold Objects

• Variables are the handles we use to easily reference the data we want to work with

Variables

• There are four basic kinds of variables

• local_variables

• @instance_variables

• @@class_variables

• $global_variables

Variables

• There are also Constants, variables that don’t change

• ClassNames

• CONSTANT_NAME

Variables

def say_goodnight(name) result = “Good night, “ + name return resultend

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Strings

def say_goodnight(name) result = “Good night, “ + name return resultend

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Strings

• Strings in Ruby come in two basic kinds

• “Double-Quoted”

• ‘Single-Quoted’

• They differ in how much processing Ruby does with their contents

‘Single-Quoted’ Strings

• Ruby does nothing with this kind of string, no interpolation, no escape processing, nothing

“Double-Quoted” Strings

• Ruby performs additional processing of these strings

• Ruby looks for escape sequences\n \t \u2603

• Ruby also performs interpolation#{expression}

Strings

def say_goodnight(name) result = “Good night, #{name}“ return resultend

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Methods

def say_goodnight(name) result = “Good night, #{name}“ return resultend

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Methods

• Methods are reusable bits of code

• They also go by the name Functions.

• They accept parameters, do something and return a value

Methods

• Parameters are passed to methods and given convenient local variable names by the method definition

Methods

def say_goodnight(name) result = “Good night, #{name}“ return resultend

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Methods

• When calling methods the parentheses that surround parameters are optional.

• Only leave them out when unambiguous

Methods

def say_goodnight name result = “Good night, #{name}“ return resultend

puts say_goodnight “John-Boy”puts(say_goodnight “Mary-Ellen”)

Methods

• Methods return values can be either explicit or implicit

• Use the return keyword to make explicit what your methods return

• Or, the last expression in the method will be the methods return value

Methods

def say_goodnight name result = “Good night, #{name}“end

puts say_goodnight “John-Boy”puts(say_goodnight “Mary-Ellen”)

Our Simplified Sample

def say_goodnight(name) “Good night, #{name}“end

puts say_goodnight(“John-Boy”)puts say_goodnight(“Mary-Ellen”)

Reviewing

• Objects vs. Classes

• Duck Typing

• Variables

• Strings

• Methods

For Next Week

For the New to Programming

• Read Chapters 2, 3 & 4 in LtP

• Complete exercises for each chapter

For Everyone

• Read Chapter 2 in PR1.9

• Keep playing in IRB

Next Week

• Arrays & Hashes

• Symbols

• Control Structures

• Regular Expressions

• Blocks & Iterators

top related