100% found this document useful (1 vote)
416 views24 pages

An Introduction To Ruby and Rails: Matthew Bohnsack Wannabe Rubyist November 9 2005

This document provides an introduction to Ruby and the Rails web framework. It outlines what Ruby and Rails are, why they are useful, and some of their major features. The document demonstrates Ruby concepts like objects, classes, and blocks through interactive examples. It also provides a brief demo of generating a TODO list application in Rails. Finally, it recommends resources for learning more about Ruby and Rails.

Uploaded by

anon-615656
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
416 views24 pages

An Introduction To Ruby and Rails: Matthew Bohnsack Wannabe Rubyist November 9 2005

This document provides an introduction to Ruby and the Rails web framework. It outlines what Ruby and Rails are, why they are useful, and some of their major features. The document demonstrates Ruby concepts like objects, classes, and blocks through interactive examples. It also provides a brief demo of generating a TODO list application in Rails. Finally, it recommends resources for learning more about Ruby and Rails.

Uploaded by

anon-615656
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 24

An Introduction to

Ruby and Rails


Matthew Bohnsack
Wannabe Rubyist
November 9th 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

November 9th 2005 An Introduction to Ruby and Rails 2


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 3


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 4


Must have tool #1: irb
# ~/.irbrc

 Interactive ruby console: require 'irb/completion'


use_readline=true
 Experimenton the fly auto_indent_mode=true

 Tab complete object methods


…

November 9th 2005 An Introduction to Ruby and Rails 5


Must have tool #2: ri
 Console-based Ruby doc tool

November 9th 2005 An Introduction to Ruby and Rails 6


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 7


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 8


Ruby in a nutshell – objects have
methods

Bang on the tab key in irb to see the methods that are available for
each object.

November 9th 2005 An Introduction to Ruby and Rails 9


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 10


Ruby in a nutshell – Arrays

November 9th 2005 An Introduction to Ruby and Rails 11


Ruby in a nutshell – Hashes

November 9th 2005 An Introduction to Ruby and Rails 12


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 13


Ruby in a nutshell – Blocks & Iterators

November 9th 2005 An Introduction to Ruby and Rails 14


Ruby in a nutshell – It’s easy to build
classes

November 9th 2005 An Introduction to Ruby and Rails 15


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 16


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 17


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 18


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 19


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 20
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 21


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 22


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 23


The End / Questions

November 9th 2005 An Introduction to Ruby and Rails 24

You might also like