Getting Started with Ruby What's Ruby?

Getting Started with Ruby What's Ruby?

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.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    11 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us