750 likes | 1.68k Views
Ruby On Rails. Rebecca Crabb and Blaine Stancill. Ruby. Open-Source Programming Language Created by Yukihiro Matsumoto Blended parts of other languages “I wanted a scripting language that was more powerful than Perl and more object-oriented than Python” Public release in 1995
E N D
Ruby On Rails Rebecca Crabb and Blaine Stancill
Ruby • Open-Source Programming Language • Created by Yukihiro Matsumoto • Blended parts of other languages • “I wanted a scripting language that was more powerful than Perl and more object-oriented than Python” • Public release in 1995 • Achieved mass acceptance in 2006 with Ruby On Rails
Why Ruby? • Ruby: puts “Hello World!” • Java: threeVeryLongLines.weHopeWork… • Perl: #$<!&; • Lisp: ((a(((b)))c))) No, But Really…
Ruby vs Java Ruby Java The empty program: Class Test { public static void main(String[] args){} } Basic Getters and Setters class Circle{ private float radius; public void setRadius(float radius){ this.radius = radius; } public float getRadius(){ return radius; } } • The empty program: • Basic Getters and Setters class Circle attr_accessor :radius end
Ruby VS JAVA Ruby Java List: List<String> languages = new LinkedList<String>(); languages.add(“Java”); languages.add(“Ruby”); • List: stuff = [ ] stuff << “Java”, “Ruby”
Objects • Everything is an object • Does not have primitives like Java
TypeCasting “If it walks like a duck and talks like a duck, it’s a duck!” • The “Duck Typing” philosophy • Define an object by what it can do, not its type • Current set of methods and properties • Variable naming • var could be a local variable • @var is an instance variable • $var is a global variable
Ruby on Rails • Open source web application framework for Ruby • Designed for Agile development • Released in July 2004 • In August 2006 Apple announced that it would ship RoR with Mac OS X Leopard • Rails provided a purpose for Ruby • Rails using Model-View-Controller architecture
Philosophy and Design • Convention over Configuration • Naming conventions • Class Sale in the model, the corresponding table in database is called sales by default • Less Code • Don’t Repeat Yourself • Scaffolding • Automatically create full CRUD support for database table • Generators • Built in scripts to automatically generate parts of framework
Active Record • It’s the M in MVC • Handles the automatic mapping of your database tables to your runtime model objects • Tables to classes • Rows to objects • Columns to object attributes • Don’t need to see or use SQL • But still can if necessary • Relational database
Database Access • team.rb is our model: class Team < ActiveRecord::Base has_many :players has_one :coach belongs_to :conference end • Retrieve all the players: @team= Team.find_by_school_and_sport(“unc”,”basketball”) @team.players
The Rails way • Quick and easy development • Built for scalability • Every app is structured the same • Convention over Configuration • Don’t Repeat Yourself
More Info ON RoR • http://www.ruby-lang.org/en/about/ • http://rubyonrails.org/ • http://onlamp.com/pub/a/onlamp/2005/10/13/what_is_rails.html?page=3 • http://railstutorial.org/chapters/a-demo-app
References • http://www.ruby-lang.org/en/about/ • http://rubyonrails.org/ • http://onlamp.com/pub/a/onlamp/2005/10/13/what_is_rails.html?page=3 • http://railstutorial.org/chapters/a-demo-app • http://slideshare.net/Belighted/ruby-vs-java • http://slideshare.net/vishnu/the-top-10-reasons-the-ruby-programming-language-sucks • http://en.wikipedia.org/wiki/Diamond_problem