SlideShare a Scribd company logo
1 of 12
The Ruby Programming Language
Object Orientation
 Ruby is fully object oriented; everything is an object.
 Inheritance is shown by ‘<‘ instead of ‘extends’.
 Java: class Student extends Person
 Ruby: class Student < Person
 Modules are used to group classes
 class Person < ActiveRecord:: Base
 Modules are like namespaces in html and xml.
 Access controls are similar to Java: public, protected
and private. Each controls everything following it in
a class.
 All variables are accessed by reference.
Variables and Symbols
 Ruby is weakly typed. Variables receive their types
during assignment.
 There is no boolean type, but everything has a value.
False and nil are false and all other objects are true.
 Instance variables (class variables) begin with the ‘@’
sign.
 @name, @age, @course
 Global variables begin with two ‘@’ signs. They are
almost never used.
 Symbols seem to be peculiar to Ruby. They begin with a
colon.
 :name, :age, :course
 Symbols have a name (string) and value (integer) but no
location.
Blocks
 If a block consists of a single line, it is enclosed in curly
braces.
 Usually blocks begin with a control statement and are
terminated with the keyword, ‘end’.
 Indentation, usually two spaces, is used to indicate what
is in the block. Common errors are to have either too few
or too many ‘ends’.
 Variables within a block are local to the block unless they
are instance variables starting with the ‘@’ sign.
 Methods begin with the keyword, ‘def’, and are
terminated with an ‘end’.
 Parameters are enclosed with parentheses. If a method
has no parameters, the parentheses are optional.
Basic Example Program – Java
public class People
{ public static void main (String [] args)
{ Person girl = new Person ("Alice", 5);
girl.show_person ();
}
} // People
class Person
{ String name;
int age;
Person (String name, int age)
{ this.name = name;
this.age = age;
}
protected void show_person ()
{ System.out.println (name);
System.out.println (age);
}
} // Person
Basic Example Program - Ruby
class Person
attr_accessor :name, :age
# initialize is the same as a constructor
def initialize (name, age)
@name = name
@age = age
end
# puts is the same as println
# print is the same as print
def show_person
puts @name
puts @age
end
end
girl = Person.new("Alice", 5)
girl.show_person
Instantiation and Initialization
 Ruby has girl = Person.new(“Alice”, 5).
 Java has Person girl = new Person(“Alice”,5);
 Java comments begin with ‘//’; Ruby’s with ‘#’.
 In Ruby we can write
 attr_accessor :name, :age
instead of getters and setters.
 String getName () { }
 void setName (String name) { }
Data Structures
 Arrays
 Indexed with integers starting at 0.
 Contents do not have to all be the same type.
 Contents can be assigned in a list using square brackets.
 order = [“blue”, 6, 24.95]
 Arrays are objects so must be instantiated with ‘new’.
 Hash Tables
 Key – value pairs
 Keys are almost always symbols
 Contents can be assigned in a list of key-value pairs using
curly braces.
 order = {:color => “blue”, :size => 6, :price => 24.95}
 To retrieve an element, use square brackets
 @size = order[:size]
Control Structures: Conditionals
if order[:color] == “blue”
…
elsif order[:size] == 6
…
else
…
end
Control Structures: Iteration
 for, while and until
for item in order do
puts item
 Iterator ‘each’
sum = 0
[1..10].each do |count|
sum += count
end
puts sum
 count is a parameter to the block and has no value
outside of it.
Exceptions
begin
…
rescue
…
rescue
…
ensure
…
end
 rescue and ensure are the same as catch and finally
 Ruby also has throw and catch, similar to Java
Conventions
 Class names begin with upper case letters.
 Method and variable names use lower case.
 For names with more than one word:
 Class names use camel (or bumpy) case
 class ActiveRecord
 Method and variable names separate words with
underscores.
 def show_person
 @little_girl
 In Rails, table names are the plurals of the record names
 Single record is course
 Table is called courses
 But the model class is called Course.

More Related Content

What's hot (19)

Abstract method
Abstract methodAbstract method
Abstract method
 
JavaScript Variables
JavaScript VariablesJavaScript Variables
JavaScript Variables
 
Java findamentals2
Java findamentals2Java findamentals2
Java findamentals2
 
Ballerina philosophy
Ballerina philosophy Ballerina philosophy
Ballerina philosophy
 
Static keyword ppt
Static keyword pptStatic keyword ppt
Static keyword ppt
 
Java -lec-3
Java -lec-3Java -lec-3
Java -lec-3
 
