Your SlideShare is downloading. ×
Intro To Ror
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Intro To Ror

2,174
views

Published on

Published in: Business, Technology

1 Comment
0 Likes
Statistics
Notes
  • Be the first to like this

No Downloads
Views
Total Views
2,174
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
57
Comments
1
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. An Introduction to Ruby and Rails Matthew Bohnsack Wannabe Rubyist November 9 th 2005
  • 2. 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
    November 9th 2005 An Introduction to Ruby and Rails
  • 3. 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!
    November 9th 2005 An Introduction to Ruby and Rails
  • 4. 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)
      • http://rubyonrails.org/ + 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.
    November 9th 2005 An Introduction to Ruby and Rails
  • 5. Must have tool #1: irb
    • Interactive ruby console :
      • Experiment on the fly
      • Tab complete object methods
    November 9th 2005 An Introduction to Ruby and Rails # ~/.irbrc require 'irb/completion ' use_readline=true auto_indent_mode=true
  • 6. Must have tool #2: ri
    • Console-based Ruby doc tool
    November 9th 2005 An Introduction to Ruby and Rails
  • 7. 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…
    November 9th 2005 An Introduction to Ruby and Rails
  • 8. 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:
    November 9th 2005 An Introduction to Ruby and Rails
  • 9. Ruby in a nutshell – objects have methods November 9th 2005 An Introduction to Ruby and Rails Bang on the tab key in irb to see the methods that are available for each object.
  • 10. 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
    November 9th 2005 An Introduction to Ruby and Rails
  • 11. Ruby in a nutshell – Arrays November 9th 2005 An Introduction to Ruby and Rails
  • 12. Ruby in a nutshell – Hashes November 9th 2005 An Introduction to Ruby and Rails
  • 13. Ruby in a nutshell – Symbols
    • Starts with a ‘:’
    • Only one copy of a symbol kept in memory
    November 9th 2005 An Introduction to Ruby and Rails
  • 14. Ruby in a nutshell – Blocks & Iterators November 9th 2005 An Introduction to Ruby and Rails
  • 15. Ruby in a nutshell – It’s easy to build classes November 9th 2005 An Introduction to Ruby and Rails
  • 16. Ruby in a nutshell – It’s fun to play with classes (like the one we just made) November 9th 2005 An Introduction to Ruby and Rails
  • 17. Ruby in a nutshell – Classes are open
    • Example shown here uses our Hacker class, but what happens when the whole language is open?
    November 9th 2005 An Introduction to Ruby and Rails
  • 18. 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.
    November 9th 2005 An Introduction to Ruby and Rails
  • 19. 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
    November 9th 2005 An Introduction to Ruby and Rails
  • 20. Ruby in a nutshell – RubyGems
    • CPAN for Ruby? http://docs.rubygems.org/
    • Examples:
      • gem list
      • gem install redcloth --version ">= 3.0.0"
    • Using gems in your program:
      • require ‘rubygems’
      • require ‘some_gem’
    November 9th 2005 An Introduction to Ruby and Rails
  • 21. Want to learn more Ruby?
    • Excellent, simple, beginner’s tutorial:
      • http://www.math.umd.edu/~dcarrera/ruby/0.3/index.html
    • Other stuff at end of talk
    • Start hacking
    November 9th 2005 An Introduction to Ruby and Rails
  • 22. 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 www.bohnsack.com
    • Add due_date field, regenerate scaffolding, and check the results
    • ./script/console
    November 9th 2005 An Introduction to Ruby and Rails
  • 23. Where to go for more information
    • Books:
    • Online material:
      • First edition of Pickaxe online for free
      • http://www.ruby-doc.org/
      • why’s (poignant) guide to Ruby
      • http://rubyonrails.org/
      • Rails screencast (s)
      • Planet Ruby on Rails
    November 9th 2005 An Introduction to Ruby and Rails
  • 24. The End / Questions November 9th 2005 An Introduction to Ruby and Rails