getting started with ruby

Post on 16-Jan-2016

44 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Getting Started with Ruby. What’s Ruby?. Ruby is an OO, dynamic, agile language Everything’s an object For example, try puts -1.abs Derives strengths of Perl, Smalltalk, Python Created by Matz in mid 90’s Prevalent in Japan; recent buzz in the US It’s a lightweight language - PowerPoint PPT Presentation

TRANSCRIPT

1Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Getting Started with Ruby

2Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

What’s Ruby?• Ruby is an OO, dynamic, agile language

– Everything’s an object• For example, try puts -1.abs

– Derives strengths of Perl, Smalltalk, Python

• Created by Matz in mid 90’s• Prevalent in Japan; recent buzz in the US

• It’s a lightweight language– Clean, Higher signal-to-noise ratio

• There is no compiler to stand in your way• Quite flexible–you’ll see when you use it

3Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

History• Created by Yukihiro Matsumoto (Matz) in

1993

• Slowly being accepted in the west

• Popularized by some key players in the industry

• Gaining strength in various applications– Ruby-On-Rails (ROR)

4Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Downloading Ruby• Ruby site

– http://www.ruby-lang.org

• For windows, you may use one-click installer http://rubyinstaller.rubyforge.org

5Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Ruby Version• You can find the version of ruby you’re

using by typing ruby –v

6Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Running Ruby• Run ruby and type commands

• Interactively using irb

• Save code to file and run it

• I’ll run it directly from notepad2

• Other tools and Plugins available as well

7Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

IDEs• Comes with FreeRIDE IDE

• Mondrian IDE

• TextPad generally used on Mac

• Command line and Notepad(2) works great as well!– The following blog entry shows you how– http://tinyurl.com/as8z7

8Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

• ri

• RDoc at http://www.ruby-doc.org

Documentation…

9Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Object-Oriented• Ruby treats almost everything as objects

• nil is an object (try: puts nil.methods)• Even classes are objects!

– You use them like objects– These objects simply represent their class

Pizza is a const thatreferences Pizza class object

10Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

• Code less, do more

• Java:

• Ruby

Less Clutter

GOJ

11Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Less Clutter• Clean language• Less noise• ; is not needed• Parenthesis are optional• Variables don’t have type specification• Last statement of a method returns

automatically• You can even return multiple values!

12Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Variables• Dynamic typing

• Output:

13Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Types• Everything is an object

14Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Writing a function

15Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Another function

Returns an array

Assigns elements of array to individual variables

16Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Ruby Conventions• Conventions are very important

• Sometimes convention simply makes code look better

• At other times, it means something significant [you will learn some conventions the hard way ]

17Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Class/Method conventions• Class names, modules names, and

constants start with upper case– SportsCar, ValueOfPI, DAYS_IN_WEEK

• Methods and variables start with lowercase and use underscore– start_engine(), miles_driven

• Instance variables have @– @fuel_level

• Class variables use double ats– @@suggested_pressure

• Global variables use $– $ozone

18Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Method convention talks to you• You can figure out what a method is up to

from its looks

• Methods may end with an =– the method may appear as l-value

Query method

Doesn’t modify object

Has side effect;mutates object

19Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

Global and Predefined Variables• This is hideous• You may be setting some global variable and

not know it (familiarize yourself)• Some predefs: $_, $0, $$, $&, $!, …

20Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

"" vs '' (Double vs. Single Quotes)• '' is a simple string• Expressions within "" are evaluated

• Better to use ' if you don’t have expressions

21Venkat Subramaniam – svenkat@cs.uh.eduVenkat Subramaniam – svenkat@cs.uh.edu

More on Strings

top related