17
Ruby On Rails Rebecca Crabb and Blaine Stancill

Ruby On Rails Rebecca Crabb and Blaine Stancill. Ruby Open-Source Programming LanguageOpen-Source Programming Language Created by Yukihiro MatsumotoCreated

  • View
    221

  • Download
    0

Embed Size (px)

Citation preview

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:

• Basic Getters and Settersclass Circle

attr_accessor :radius

end

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;

}

}

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/what_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-ruby-programming-language-sucks

• http://en.wikipedia.org/wiki/Diamond_problem