Keyword of java
Keyword of javaKeyword of java
Keyword of java
 
2 variables and data types
2   variables and data types2   variables and data types
2 variables and data types
 
2- Introduction to java II
2-  Introduction to java II2-  Introduction to java II
2- Introduction to java II
 
Design Patterns in Perl (Grand Rapids Perl Mongers, 2006)
Design Patterns in Perl (Grand Rapids Perl Mongers, 2006)Design Patterns in Perl (Grand Rapids Perl Mongers, 2006)
Design Patterns in Perl (Grand Rapids Perl Mongers, 2006)
 
5- Overriding and Abstraction In Java
5- Overriding and Abstraction In Java5- Overriding and Abstraction In Java
5- Overriding and Abstraction In Java
 
Metaprogramming in Ruby
Metaprogramming in RubyMetaprogramming in Ruby
Metaprogramming in Ruby
 
Is Java seen as a pure object-oriented language or not?
Is Java seen as a pure object-oriented language or not?Is Java seen as a pure object-oriented language or not?
Is Java seen as a pure object-oriented language or not?
 
Oop in kotlin
Oop in kotlinOop in kotlin
Oop in kotlin
 
OOPS in Java
OOPS in JavaOOPS in Java
OOPS in Java
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in java
 
Learn To Code: Diving deep into java
Learn To Code: Diving deep into javaLearn To Code: Diving deep into java
Learn To Code: Diving deep into java
 
C#, OOP introduction and examples
C#, OOP introduction and examplesC#, OOP introduction and examples
C#, OOP introduction and examples
 
Oops in java
Oops in javaOops in java
Oops in java
 

Viewers also liked

2015 Diplom scannet_Eierstyring i prosjekter
2015 Diplom scannet_Eierstyring i prosjekter2015 Diplom scannet_Eierstyring i prosjekter
2015 Diplom scannet_Eierstyring i prosjekterssuser970cca
 
ANNNAPATSORN
ANNNAPATSORNANNNAPATSORN
ANNNAPATSORNannny001
 
Media ownership etc
Media   ownership etcMedia   ownership etc
Media ownership etcAaronn Kumar
 
δελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεων
δελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεωνδελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεων
δελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεωνLia Papapetrou-2nd Geniko Lykeio Echedorou
 
Ejercicios propuestos de excel
Ejercicios propuestos de excelEjercicios propuestos de excel
Ejercicios propuestos de excelNERYS64
 
Overseeing Fairness in the Marketplace_2015
Overseeing Fairness in the Marketplace_2015Overseeing Fairness in the Marketplace_2015
Overseeing Fairness in the Marketplace_2015Jodi Tomchyshyn London
 
Shop Quality Home & Outdoor Decor Products Online
Shop Quality Home & Outdoor Decor Products OnlineShop Quality Home & Outdoor Decor Products Online
Shop Quality Home & Outdoor Decor Products OnlineeTailme
 
Trial sbp-matematik-tambahan-k1-k2-dan-skema
Trial sbp-matematik-tambahan-k1-k2-dan-skemaTrial sbp-matematik-tambahan-k1-k2-dan-skema
Trial sbp-matematik-tambahan-k1-k2-dan-skemajohn tss
 
And without faith it is impossible to please god
And without faith it is impossible to please godAnd without faith it is impossible to please god
And without faith it is impossible to please godShyam Kumar
 
Anaylsis math info
Anaylsis math infoAnaylsis math info
Anaylsis math infoKenneth Tan
 
mother tongue-based - test in math iv
mother tongue-based - test in math ivmother tongue-based - test in math iv
mother tongue-based - test in math ivMarlon Villaluz
 
Stimmenfang mit EduVote (statisch)
Stimmenfang mit EduVote (statisch)Stimmenfang mit EduVote (statisch)
Stimmenfang mit EduVote (statisch)otacke
 
Production schedule
Production scheduleProduction schedule
Production schedulekieran1424
 

Viewers also liked (19)

2015 Diplom scannet_Eierstyring i prosjekter
2015 Diplom scannet_Eierstyring i prosjekter2015 Diplom scannet_Eierstyring i prosjekter
2015 Diplom scannet_Eierstyring i prosjekter
 
ANNNAPATSORN
ANNNAPATSORNANNNAPATSORN
ANNNAPATSORN
 
Media ownership etc
Media   ownership etcMedia   ownership etc
Media ownership etc
 
MST CV 2015A
MST CV 2015AMST CV 2015A
MST CV 2015A
 
