SlideShare a Scribd company logo
Introduction To Ruby
     Programming



    Bindesh Vijayan
Ruby as OOPs
●   Ruby is a genuine Object
    oriented programming
●   Everything you manipulate is an
    object
●   And the results of the
    manipulation is an object
●   e.g. The number 4,if used, is an
    object
        Irb> 4.class      Python : len()
           Fixnum        Ruby: obj.length
Setting up and installing ruby
●   There are various ways of
    installing ruby
    ●   RailsInstaller for windows and osx
        (http://railsinstaller.org)
    ●   Compiling from source
    ●   Using a package manager like
        rvm..most popular
Ruby version
           manager(rvm)
●   In the ruby world, rvm is the most
    popular method to install ruby and
    rails
●   Rvm is only available for mac os
    x,linux and unix
●   Rvm allows you to work with
    multiple versions of ruby
●   To install rvm you need to have
    the curl program installed
Installing rvm(linux)
$ sudo apt-get install curl


$ curl -L https://get.rvm.io | bash -s stable –ruby


$ rvm requirements


$ rvm install 1.9.3
Standard types - numbers
●   Numbers
    ●   Ruby supports integers and floating point
        numbers
    ●    Integers within a certain range (normally
        -230 to 230-1 or -262 to 262-1) are held
        internally in binary form, and are objects
        of class Fixnum
    ●   Integers outside the above range are
        stored in objects of class Bignum
    ●   Ruby automatically manages the
        conversion of Fixnum to Bignum and vice
        versa
    ●   Integers in ruby support several types
        of iterators
Standard types- numbers
●   e.g. Of iterators
    ●   3.times          {   print "X " }
    ●   1.upto(5)        {   |i| print i, " " }
    ●   99.downto(95)    {   |i| print i, " " }
    ●   50.step(80, 5)   {   |i| print i, " " }
Standard types - strings
●   Strings in ruby are simply a sequence of
    8-bit bytes
●   In ruby strings can be assigned using
    either a double quotes or a single quote
    ●   a_string1 = 'hello world'
    ●   a_string2 = “hello world”
●   The difference comes
●    when you want to use a special
    character e.g. An apostrophe
    ●   a_string1 = “Binn's world”
    ●   a_string2 = 'Binn's world' # you need to
        use an escape sequence here
Standard types - string
●   Single quoted strings only
    supports 2 escape sequences, viz.
     ●   ' - single quote
     ●    - single backslash
●   Double quotes allows for many
    more escape sequences
●   They also allow you to embed
    variables or ruby code commonly
    called as interpolation
    puts "Enter name"
    name = gets.chomp
    puts "Your name is #{name}"
Standard types - string
Common escape sequences available are :

  ●   "   –   double quote
  ●      –   single backslash
  ●   a   –   bell/alert
  ●   b   –   backspace
  ●   r   –   carriage return
  ●   n   –   newline
  ●   s   –   space
  ●   t   –   tab
  ●
Working with strings
gsub              Returns a copy of str with            str.gsub( pattern,
                  all occurrences of pattern            replacement )
                  replaced with either
                  replacement or the value of
                  the block.
chomp             Returns a new String with             str.chomp
                  the given record separator
                  removed from the end of str
                  (if present).
count             Return the count of                   str.count
                  characters inside string
strip             Removes leading and                   str.strip
                  trailing spaces from a
                  string
to_i              Converts the string to a              str.to_i
                  number(Fixnum)
upcase            Upcases the content of the            str.upcase
                  strings

  http://www.ruby-doc.org/core-1.9.3/String.html#method-i-strip
Standard types - ranges
●   A Range represents an interval—a set of
    values with a start and an end
●   In ruby, Ranges may be constructed using
    the s..e and s...e literals, or with
    Range::new
●   ('a'..'e').to_a    #=> ["a", "b", "c",
    "d", "e"]
●   ('a'...'e').to_a   #=> ["a", "b", "c",
    "d"]
Using ranges
●   Comparison
    ●   (0..2) == (0..2)           #=>
        true
    ●   (0..2) == Range.new(0,2)   #=>
        true
    ●   (0..2) == (0...2)          #=>
        false
Using ranges
●   Using in iteration
     (10..15).each do |n|
        print n, ' '
     end
Using ranges
●   Checking for members
    ●   ("a".."z").include?("g")   # -> true
    ●   ("a".."z").include?("A")   # ->
        false
Methods
●   Methods are defined using the def
    keyword
