Τμήμα Διοικητικής Επιστήμης και Τετνολογίας Οικονομικό Πανεπιστήμιο Αθηνών RUBY ON RAILS Θωμάς Ασίκης Κωνσταντίνος Σταύροσ
AN INTRODUCTION… Some general things: o Ruby is the programming language. o Rails is a Web Development Framework on top of Ruby.
ABOUT RUBY Ruby is: o Dynamic – executes on runtime. o Reflective – modifies itself on runtime. o General purpose – can be used for any programming purpose. oOpen Source… o Object oriented… o High-Level…
THE RUBY STORY Developed in the early-1990s. Created by Yukihiro "Matz" Matsumoto. Originates from Japan. First released on February 1995. Next major release, Ruby 2.0 expected on 2013.
TECHNICAL INFO Interprets to C. Uses the best practices from Perl, Smalltalk, Eiffel, and Lisp. Ruby follows the principle of least astonishment (POLA). Works as expected. Alternative implementations of Ruby, including YARV, JRuby, Rubinius, IronRuby, MacRuby, and HotRuby.
INSTALLING RUBY Depending on tour system there are many different installation ways. The 3 basic Ways are: 1. You can compile it from source. 2. You can install it through 3rd party tools, RVM – Linux/MacOS, Ruby Installer – Windows. 3. Via package managers: Apt-get install, yum install, brew install, pacman –S etc.
FILE EXTENSIONS The most popular file extensions of Ruby (and also Rails) files are: o .rb the Ruby class files. o .gem Ruby package files that may contain Ruby programs and libraries. o .yml data mapping files. o .html.erb Ruby html files.
DO YOU SPEAK RUBY? Ruby is a scripting language, which has one goal: To be programmer friendly. So it's expressive, and closer to physical language.
SOME RUBY TALK Something no one ever seen before… Let’s do an innovative Hello World example: puts "Hello World!"
RUBY LOGIC In Ruby Everything is an object. There are no primitive types. Lines and | are code seperators. No need to declare variable types. For exampe: @name #a variable @name = 2 #a number @name = “Kaiser Chiefs” #a String @name = 1..52 #a range @name = [“Rails”,12,[6,7,9],3..53] #a collection
RUBY LOGIC AGAIN A class example class Person attr_accessor :name end Class instance Example bob = Person.new bob.name = “Bob the Builder” Blocks example – blocks are anonymous functions workers = [Bob, Maria, George, Sylvia] for person in workers do puts person.name end workers.each do |person| puts person.name end
RUBY LOGIC AGAIN AND AGAIN Iterrators example best_workers = workers.select{|person| person.name.include? ”a”} Hashes are a great way to store things: Hash example fav_djs = {“tiesto” => 8, “deadmau5” => 6, “kaskade” => 3, “benassi” => 7} fav_djs[“deadmau5”] >> 6 fav_djs[“benassi”]+=2 >> 9 fav_djs[“afrojack”] = 5
HOW TO HACK SOMETHING USING RUBY… Now we know enough to…
SO? WHAT’S RAILS? •Open source • MVC Web Framework •Optimized for programmer happiness. •Developed for database backed web applications,. •Very AGILE
FOR STARTERS Rails is a ruby web framework. It was designed by David Heinemeier Hansson. Was released as an open source project on 2004. And joined Mac on 2007.
MVC ON RAILS
SOMETIMES PICTURES AREN’T ENOUGH • This pattern splits the view (also called the presentation) in "dumb" templates that are primarily responsible for inserting pre-built data in between HTML tags. • The model contains the "smart" domain objects (such as Account, Product, Person, Post) that holds all the business logic and knows how to persist themselves to a database. • The controller handles the incoming requests (such as Save New Account, Update Product, Show Post) by manipulating the model and directing data to the view.
RAILS FIGHTS FOR Write Less Do More. DRY – Don’t Repeat Yourself. COC – Convention over Configuration. REST- Representational State Transfer.
HOW EASY IS TO LEARN RAILS?
RAILS CAPABILITIES •ORM : Object Relational Mapping. •CRUD: Create Read Update Delete a Database. •Both BDD and TDD: Behavior and Test Driven Development. •Ajax and Web Services. •Meta Programming.
WHAT IS ORM? Active Record (ORM) An ORM layer built-in maps classes to tables so : •Every row is an object. •Every column is an object attribute. Also it uses conventions to minimize configuration.
COMPATIBILITY Most Platforms : Linux, Windows, MacOs etc. Most Databases : MySQL, Sqlite, NoSQL etc. A lot of Web Servers : Nginx, Apache, Passenger etc.
RAILS VS JAVA AND PHP
GETTING STARTED All Rails Apps use the same structure. No matter the editor or IDE you are using, the projects have the same build. The newer versions always support the older.
RAILS 3.0 PROJECT STRUCTURE
DEVELOPER TOOLS Editors: vim, gedit, Textmate and more IDEs: RubyMine, Eclipse with plugin, Aptana, Radrails, 3rdRail
GETTING STARTED Installation, 3 steps: 1. Open your terminal, no matter the OS you are using. 2. Type: gem install rails 3. Press enter, sit back and enjoy.
BUILD YOUR FIRST APP 1. Open your terminal and cd to the folder where you want to place your project . 2. Type & enter: rails new Project_Name 3. Type & enter: rails s 4. Visit your localhost:3000, from your browser 5. You can see your first rails app running
BUILD YOUR FIRST APP This is what you would see…
FAMOUS WEBSITES ON RAILS
FAMOUS WEBSITES ON RAILS
FAMOUS WEBSITES ON RAILS
FAMOUS WEBSITES ON RAILS
USEFUL LINKS • http://rubyonrails.org/ • http://railsforzombies.org/ • http://ruby.railstutorial.org/ • http://www.aptana.com/products/radrails • http://railscasts.com/ • http://www.ruby-forum.com/forum/rails • http://www.google.gr/ • http://www.slideshare.net/
AND SOME PERSONAL TIPS Don’t be afraid to search and try, it pays… a lot.
ANY QUESTIONS ?? Don’t worry guys, we got this.