Examen de informatica
Examen de informaticaExamen de informatica
Examen de informatica
 
δελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεων
δελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεωνδελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεων
δελτιο τυπου ευχαριστηριο φαρμακειων συλλογου γονεων
 
Ejercicios propuestos de excel
Ejercicios propuestos de excelEjercicios propuestos de excel
Ejercicios propuestos de excel
 
Overseeing Fairness in the Marketplace_2015
Overseeing Fairness in the Marketplace_2015Overseeing Fairness in the Marketplace_2015
Overseeing Fairness in the Marketplace_2015
 
Moving towards real-time commerce
Moving towards real-time commerceMoving towards real-time commerce
Moving towards real-time commerce
 
Shop Quality Home & Outdoor Decor Products Online
Shop Quality Home & Outdoor Decor Products OnlineShop Quality Home & Outdoor Decor Products Online
Shop Quality Home & Outdoor Decor Products Online
 
ENGITA EDUCATION glossary
ENGITA EDUCATION glossaryENGITA EDUCATION glossary
ENGITA EDUCATION glossary
 
Trial sbp-matematik-tambahan-k1-k2-dan-skema
Trial sbp-matematik-tambahan-k1-k2-dan-skemaTrial sbp-matematik-tambahan-k1-k2-dan-skema
Trial sbp-matematik-tambahan-k1-k2-dan-skema
 
And without faith it is impossible to please god
And without faith it is impossible to please godAnd without faith it is impossible to please god
And without faith it is impossible to please god
 
Anaylsis math info
Anaylsis math infoAnaylsis math info
Anaylsis math info
 
MPA a
MPA aMPA a
MPA a
 
Grupos primarios
Grupos primariosGrupos primarios
Grupos primarios
 
mother tongue-based - test in math iv
mother tongue-based - test in math ivmother tongue-based - test in math iv
mother tongue-based - test in math iv
 
Stimmenfang mit EduVote (statisch)
Stimmenfang mit EduVote (statisch)Stimmenfang mit EduVote (statisch)
Stimmenfang mit EduVote (statisch)
 
Production schedule
Production scheduleProduction schedule
Production schedule
 

Similar to learn Ruby at ASIT

The ruby programming language
The ruby programming languageThe ruby programming language
The ruby programming languagepraveen0202
 
RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0tutorialsruby
 
RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0tutorialsruby
 
Ruby data types and objects
Ruby   data types and objectsRuby   data types and objects
Ruby data types and objectsHarkamal Singh
 
The Java Script Programming Language
The  Java Script  Programming  LanguageThe  Java Script  Programming  Language
The Java Script Programming Languagezone
 
Les origines de Javascript
Les origines de JavascriptLes origines de Javascript
Les origines de JavascriptBernard Loire
 
Javascript by Yahoo
Javascript by YahooJavascript by Yahoo
Javascript by Yahoobirbal
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming LanguageRaghavan Mohan
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9sagaroceanic11
 
Scala for Java Developers
Scala for Java DevelopersScala for Java Developers
Scala for Java DevelopersRamnivasLaddad
 

Similar to learn Ruby at ASIT (20)

The ruby programming language
The ruby programming languageThe ruby programming language
The ruby programming language
 
RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0
 
RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0RubyMiniGuide-v1.0_0
RubyMiniGuide-v1.0_0
 
Ruby data types and objects
Ruby   data types and objectsRuby   data types and objects
Ruby data types and objects
 
Ruby Basics
Ruby BasicsRuby Basics
Ruby Basics
 
Ruby
RubyRuby
Ruby
 
Ruby basics
Ruby basicsRuby basics
Ruby basics
 
The Java Script Programming Language
The  Java Script  Programming  LanguageThe  Java Script  Programming  Language
The Java Script Programming Language
 
Les origines de Javascript
Les origines de JavascriptLes origines de Javascript
Les origines de Javascript
 
Javascript by Yahoo
Javascript by YahooJavascript by Yahoo
Javascript by Yahoo
 
The JavaScript Programming Language
The JavaScript Programming LanguageThe JavaScript Programming Language
The JavaScript Programming Language
 
Javascript
JavascriptJavascript
Javascript
 
Javascript
JavascriptJavascript
Javascript
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9Rubyforjavaprogrammers 1210167973516759-9
Rubyforjavaprogrammers 1210167973516759-9
 
Java Script Introduction
Java Script IntroductionJava Script Introduction
Java Script Introduction
 
Scala for Java Developers
Scala for Java DevelopersScala for Java Developers
Scala for Java Developers
 