●   By convention methods that act as a
    query are often named in ruby with a
    trailing '?'
    ●   e.g. str.instance_of?
●   Methods that might be
    dangerous(causing an exception e.g.)
    or modify the reciever are named with
    a trailing '!'
    ●   e.g.   user.save!
●   '?' and '!' are the only 2 special
    characters allowed in method name
Defining methods
●   Simple method:
     def mymethod
     end
●   Methods with arguments:
     def mymethod2(arg1, arg2)
     end
●   Methods with variable length arguments
     def varargs(arg1, *rest)
       "Got #{arg1} and #{rest.join(', ')}"
     end
Methods
●   In ruby, the last line of the
    method statement is returned back
    and there is no need to explicitly
    use a return statement
     def get_message(name)
       “hello, #{name}”
       end
.Calling a method :
     get_message(“bin”)
●   Calling a method without arguments
    :
     mymethod #calls the method
Methods with blocks
●   When a method is called, it can be given
    a random set of code to be executed
    called as blocks
     def takeBlock(p1)
         if block_given?
              yield(p1)
       else
             p1
      end
     end
Calling methods with
        blocks
takeBlock("no block") #no block
provided
takeBlock("no block") { |s|
s.sub(/no /, '') }
Classes
●   Classes in ruby are defined by
    using the keyword 'class'
●   By convention, ruby demands that
    the class name should be capital
●   An initialize method inside a
    class acts as a constructor
●   An instance variable can be
    created using @
class
SimpleClass

end


//instantiate an
object

s1 =
SimpleClass.new




class Book

      def intitialize(title,author)
       @title = title
       @author = author
       end
end



//creating an object of the class

b1 = Book.new("programming ruby","David")
Making an attribute
           accessible
●   Like in any other object oriented
    programming language, you will need
    to manipulate the attributes
●   Ruby makes this easy with the
    keyword 'attr_reader' and
    'attr_writer'
●   This defines the getter and the
    setter methods for the attributes
class Book

 attr_reader :title, :author

 def initialize(title,author)
   @title = title
   @author = author
 end

end

#using getters
CompBook = Book.new(“A book”, “me”)
Puts CompBook.title
Symbols
●   In ruby symbols can be declared using ':'
●   e.g :name
●   Symbols are a kind of strings
●   The important difference is that they are immutable
    unlike strings
●   Mutable objects can be changed after assignment while
    immutable objects can only be overwritten.
    ●   puts "hello" << " world"
    ●   puts :hello << :" world"
Making an attribute
        writeable
class Book

 attr_writer :title, :author
 def initialize(title,author)
   @title = title
   @author = author
 end

end
myBook = Book.new("A book",
"author")

myBook.title = "Some book"
Class variables
●   Sometimes you might need to declare a
    class variable in your class definition
●   Class variables have a single copy for
    all the class objects
●   In ruby, you can define a class variable
    using @@ symbol
●   Class variables are private to the class
    so in order to access them outside the
    class you need to defined a getter or a
    class method
Class Methods
●   Class methods are defined using
    the keyword self
●   e.g.
      –   def self. myclass_method
          end
Example
class SomeClass
   @@instance = 0 #private
   attr_reader :instance

  def initialize
     @@instance += 1
  end

   def self.instances
      @@instance
   end
end

s1 = SomeClass.new
s2 = SomeClass.new

puts "total instances #{SomeClass.instances}"
Access Control
●   You can specify 3 types of
    access control in ruby
    ●   Private
    ●   Protected
    ●   Public
●   By default, unless specified,
    all methods are public
Access Control-Example
 class Program

       def get_sum
           calculate_internal
       end

 private
    def calculate_internal
    end

 end

More Related Content

PDF
Ruby Programming Introduction
PDF
CodeFest 2010. Иноземцев И. — Fantom. Cross-VM Language
PDF
2008 07-24 kwpm-threads_and_synchronization
PPTX
Java string handling
PPT
JavaScript - An Introduction
PDF
How to write Ruby extensions with Crystal
KEY
Have Your Cake and Eat It Too: Meta-Programming Techniques for Java
PPT
Lecture 7
Ruby Programming Introduction
CodeFest 2010. Иноземцев И. — Fantom. Cross-VM Language
2008 07-24 kwpm-threads_and_synchronization
Java string handling
JavaScript - An Introduction
How to write Ruby extensions with Crystal
Have Your Cake and Eat It Too: Meta-Programming Techniques for Java
Lecture 7

