SlideShare a Scribd company logo
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

More Related Content

PPT
Intro To Ror
PPT
Intro To Ror
KEY
IronRuby for the .NET Developer
PDF
Ruby Presentation - Beamer
PPTX
Jaoo irony
PDF
Ruby Presentation
PDF
IronRuby for the Rubyist
PPTX
IronRuby And The DLR
Intro To Ror
Intro To Ror
IronRuby for the .NET Developer
Ruby Presentation - Beamer
Jaoo irony
Ruby Presentation
IronRuby for the Rubyist
IronRuby And The DLR

What's hot (19)

PDF
TypeProf for IDE: Enrich Development Experience without Annotations
PDF
Introduction to Kotlin coroutines
PDF
Iron* - An Introduction to Getting Dynamic on .NET
PPTX
Ruby Programming Language - Introduction
PDF
A Static Type Analyzer of Untyped Ruby Code for Ruby 3
KEY
MacRuby: What is it? and why should you care?
PDF
Kotlin from-scratch
PDF
Ruby projects of interest for DevOps
PPTX
Ruby Loves Dot Net
PDF
Ruby formatters
PDF
Enjoy Ruby Programming in IDE and TypeProf
PDF
Bldr: A Minimalist JSON Templating DSL
ODP
Special Subject 1+2: RoR 2
PDF
Crystal
PDF
ruby-cocoa
PDF
Sharing (or stealing) the jewels of python with big data & the jvm (1)
PDF
MacRuby
PDF
From V8 to Modern Compilers
KEY
Opal - Ruby Style!! Ruby in the browser
TypeProf for IDE: Enrich Development Experience without Annotations
Introduction to Kotlin coroutines
Iron* - An Introduction to Getting Dynamic on .NET
Ruby Programming Language - Introduction
A Static Type Analyzer of Untyped Ruby Code for Ruby 3
MacRuby: What is it? and why should you care?
Kotlin from-scratch
Ruby projects of interest for DevOps
Ruby Loves Dot Net
Ruby formatters
Enjoy Ruby Programming in IDE and TypeProf
Bldr: A Minimalist JSON Templating DSL
Special Subject 1+2: RoR 2
Crystal
ruby-cocoa
Sharing (or stealing) the jewels of python with big data & the jvm (1)
MacRuby
From V8 to Modern Compilers
Opal - Ruby Style!! Ruby in the browser
Ad

Viewers also liked (7)

PPT
PPTX
Yohn erney cardona 9ºd
PPT
My very first power point
PPT
Codes and conventions of thriller films
PPT
Locations powerpoint
PDF
Lampiran surat pengumuman pkm didanai 2012 3
PPTX
Test presentation
Yohn erney cardona 9ºd
My very first power point
Codes and conventions of thriller films
Locations powerpoint
Lampiran surat pengumuman pkm didanai 2012 3
Test presentation
Ad

Similar to Intro for RoR (20)

PPT
Introduction to Ruby on Rails
PDF
Ebay News 2001 4 19 Earnings
PDF
Ebay News 2000 10 19 Earnings
PDF
P4 P Update January 2009
PDF
Ruby tutorial
PPT
Ruby on Rails (RoR) as a back-end processor for Apex
PPTX
Ruby'on'rails
PDF
Ruby hellug
PDF
Book of ruby
DOC
Pré Descobrimento Do Brasil
PDF
ruby_vs_perl_and_python
PDF
ruby_vs_perl_and_python
PDF
Ruby On Rails pizza training
PPTX
Ruby on Rails - An overview
PDF
Ruby Beyond Rails
PDF
Ruby an overall approach
PDF
Fukuoka Ruby Award 2023 - Opal
PPTX
Introduction to Ruby on Rails
PPTX
Why ruby
PPTX
Ruby programming
Introduction to Ruby on Rails
Ebay News 2001 4 19 Earnings
Ebay News 2000 10 19 Earnings
P4 P Update January 2009
Ruby tutorial
Ruby on Rails (RoR) as a back-end processor for Apex
Ruby'on'rails
Ruby hellug
Book of ruby
Pré Descobrimento Do Brasil
ruby_vs_perl_and_python
ruby_vs_perl_and_python
Ruby On Rails pizza training
Ruby on Rails - An overview
Ruby Beyond Rails
Ruby an overall approach
Fukuoka Ruby Award 2023 - Opal
Introduction to Ruby on Rails
Why ruby
Ruby programming

Recently uploaded (20)

DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
NewMind AI Monthly Chronicles - July 2025
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
KodekX | Application Modernization Development
PDF
Machine learning based COVID-19 study performance prediction
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
cuic standard and advanced reporting.pdf
PDF
Electronic commerce courselecture one. Pdf
PPTX
MYSQL Presentation for SQL database connectivity
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
Understanding_Digital_Forensics_Presentation.pptx
The AUB Centre for AI in Media Proposal.docx
NewMind AI Monthly Chronicles - July 2025
Advanced methodologies resolving dimensionality complications for autism neur...
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Mobile App Security Testing_ A Comprehensive Guide.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
KodekX | Application Modernization Development
Machine learning based COVID-19 study performance prediction
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
The Rise and Fall of 3GPP – Time for a Sabbatical?
Network Security Unit 5.pdf for BCA BBA.
cuic standard and advanced reporting.pdf
Electronic commerce courselecture one. Pdf
MYSQL Presentation for SQL database connectivity
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
Approach and Philosophy of On baking technology
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
NewMind AI Weekly Chronicles - August'25 Week I
Understanding_Digital_Forensics_Presentation.pptx

Intro for RoR

  • 1. An Introduction to Ruby and Rails Matthew Bohnsack Wannabe Rubyist November 9th 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 2
  • 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 3
  • 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 4
  • 5. 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
  • 6. Must have tool #2: ri  Console-based Ruby doc tool November 9th 2005 An Introduction to Ruby and Rails 6
  • 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 7
  • 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 8
  • 9. 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
  • 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 10
  • 11. Ruby in a nutshell – Arrays November 9th 2005 An Introduction to Ruby and Rails 11
  • 12. Ruby in a nutshell – Hashes November 9th 2005 An Introduction to Ruby and Rails 12
  • 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 13
  • 14. Ruby in a nutshell – Blocks & Iterators November 9th 2005 An Introduction to Ruby and Rails 14
  • 15. Ruby in a nutshell – It’s easy to build classes November 9th 2005 An Introduction to Ruby and Rails 15
  • 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 16
  • 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 17
  • 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 18
  • 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 19
  • 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 20
  • 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 21
  • 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 22
  • 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 23
  • 24. The End / Questions November 9th 2005 An Introduction to Ruby and Rails 24