PCSTt11 overview of java
PCSTt11 overview of javaPCSTt11 overview of java
PCSTt11 overview of java
 
Ruby Programming
Ruby ProgrammingRuby Programming
Ruby Programming
 
java
java java
java
 

More from ASIT

Asit education student review
Asit education student reviewAsit education student review
Asit education student reviewASIT
 
ASIT EDUCATION STUDENT REVIEWS
ASIT EDUCATION STUDENT REVIEWSASIT EDUCATION STUDENT REVIEWS
ASIT EDUCATION STUDENT REVIEWSASIT
 
Asit Education
Asit EducationAsit Education
Asit EducationASIT
 
Asit Education Student Reviews
Asit Education Student ReviewsAsit Education Student Reviews
Asit Education Student ReviewsASIT
 
Asit education Student review
Asit education Student reviewAsit education Student review
Asit education Student reviewASIT
 
ASIT EDUCATION REVIEW
ASIT EDUCATION REVIEWASIT EDUCATION REVIEW
ASIT EDUCATION REVIEWASIT
 
Asit Never Cheats Unemployes
Asit Never Cheats UnemployesAsit Never Cheats Unemployes
Asit Never Cheats UnemployesASIT
 
Latest News on Amc Square Asit
Latest News on Amc Square AsitLatest News on Amc Square Asit
Latest News on Amc Square AsitASIT
 
Asit amc never cheats students
Asit amc never cheats studentsAsit amc never cheats students
Asit amc never cheats studentsASIT
 
News on AMC Square ASIT
News on AMC Square ASITNews on AMC Square ASIT
News on AMC Square ASITASIT
 
News on Asit Amc
News on Asit AmcNews on Asit Amc
News on Asit AmcASIT
 
Time Management
Time ManagementTime Management
Time ManagementASIT
 
introduction to Mongodb
introduction to Mongodbintroduction to Mongodb
introduction to MongodbASIT
 
introduction to hadoop
introduction to hadoopintroduction to hadoop
introduction to hadoopASIT
 
ASIT REVIEWS
ASIT REVIEWSASIT REVIEWS
ASIT REVIEWSASIT
 
ASIT REVIEWS
ASIT REVIEWSASIT REVIEWS
ASIT REVIEWSASIT
 
Learn REST API at ASIT
Learn REST API at ASITLearn REST API at ASIT
Learn REST API at ASITASIT
 
Learn C LANGUAGE at ASIT
Learn C LANGUAGE at ASITLearn C LANGUAGE at ASIT
Learn C LANGUAGE at ASITASIT
 
Learn Advanced JAVA at ASIT
Learn Advanced JAVA at ASITLearn Advanced JAVA at ASIT
Learn Advanced JAVA at ASITASIT
 
Learn WCF at ASIT
Learn  WCF at ASITLearn  WCF at ASIT
Learn WCF at ASITASIT
 

More from ASIT (20)

Asit education student review
Asit education student reviewAsit education student review
Asit education student review
 
ASIT EDUCATION STUDENT REVIEWS
ASIT EDUCATION STUDENT REVIEWSASIT EDUCATION STUDENT REVIEWS
ASIT EDUCATION STUDENT REVIEWS
 
Asit Education
Asit EducationAsit Education
Asit Education
 
Asit Education Student Reviews
Asit Education Student ReviewsAsit Education Student Reviews
Asit Education Student Reviews
 
Asit education Student review
Asit education Student reviewAsit education Student review
Asit education Student review
 
ASIT EDUCATION REVIEW
ASIT EDUCATION REVIEWASIT EDUCATION REVIEW
ASIT EDUCATION REVIEW
 
Asit Never Cheats Unemployes
Asit Never Cheats UnemployesAsit Never Cheats Unemployes
Asit Never Cheats Unemployes
 
Latest News on Amc Square Asit
Latest News on Amc Square AsitLatest News on Amc Square Asit
Latest News on Amc Square Asit
 
Asit amc never cheats students
Asit amc never cheats studentsAsit amc never cheats students
Asit amc never cheats students
 
News on AMC Square ASIT
News on AMC Square ASITNews on AMC Square ASIT
News on AMC Square ASIT
 
News on Asit Amc
News on Asit AmcNews on Asit Amc
News on Asit Amc
 
Time Management
Time ManagementTime Management
Time Management
 
introduction to Mongodb
introduction to Mongodbintroduction to Mongodb
introduction to Mongodb
 
introduction to hadoop
introduction to hadoopintroduction to hadoop
introduction to hadoop
 