What's hot (20)

PDF
Modern Objective-C @ Pragma Night
PDF
C++11 Idioms @ Silicon Valley Code Camp 2012
PDF
Automatic Reference Counting @ Pragma Night
PDF
Open MP cheet sheet
PDF
Back to the Future with TypeScript
PDF
06 ruby variables
PDF
Introduction to Ruby
PPTX
Javascript session 01 - Introduction to Javascript
PDF
A Re-Introduction to JavaScript
PDF
TypeScript Introduction
PDF
Fantom - Programming Language for JVM, CLR, and Javascript
PDF
VIM for (PHP) Programmers
PPTX
JavaScript Basics and Trends
PDF
Hot C++: New Style of Arguments Passing
PDF
From android/java to swift (3)
PDF
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
PPTX
Clojure 7-Languages
PPT
Clojure concurrency
PDF
Hot C++: Rvalue References And Move Semantics
PPT
8 - OOP - Syntax & Messages
Modern Objective-C @ Pragma Night
C++11 Idioms @ Silicon Valley Code Camp 2012
Automatic Reference Counting @ Pragma Night
Open MP cheet sheet
Back to the Future with TypeScript
06 ruby variables
Introduction to Ruby
Javascript session 01 - Introduction to Javascript
A Re-Introduction to JavaScript
TypeScript Introduction
Fantom - Programming Language for JVM, CLR, and Javascript
VIM for (PHP) Programmers
JavaScript Basics and Trends
Hot C++: New Style of Arguments Passing
From android/java to swift (3)
[OLD VERSION, SEE DESCRIPTION FOR THE NEWER VERSION LINK] Hot С++: Universal ...
Clojure 7-Languages
Clojure concurrency
Hot C++: Rvalue References And Move Semantics
8 - OOP - Syntax & Messages
Ad

Viewers also liked (20)

PDF
Programming Language: Ruby
PDF
Design of a secure "Token Passing" protocol
PPTX
Ruby basics
PDF
RubyConf Taiwan 2011 Opening & Closing
PDF
RubyConf Taiwan 2012 Opening & Closing
PDF
Exception Handling: Designing Robust Software in Ruby (with presentation note)
PDF
Yet another introduction to Git - from the bottom up
PDF
Introduction to Ruby
PPTX
Customer Scale: Stateless Sessions and Managing High-Volume Digital Services
PDF
OAuth 2.0 Token Exchange: An STS for the REST of Us
PDF
Ruby 程式語言綜覽簡介
PDF
ALPHAhackathon: How to collaborate
PDF
從 Classes 到 Objects: 那些 OOP 教我的事
PDF
RSpec on Rails Tutorial
PPT
Ruby For Java Programmers
PDF
A brief introduction to SPDY - 邁向 HTTP/2.0
PDF
那些 Functional Programming 教我的事
PDF
從零開始的爬蟲之旅 Crawler from zero
PDF
RSpec & TDD Tutorial
PDF
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Programming Language: Ruby
Design of a secure "Token Passing" protocol
Ruby basics
RubyConf Taiwan 2011 Opening & Closing
RubyConf Taiwan 2012 Opening & Closing
Exception Handling: Designing Robust Software in Ruby (with presentation note)
Yet another introduction to Git - from the bottom up
Introduction to Ruby
Customer Scale: Stateless Sessions and Managing High-Volume Digital Services
OAuth 2.0 Token Exchange: An STS for the REST of Us
Ruby 程式語言綜覽簡介
ALPHAhackathon: How to collaborate
從 Classes 到 Objects: 那些 OOP 教我的事
RSpec on Rails Tutorial
Ruby For Java Programmers
A brief introduction to SPDY - 邁向 HTTP/2.0
那些 Functional Programming 教我的事
從零開始的爬蟲之旅 Crawler from zero
RSpec & TDD Tutorial
A brief introduction to Vagrant – 原來 VirtualBox 可以這樣玩
Ad

Similar to Ruby training day1 (20)

