the ruby programming language - ryan farnell

41
The Ruby Programming Language Ryan Farnell 1

Upload: matthew-turland

Post on 11-Jun-2015

929 views

Category:

Business


0 download

TRANSCRIPT

Page 1: The Ruby Programming Language - Ryan Farnell

The Ruby Programming Language

Ryan Farnell

1

Page 2: The Ruby Programming Language - Ryan Farnell

History

• 1995

• July 2004 (Ruby on Rails)

2

Page 3: The Ruby Programming Language - Ryan Farnell

pure object-orientated

3

Page 4: The Ruby Programming Language - Ryan Farnell

What is an object?

4

Page 5: The Ruby Programming Language - Ryan Farnell

1. The data an object contains is unique to itself

5

Page 6: The Ruby Programming Language - Ryan Farnell

2. Only the object that contains the data can manipulate that data

6

Page 7: The Ruby Programming Language - Ryan Farnell

one logical unit with data and functions grouped together

7

Page 8: The Ruby Programming Language - Ryan Farnell

demo

8

Page 9: The Ruby Programming Language - Ryan Farnell

basic data as objects

9

Page 10: The Ruby Programming Language - Ryan Farnell

Value Type of Object

123 Fixnum

“Ruby” String

TRUE TrueClass

10

Page 11: The Ruby Programming Language - Ryan Farnell

functions as objects

11

Page 12: The Ruby Programming Language - Ryan Farnell

Value Type of Object

function Proc

12

Page 13: The Ruby Programming Language - Ryan Farnell

blocks allow for the passing of a function as

a parameter

13

Page 14: The Ruby Programming Language - Ryan Farnell

Ways to Use Blocks

• internal iterators

• resource allocation/deallocation

• changing functionality

14

Page 15: The Ruby Programming Language - Ryan Farnell

demo

15

Page 16: The Ruby Programming Language - Ryan Farnell

Conditionals

16

Page 17: The Ruby Programming Language - Ryan Farnell

Ruby supports standard conditionals

17

Page 18: The Ruby Programming Language - Ryan Farnell

Ruby also allows post conditions

18

Page 19: The Ruby Programming Language - Ryan Farnell

Ruby uses the normal case/when statement as

in other languages

19

Page 20: The Ruby Programming Language - Ryan Farnell

Ruby supports standard looping structures

20

Page 21: The Ruby Programming Language - Ryan Farnell

internal iterators are often used in place of standard structures

21

Page 22: The Ruby Programming Language - Ryan Farnell

demo

22

Page 23: The Ruby Programming Language - Ryan Farnell

Classes

23

Page 24: The Ruby Programming Language - Ryan Farnell

act as templates for the beginning functionality

of an object

24

Page 25: The Ruby Programming Language - Ryan Farnell

class inheritance

25

Page 26: The Ruby Programming Language - Ryan Farnell

a class can gain functionality (inherit) from other classes

26

Page 27: The Ruby Programming Language - Ryan Farnell

all classes inherit from exactly one class

27

Page 28: The Ruby Programming Language - Ryan Farnell

mixins can be used to add extra functionality

28

Page 29: The Ruby Programming Language - Ryan Farnell

class gains all the methods in the mixin

29

Page 30: The Ruby Programming Language - Ryan Farnell

Mixins

• Have access to all instance variables

• Have access to all private and public methods

30

Page 31: The Ruby Programming Language - Ryan Farnell

demo

31

Page 32: The Ruby Programming Language - Ryan Farnell

Ruby has some problems

32

Page 33: The Ruby Programming Language - Ryan Farnell

Disadvantages• Slow Execution

• Problems with threading

• No specification

33

Page 34: The Ruby Programming Language - Ryan Farnell

Virtual Machines• Ruby 1.9 YARV

• JRuby

• IronRuby

• Rubinius

• MacRuby

34

Page 36: The Ruby Programming Language - Ryan Farnell

Books

• Programming Ruby 2nd Edition

• by Dave Thomas, Chad Fowler, and Andy Hunt

• Ruby From Novice to Professional

• Peter Cooper

36

Page 37: The Ruby Programming Language - Ryan Farnell

Q & A

37

Page 38: The Ruby Programming Language - Ryan Farnell

Metaprogramming

38

Page 39: The Ruby Programming Language - Ryan Farnell

code that writes code

39

Page 40: The Ruby Programming Language - Ryan Farnell

Ruby has many metaprogramming

hook

40

Page 41: The Ruby Programming Language - Ryan Farnell

demo

41