Ruby on Rails - An overview

  • 1.
    Τμήμα Διοικητικής Επιστήμηςκαι Τετνολογίας Οικονομικό Πανεπιστήμιο Αθηνών RUBY ON RAILS Θωμάς Ασίκης Κωνσταντίνος Σταύροσ
  • 2.
    AN INTRODUCTION… Some generalthings: o Ruby is the programming language. o Rails is a Web Development Framework on top of Ruby.
  • 3.
    ABOUT RUBY Ruby is: oDynamic – executes on runtime. o Reflective – modifies itself on runtime. o General purpose – can be used for any programming purpose. oOpen Source… o Object oriented… o High-Level…
  • 4.
    THE RUBY STORY Developedin the early-1990s. Created by Yukihiro "Matz" Matsumoto. Originates from Japan. First released on February 1995. Next major release, Ruby 2.0 expected on 2013.
  • 5.
    TECHNICAL INFO Interprets toC. Uses the best practices from Perl, Smalltalk, Eiffel, and Lisp. Ruby follows the principle of least astonishment (POLA). Works as expected. Alternative implementations of Ruby, including YARV, JRuby, Rubinius, IronRuby, MacRuby, and HotRuby.
  • 6.
    INSTALLING RUBY Depending ontour system there are many different installation ways. The 3 basic Ways are: 1. You can compile it from source. 2. You can install it through 3rd party tools, RVM – Linux/MacOS, Ruby Installer – Windows. 3. Via package managers: Apt-get install, yum install, brew install, pacman –S etc.
  • 7.
    FILE EXTENSIONS The mostpopular file extensions of Ruby (and also Rails) files are: o .rb the Ruby class files. o .gem Ruby package files that may contain Ruby programs and libraries. o .yml data mapping files. o .html.erb Ruby html files.
  • 8.
    DO YOU SPEAKRUBY? Ruby is a scripting language, which has one goal: To be programmer friendly. So it's expressive, and closer to physical language.
  • 9.
    SOME RUBY TALK Somethingno one ever seen before… Let’s do an innovative Hello World example: puts "Hello World!"
  • 10.
    RUBY LOGIC In RubyEverything is an object. There are no primitive types. Lines and | are code seperators. No need to declare variable types. For exampe: @name #a variable @name = 2 #a number @name = “Kaiser Chiefs” #a String @name = 1..52 #a range @name = [“Rails”,12,[6,7,9],3..53] #a collection
  • 11.
    RUBY LOGIC AGAIN Aclass example class Person attr_accessor :name end Class instance Example bob = Person.new bob.name = “Bob the Builder” Blocks example – blocks are anonymous functions workers = [Bob, Maria, George, Sylvia] for person in workers do puts person.name end workers.each do |person| puts person.name end
  • 12.
    RUBY LOGIC AGAINAND AGAIN Iterrators example best_workers = workers.select{|person| person.name.include? ”a”} Hashes are a great way to store things: Hash example fav_djs = {“tiesto” => 8, “deadmau5” => 6, “kaskade” => 3, “benassi” => 7} fav_djs[“deadmau5”] >> 6 fav_djs[“benassi”]+=2 >> 9 fav_djs[“afrojack”] = 5
  • 13.
    HOW TO HACKSOMETHING USING RUBY… Now we know enough to…
  • 15.
    SO? WHAT’S RAILS? •Opensource • MVC Web Framework •Optimized for programmer happiness. •Developed for database backed web applications,. •Very AGILE
  • 16.
    FOR STARTERS Rails isa ruby web framework. It was designed by David Heinemeier Hansson. Was released as an open source project on 2004. And joined Mac on 2007.
  • 17.
  • 18.
    SOMETIMES PICTURES AREN’TENOUGH • This pattern splits the view (also called the presentation) in "dumb" templates that are primarily responsible for inserting pre-built data in between HTML tags. • The model contains the "smart" domain objects (such as Account, Product, Person, Post) that holds all the business logic and knows how to persist themselves to a database. • The controller handles the incoming requests (such as Save New Account, Update Product, Show Post) by manipulating the model and directing data to the view.
  • 19.
    RAILS FIGHTS FOR WriteLess Do More. DRY – Don’t Repeat Yourself. COC – Convention over Configuration. REST- Representational State Transfer.
  • 20.
    HOW EASY ISTO LEARN RAILS?
  • 21.
    RAILS CAPABILITIES •ORM :Object Relational Mapping. •CRUD: Create Read Update Delete a Database. •Both BDD and TDD: Behavior and Test Driven Development. •Ajax and Web Services. •Meta Programming.
  • 22.
    WHAT IS ORM? ActiveRecord (ORM) An ORM layer built-in maps classes to tables so : •Every row is an object. •Every column is an object attribute. Also it uses conventions to minimize configuration.
  • 23.
    COMPATIBILITY Most Platforms : Linux,Windows, MacOs etc. Most Databases : MySQL, Sqlite, NoSQL etc. A lot of Web Servers : Nginx, Apache, Passenger etc.
  • 24.
  • 25.
    GETTING STARTED All RailsApps use the same structure. No matter the editor or IDE you are using, the projects have the same build. The newer versions always support the older.
  • 26.
  • 27.
    DEVELOPER TOOLS Editors: vim,gedit, Textmate and more IDEs: RubyMine, Eclipse with plugin, Aptana, Radrails, 3rdRail
  • 28.
    GETTING STARTED Installation, 3steps: 1. Open your terminal, no matter the OS you are using. 2. Type: gem install rails 3. Press enter, sit back and enjoy.
  • 29.
    BUILD YOUR FIRSTAPP 1. Open your terminal and cd to the folder where you want to place your project . 2. Type & enter: rails new Project_Name 3. Type & enter: rails s 4. Visit your localhost:3000, from your browser 5. You can see your first rails app running
  • 30.
    BUILD YOUR FIRSTAPP This is what you would see…
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
    USEFUL LINKS • http://rubyonrails.org/ • http://railsforzombies.org/ • http://ruby.railstutorial.org/ • http://www.aptana.com/products/radrails • http://railscasts.com/ • http://www.ruby-forum.com/forum/rails • http://www.google.gr/ • http://www.slideshare.net/
  • 36.
    AND SOME PERSONALTIPS Don’t be afraid to search and try, it pays… a lot.
  • 37.
    ANY QUESTIONS ?? Don’tworry guys, we got this.