PDF
Programming in scala - 1
PDF
Cs3430 lecture 16
PPTX
Should i Go there
PDF
Ruby Presentation
PPTX
kotlin-nutshell.pptx
ODP
Perl - laziness, impatience, hubris, and one liners
PDF
Linux shell
PDF
Quick python reference
PDF
javascript objects
PDF
Rapid Development with Ruby/JRuby and Rails
PPTX
Ruby introduction part1
PDF
Python intro
PPTX
shellScriptAlt.pptx
ODP
Learning groovy 1: half day workshop
PDF
C tour Unix
PPT
Ruby programming introduction
PPTX
Advanced javascript from zero to hero in this PPT
TXT
Sdl Basic
PDF
Dart workshop
Programming in scala - 1
Cs3430 lecture 16
Should i Go there
Ruby Presentation
kotlin-nutshell.pptx
Perl - laziness, impatience, hubris, and one liners
Linux shell
Quick python reference
javascript objects
Rapid Development with Ruby/JRuby and Rails
Ruby introduction part1
Python intro
shellScriptAlt.pptx
Learning groovy 1: half day workshop
C tour Unix
Ruby programming introduction
Advanced javascript from zero to hero in this PPT
Sdl Basic
Dart workshop

Recently uploaded (20)

PDF
KodekX | Application Modernization Development
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Big Data Technologies - Introduction.pptx
PPT
Teaching material agriculture food technology
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Modernizing your data center with Dell and AMD
PPTX
A Presentation on Artificial Intelligence
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Encapsulation theory and applications.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PPTX
Cloud computing and distributed systems.
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PPTX
MYSQL Presentation for SQL database connectivity
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Electronic commerce courselecture one. Pdf
PDF
Approach and Philosophy of On baking technology
KodekX | Application Modernization Development
Unlocking AI with Model Context Protocol (MCP)
Big Data Technologies - Introduction.pptx
Teaching material agriculture food technology
Building Integrated photovoltaic BIPV_UPV.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
Modernizing your data center with Dell and AMD
A Presentation on Artificial Intelligence
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Encapsulation theory and applications.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Cloud computing and distributed systems.
Digital-Transformation-Roadmap-for-Companies.pptx
MYSQL Presentation for SQL database connectivity
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Electronic commerce courselecture one. Pdf
Approach and Philosophy of On baking technology

