Download Ruby On Rails Rebecca Crabb and Blaine Stancill

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
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
• The empty program:
Java
•
The empty program:
Class Test {
public static void main(String[] args){}
}
•
• Basic Getters and Setters
class Circle
attr_accessor :radius
end
Basic Getters and Setters
class Circle{
private float radius;
public void setRadius(float radius){
this.radius = radius;
}
public float getRadius(){
return radius;
}
}
Ruby VS JAVA
Ruby
• List:
stuff = [ ]
stuff << “Java”, “Ruby”
Java
• List:
List<String> languages = new
LinkedList<String>();
languages.add(“Java”);
languages.add(“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
MVC Pattern
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
ViDeoS
More Info ON RoR
• http://www.ruby-lang.org/en/about/
• http://rubyonrails.org/
• http://onlamp.com/pub/a/onlamp/2005/10/13/wha
t_is_rails.html?page=3
• http://railstutorial.org/chapters/a-demo-app
Questions?
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-rubyprogramming-language-sucks
• http://en.wikipedia.org/wiki/Diamond_problem