Ruby is a dynamic, reflective, general-purpose programming language while Rails is a model-view-controller (MVC) web application framework built on Ruby. Rails was designed to optimize programmer happiness and promote conventions over configurations. It provides full-stack capabilities including object-relational mapping and tools for database management, frontend interface development, and testing. Rails aims to make web development faster and easier.
2. AN INTRODUCTION¡
Some general things:
o Ruby is the programming language.
o Rails is a Web Development
Framework on top of Ruby.
3. ABOUT RUBY
Ruby is:
o Dynamic ¨C executes on runtime.
o Reflective ¨C modifies itself on runtime.
o General purpose ¨C can be used for any
programming purpose.
oOpen Source¡
o Object oriented¡
o High-Level¡
4. 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.
5. 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.
6. 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 ¨C Linux/MacOS,
Ruby Installer ¨C Windows.
3. Via package managers:
Apt-get install, yum install,
brew install, pacman ¨CS etc.
7. 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.
8. 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.
9. SOME RUBY TALK
Something no one ever seen before¡
Let¡¯s do an innovative Hello World example:
puts "Hello World!"
10. 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
11. 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 ¨C 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 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
13. HOW TO HACK SOMETHING USING RUBY¡
Now we know enough to¡
15. SO? WHAT¡¯S RAILS?
?Open source
? MVC Web Framework
?Optimized for programmer happiness.
?Developed for database backed
web applications,.
?Very AGILE
16. 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.
18. 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.
19. RAILS FIGHTS FOR
Write Less Do More.
DRY ¨C Don¡¯t Repeat Yourself.
COC ¨C Convention over Configuration.
REST- Representational State
Transfer.
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?
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.
23. COMPATIBILITY
Most Platforms :
Linux, Windows, MacOs etc.
Most Databases :
MySQL, Sqlite, NoSQL etc.
A lot of Web Servers :
Nginx, Apache, Passenger etc.
25. 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.
27. DEVELOPER TOOLS
Editors: vim, gedit, Textmate
and more
IDEs: RubyMine, Eclipse with
plugin, Aptana, Radrails, 3rdR
ail
28. 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.
29. 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