Ruby On Rails Rebecca Crabb and Blaine Stancill
Transcription
Ruby On Rails Rebecca Crabb and Blaine Stancill
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