ASIT REVIEWS
ASIT REVIEWSASIT REVIEWS
ASIT REVIEWS
 
ASIT REVIEWS
ASIT REVIEWSASIT REVIEWS
ASIT REVIEWS
 
Learn REST API at ASIT
Learn REST API at ASITLearn REST API at ASIT
Learn REST API at ASIT
 
Learn C LANGUAGE at ASIT
Learn C LANGUAGE at ASITLearn C LANGUAGE at ASIT
Learn C LANGUAGE at ASIT
 
Learn Advanced JAVA at ASIT
Learn Advanced JAVA at ASITLearn Advanced JAVA at ASIT
Learn Advanced JAVA at ASIT
 
Learn WCF at ASIT
Learn  WCF at ASITLearn  WCF at ASIT
Learn WCF at ASIT
 

learn Ruby at ASIT

  • 2. Object Orientation  Ruby is fully object oriented; everything is an object.  Inheritance is shown by ‘<‘ instead of ‘extends’.  Java: class Student extends Person  Ruby: class Student < Person  Modules are used to group classes  class Person < ActiveRecord:: Base  Modules are like namespaces in html and xml.  Access controls are similar to Java: public, protected and private. Each controls everything following it in a class.  All variables are accessed by reference.
  • 3. Variables and Symbols  Ruby is weakly typed. Variables receive their types during assignment.  There is no boolean type, but everything has a value. False and nil are false and all other objects are true.  Instance variables (class variables) begin with the ‘@’ sign.  @name, @age, @course  Global variables begin with two ‘@’ signs. They are almost never used.  Symbols seem to be peculiar to Ruby. They begin with a colon.  :name, :age, :course  Symbols have a name (string) and value (integer) but no location.
  • 4. Blocks  If a block consists of a single line, it is enclosed in curly braces.  Usually blocks begin with a control statement and are terminated with the keyword, ‘end’.  Indentation, usually two spaces, is used to indicate what is in the block. Common errors are to have either too few or too many ‘ends’.  Variables within a block are local to the block unless they are instance variables starting with the ‘@’ sign.  Methods begin with the keyword, ‘def’, and are terminated with an ‘end’.  Parameters are enclosed with parentheses. If a method has no parameters, the parentheses are optional.
  • 5. Basic Example Program – Java public class People { public static void main (String [] args) { Person girl = new Person ("Alice", 5); girl.show_person (); } } // People class Person { String name; int age; Person (String name, int age) { this.name = name; this.age = age; } protected void show_person () { System.out.println (name); System.out.println (age); } } // Person
  • 6. Basic Example Program - Ruby class Person attr_accessor :name, :age # initialize is the same as a constructor def initialize (name, age) @name = name @age = age end # puts is the same as println # print is the same as print def show_person puts @name puts @age end end girl = Person.new("Alice", 5) girl.show_person
  • 7. Instantiation and Initialization  Ruby has girl = Person.new(“Alice”, 5).  Java has Person girl = new Person(“Alice”,5);  Java comments begin with ‘//’; Ruby’s with ‘#’.  In Ruby we can write  attr_accessor :name, :age instead of getters and setters.  String getName () { }  void setName (String name) { }
  • 8. Data Structures  Arrays  Indexed with integers starting at 0.  Contents do not have to all be the same type.  Contents can be assigned in a list using square brackets.  order = [“blue”, 6, 24.95]  Arrays are objects so must be instantiated with ‘new’.  Hash Tables  Key – value pairs  Keys are almost always symbols  Contents can be assigned in a list of key-value pairs using curly braces.  order = {:color => “blue”, :size => 6, :price => 24.95}  To retrieve an element, use square brackets  @size = order[:size]
  • 9. Control Structures: Conditionals if order[:color] == “blue” … elsif order[:size] == 6 … else … end
  • 10. Control Structures: Iteration  for, while and until for item in order do puts item  Iterator ‘each’ sum = 0 [1..10].each do |count| sum += count end puts sum  count is a parameter to the block and has no value outside of it.
  • 11. Exceptions begin … rescue … rescue … ensure … end  rescue and ensure are the same as catch and finally  Ruby also has throw and catch, similar to Java
  • 12. Conventions  Class names begin with upper case letters.  Method and variable names use lower case.  For names with more than one word:  Class names use camel (or bumpy) case  class ActiveRecord  Method and variable names separate words with underscores.  def show_person  @little_girl  In Rails, table names are the plurals of the record names  Single record is course  Table is called courses  But the model class is called Course.