0% found this document useful (0 votes)
121 views

The Ruby Programming Language

Ruby is an object-oriented programming language where everything is an object. It uses modules for namespaces, supports single and multiple inheritance, and has public, protected, and private access controls. Ruby is dynamically typed with symbols, variables, classes, and modules. Code blocks use curly braces or the keyword 'end'. Control structures include conditionals like if/else and iterations like for, while, until. Exceptions use begin/rescue/ensure. Data structures include arrays and hashes. Class and method naming conventions separate words with underscores.

Uploaded by

narayanus
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
121 views

The Ruby Programming Language

Ruby is an object-oriented programming language where everything is an object. It uses modules for namespaces, supports single and multiple inheritance, and has public, protected, and private access controls. Ruby is dynamically typed with symbols, variables, classes, and modules. Code blocks use curly braces or the keyword 'end'. Control structures include conditionals like if/else and iterations like for, while, until. Exceptions use begin/rescue/ensure. Data structures include arrays and hashes. Class and method naming conventions separate words with underscores.

Uploaded by

narayanus
Copyright
© © All Rights Reserved
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 13

The Ruby Programming Language

Carol Wolf Computer Science

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 class Person < ActiveRecord:: Base Modules are like namespaces in html and xml.

Modules are used to group classes

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.

Example Program Java


public class People { public static void main (String [] args) { } } // People class Person { String name; int age; Person (String name, int age) { } protected void show_person () { } } // Person System.out.println (name); System.out.println (age); this.name = name; this.age = age; Person girl = new Person ("Alice", 5); girl.show_person ();

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 //; Rubys with #. In Ruby we can write

attr_accessor :name, :age String getName () { } void setName (String name) { }

instead of getters and setters.


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} @size = order[:size]

To retrieve an element, use square brackets

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.

References

Dave Thomas, Programming Ruby 1.9, the Pragmatic Progammers Guide, 3rd edition, The Pragmatic Programmers, 2009 Sam Ruby, Dave Thomas and David Heinemeier Hannson, Agile Web Development with Rails, 4th edition, 2010, Chapter 4

You might also like