Ruby On Rails

peruvianwageslaveInternet and Web Development

Feb 5, 2013 (4 years and 8 months ago)

91 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


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 Setters

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


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