Intro To Ror
Upcoming SlideShare
Loading in...5

Intro To Ror






Total Views
Views on SlideShare
Embed Views



0 Embeds 0

No embeds



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-ShareAlike LicenseCC Attribution-ShareAlike License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Intro To Ror Intro To Ror Presentation Transcript

  • An Introduction to Ruby and Rails Matthew Bohnsack Wannabe Rubyist November 9 th 2005
  • Outline
    • What is Ruby and why should I care?
    • What is Rails and why should I care?
    • Two must-have tools for Ruby development
    • Major Ruby features (the language in a nutshell)
    • Rails overview
    • Where to go for more information
    • Questions / Hacking
  • What is Ruby? Why should I care?
    • What:
      • The Wikipedia answer is here .
      • Created/lead by Matz (Japanese)
      • Open Source interpreted scripting language, like Perl, Python, Tcl, etc., but focused on being very object oriented, expressive, and bringing joy to programming .
      • Principle of least surprise
    • Why:
      • Productivity ideas presented in Ousterhout’s 1998 paper coming to very serious critical mass (and beyond)
      • Learn a new language to learn new ways of thinking about code in any language (e.g., blocks and iterators)
      • Joy!
  • What is Rails? Why should I care?
    • What:
      • Web Framework that makes building database-driven MVC-oriented web apps easy through a template engine, ORM ( ActiveRecord ) and other best practices, such as test driven development, deployment tools, patterns, etc.
      • Much less complicated than J2EE solutions, but perhaps more so than PHP or Perl in cgi-bin.
      • Copy cats are being created in other languages:
        • Python ( TurboGears )
        • Perl (Maypole)
      • + book + online screencasts + online docs & tutorials
    • Why:
      • I’ve been watching the world of web development since ~ 1995, and I’ve never seen anything like Rails in terms of buzz, momentum, adoption rate, etc.
  • Must have tool #1: irb
    • Interactive ruby console :
      • Experiment on the fly
      • Tab complete object methods
    # ~/.irbrc require 'irb/completion ' use_readline=true auto_indent_mode=true
  • Must have tool #2: ri
    • Console-based Ruby doc tool
  • Ruby in a nutshell – irb sessions follow
    • Like all interpreted scripting languages, you can put code into a file, chmod +x, then just execute it.
    • But, we’ll mostly use irb sessions in this presentation…
  • Ruby in a nutshell – objects are everywhere
    • Some languages have built-in types that aren’t objects. Not so with Ruby. Everything’s an object:
  • Ruby in a nutshell – objects have methods Bang on the tab key in irb to see the methods that are available for each object.
  • Ruby in a nutshell – Variables
    • Local variables - start with lower case:
      • foo
      • bar
    • Global variables - start with dollar sign:
      • $foo
      • $bar
    • Constants and Classes – start with capital letter:
      • CONSTANT
      • Class
    • Instance variables – start with at sign:
      • @foo
      • @bar
    • Class variables – start with double at sign:
      • @@foo
      • @@bar
  • Ruby in a nutshell – Arrays
  • Ruby in a nutshell – Hashes
  • Ruby in a nutshell – Symbols
    • Starts with a ‘:’
    • Only one copy of a symbol kept in memory
  • Ruby in a nutshell – Blocks & Iterators
  • Ruby in a nutshell – It’s easy to build classes
  • Ruby in a nutshell – It’s fun to play with classes (like the one we just made)
  • Ruby in a nutshell – Classes are open
    • Example shown here uses our Hacker class, but what happens when the whole language is open?
  • Ruby in a nutshell – Other notes on Classes
    • Ruby only has single inheritance. This makes things simpler, but mix-ins provide much of multiple inheritance’s benefit, without the hassle.
  • Ruby in a nutshell – a few gotchas
    • Despite the principle of least surprise:
      • Zero isn’t false:
      • No increment operator ( foo++ ). Instead use:
        • foo += 1
        • foo = foo + 1
  • Ruby in a nutshell – RubyGems
    • CPAN for Ruby?
    • Examples:
      • gem list
      • gem install redcloth --version ">= 3.0.0"
    • Using gems in your program:
      • require ‘rubygems’
      • require ‘some_gem’
  • Want to learn more Ruby?
    • Excellent, simple, beginner’s tutorial:
    • Other stuff at end of talk
    • Start hacking
  • Quick Rails Demo – Build a TODO list application in 5 minutes
    • Define database
    • rails todo
    • cd todo
    • Edit config/database.yml
    • ./script/generate model Todo
    • ./script/generate scaffold todo
    • Look at scaffolding
    • ./script/server –b
    • Add due_date field, regenerate scaffolding, and check the results
    • ./script/console
  • Where to go for more information
    • Books:
    • Online material:
      • First edition of Pickaxe online for free
      • /
      • why’s (poignant) guide to Ruby
      • Rails screencast (s)
      • Planet Ruby on Rails
  • The End / Questions