getting started with ruby
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 PresentationTRANSCRIPT
![Page 2: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/2.jpg)
2Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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
![Page 3: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/3.jpg)
3Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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)
![Page 4: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/4.jpg)
4Venkat Subramaniam – [email protected] Subramaniam – [email protected]
Downloading Ruby• Ruby site
– http://www.ruby-lang.org
• For windows, you may use one-click installer http://rubyinstaller.rubyforge.org
![Page 5: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/5.jpg)
5Venkat Subramaniam – [email protected] Subramaniam – [email protected]
Ruby Version• You can find the version of ruby you’re
using by typing ruby –v
![Page 6: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/6.jpg)
6Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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
![Page 7: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/7.jpg)
7Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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
![Page 8: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/8.jpg)
8Venkat Subramaniam – [email protected] Subramaniam – [email protected]
• ri
• RDoc at http://www.ruby-doc.org
Documentation…
![Page 9: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/9.jpg)
9Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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
![Page 10: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/10.jpg)
10Venkat Subramaniam – [email protected] Subramaniam – [email protected]
• Code less, do more
• Java:
• Ruby
Less Clutter
GOJ
![Page 11: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/11.jpg)
11Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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!
![Page 12: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/12.jpg)
12Venkat Subramaniam – [email protected] Subramaniam – [email protected]
Variables• Dynamic typing
• Output:
![Page 13: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/13.jpg)
13Venkat Subramaniam – [email protected] Subramaniam – [email protected]
Types• Everything is an object
![Page 15: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/15.jpg)
15Venkat Subramaniam – [email protected] Subramaniam – [email protected]
Another function
Returns an array
Assigns elements of array to individual variables
![Page 16: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/16.jpg)
16Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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 ]
![Page 17: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/17.jpg)
17Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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
![Page 18: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/18.jpg)
18Venkat Subramaniam – [email protected] Subramaniam – [email protected]
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
![Page 19: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/19.jpg)
19Venkat Subramaniam – [email protected] Subramaniam – [email protected]
Global and Predefined Variables• This is hideous• You may be setting some global variable and
not know it (familiarize yourself)• Some predefs: $_, $0, $$, $&, $!, …
![Page 20: Getting Started with Ruby](https://reader036.vdocuments.mx/reader036/viewer/2022062423/56814bef550346895db8d481/html5/thumbnails/20.jpg)
20Venkat Subramaniam – [email protected] Subramaniam – [email protected]
"" vs '' (Double vs. Single Quotes)• '' is a simple string• Expressions within "" are evaluated
• Better to use ' if you don’t have expressions