
Getting Started with Ruby Venkat Subramaniam – [email protected] 1 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 Venkat Subramaniam – [email protected] 2 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) Venkat Subramaniam – [email protected] 3 Downloading Ruby •Ruby site – http://www.ruby-lang.org • For windows, you may use one-click installer http://rubyinstaller.rubyforge.org Venkat Subramaniam – [email protected] 4 Ruby Version • You can find the version of ruby you’re using by typing ruby –v Venkat Subramaniam – [email protected] 5 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 Venkat Subramaniam – [email protected] 6 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 Venkat Subramaniam – [email protected] 7 Documentation… •ri • RDoc at http://www.ruby-doc.org Venkat Subramaniam – [email protected] 8 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 that references Pizza class object Venkat Subramaniam – [email protected] 9 Less Clutter • Code less, do more • Java: GOJ •Ruby Venkat Subramaniam – [email protected] 10 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! Venkat Subramaniam – [email protected] 11 Variables • Dynamic typing •Output: Venkat Subramaniam – [email protected] 12 Types • Everything is an object Venkat Subramaniam – [email protected] 13 Writing a function Venkat Subramaniam – [email protected] 14 Another function Returns an array Assigns elements of array to individual variables Venkat Subramaniam – [email protected] 15 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 ☺] Venkat Subramaniam – [email protected] 16 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 Venkat Subramaniam – [email protected] 17 Method convention talks to you • You can figure out what a method is up to from its looks Query method Doesn’t modify object Has side effect; mutates object • Methods may end with an = – the method may appear as l-value Venkat Subramaniam – [email protected] 18 Global and Predefined Variables •This is hideous • You may be setting some global variable and not know it (familiarize yourself) • Some predefs: $_, $0, $$, $&, $!, … Venkat Subramaniam – [email protected] 19 "" vs '' (Double vs. Single Quotes) • '' is a simple string • Expressions within "" are evaluated • Better to use ' if you don’t have expressions Venkat Subramaniam – [email protected] 20 More on Strings Venkat Subramaniam – [email protected] 21.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages11 Page
-
File Size-