Ruby training day1

  • 1. Introduction To Ruby Programming Bindesh Vijayan
  • 2. Ruby as OOPs ● Ruby is a genuine Object oriented programming ● Everything you manipulate is an object ● And the results of the manipulation is an object ● e.g. The number 4,if used, is an object Irb> 4.class Python : len() Fixnum Ruby: obj.length
  • 3. Setting up and installing ruby ● There are various ways of installing ruby ● RailsInstaller for windows and osx (http://railsinstaller.org) ● Compiling from source ● Using a package manager like rvm..most popular
  • 4. Ruby version manager(rvm) ● In the ruby world, rvm is the most popular method to install ruby and rails ● Rvm is only available for mac os x,linux and unix ● Rvm allows you to work with multiple versions of ruby ● To install rvm you need to have the curl program installed
  • 5. Installing rvm(linux) $ sudo apt-get install curl $ curl -L https://get.rvm.io | bash -s stable –ruby $ rvm requirements $ rvm install 1.9.3
  • 6. Standard types - numbers ● Numbers ● Ruby supports integers and floating point numbers ● Integers within a certain range (normally -230 to 230-1 or -262 to 262-1) are held internally in binary form, and are objects of class Fixnum ● Integers outside the above range are stored in objects of class Bignum ● Ruby automatically manages the conversion of Fixnum to Bignum and vice versa ● Integers in ruby support several types of iterators
  • 7. Standard types- numbers ● e.g. Of iterators ● 3.times { print "X " } ● 1.upto(5) { |i| print i, " " } ● 99.downto(95) { |i| print i, " " } ● 50.step(80, 5) { |i| print i, " " }
  • 8. Standard types - strings ● Strings in ruby are simply a sequence of 8-bit bytes ● In ruby strings can be assigned using either a double quotes or a single quote ● a_string1 = 'hello world' ● a_string2 = “hello world” ● The difference comes ● when you want to use a special character e.g. An apostrophe ● a_string1 = “Binn's world” ● a_string2 = 'Binn's world' # you need to use an escape sequence here
  • 9. Standard types - string ● Single quoted strings only supports 2 escape sequences, viz. ● ' - single quote ● - single backslash ● Double quotes allows for many more escape sequences ● They also allow you to embed variables or ruby code commonly called as interpolation puts "Enter name" name = gets.chomp puts "Your name is #{name}"
  • 10. Standard types - string Common escape sequences available are : ● " – double quote ● – single backslash ● a – bell/alert ● b – backspace ● r – carriage return ● n – newline ● s – space ● t – tab ●
  • 11. Working with strings gsub Returns a copy of str with str.gsub( pattern, all occurrences of pattern replacement ) replaced with either replacement or the value of the block. chomp Returns a new String with str.chomp the given record separator removed from the end of str (if present). count Return the count of str.count characters inside string strip Removes leading and str.strip trailing spaces from a string to_i Converts the string to a str.to_i number(Fixnum) upcase Upcases the content of the str.upcase strings http://www.ruby-doc.org/core-1.9.3/String.html#method-i-strip
  • 12. Standard types - ranges ● A Range represents an interval—a set of values with a start and an end ● In ruby, Ranges may be constructed using the s..e and s...e literals, or with Range::new ● ('a'..'e').to_a #=> ["a", "b", "c", "d", "e"] ● ('a'...'e').to_a #=> ["a", "b", "c", "d"]
  • 13. Using ranges ● Comparison ● (0..2) == (0..2) #=> true ● (0..2) == Range.new(0,2) #=> true ● (0..2) == (0...2) #=> false
  • 14. Using ranges ● Using in iteration (10..15).each do |n| print n, ' ' end
  • 15. Using ranges ● Checking for members ● ("a".."z").include?("g") # -> true ● ("a".."z").include?("A") # -> false
  • 16. Methods ● Methods are defined using the def keyword ● By convention methods that act as a query are often named in ruby with a trailing '?' ● e.g. str.instance_of? ● Methods that might be dangerous(causing an exception e.g.) or modify the reciever are named with a trailing '!' ● e.g. user.save! ● '?' and '!' are the only 2 special characters allowed in method name
  • 17. Defining methods ● Simple method: def mymethod end ● Methods with arguments: def mymethod2(arg1, arg2) end ● Methods with variable length arguments def varargs(arg1, *rest) "Got #{arg1} and #{rest.join(', ')}" end
  • 18. Methods ● In ruby, the last line of the method statement is returned back and there is no need to explicitly use a return statement def get_message(name) “hello, #{name}” end .Calling a method : get_message(“bin”) ● Calling a method without arguments : mymethod #calls the method
  • 19. Methods with blocks ● When a method is called, it can be given a random set of code to be executed called as blocks def takeBlock(p1) if block_given? yield(p1) else p1 end end
  • 20. Calling methods with blocks takeBlock("no block") #no block provided takeBlock("no block") { |s| s.sub(/no /, '') }
  • 21. Classes ● Classes in ruby are defined by using the keyword 'class' ● By convention, ruby demands that the class name should be capital ● An initialize method inside a class acts as a constructor ● An instance variable can be created using @
  • 22. class SimpleClass end //instantiate an object s1 = SimpleClass.new class Book def intitialize(title,author) @title = title @author = author end end //creating an object of the class b1 = Book.new("programming ruby","David")
  • 23. Making an attribute accessible ● Like in any other object oriented programming language, you will need to manipulate the attributes ● Ruby makes this easy with the keyword 'attr_reader' and 'attr_writer' ● This defines the getter and the setter methods for the attributes
  • 24. class Book attr_reader :title, :author def initialize(title,author) @title = title @author = author end end #using getters CompBook = Book.new(“A book”, “me”) Puts CompBook.title
  • 25. Symbols ● In ruby symbols can be declared using ':' ● e.g :name ● Symbols are a kind of strings ● The important difference is that they are immutable unlike strings ● Mutable objects can be changed after assignment while immutable objects can only be overwritten. ● puts "hello" << " world" ● puts :hello << :" world"
  • 26. Making an attribute writeable class Book attr_writer :title, :author def initialize(title,author) @title = title @author = author end end myBook = Book.new("A book", "author") myBook.title = "Some book"
  • 27. Class variables ● Sometimes you might need to declare a class variable in your class definition ● Class variables have a single copy for all the class objects ● In ruby, you can define a class variable using @@ symbol ● Class variables are private to the class so in order to access them outside the class you need to defined a getter or a class method
  • 28. Class Methods ● Class methods are defined using the keyword self ● e.g. – def self. myclass_method end
  • 29. Example class SomeClass @@instance = 0 #private attr_reader :instance def initialize @@instance += 1 end def self.instances @@instance end end s1 = SomeClass.new s2 = SomeClass.new puts "total instances #{SomeClass.instances}"
  • 30. Access Control ● You can specify 3 types of access control in ruby ● Private ● Protected ● Public ● By default, unless specified, all methods are public
  • 31. Access Control-Example class Program def get_sum calculate_internal end private def calculate_internal end end