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