• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
LoteríA Correcta
 

LoteríA Correcta

on

  • 712 views

 

Statistics

Views

Total Views
712
Views on SlideShare
712
Embed Views
0

Actions

Likes
0
Downloads
0
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    LoteríA Correcta LoteríA Correcta Document Transcript

    • R uby Talk – An Introduction to Premshree Pillai [email_address]
    • S cope of Talk
      • What this talk is and what it isn’t
      • Me, myself
      • What is?
      • Why use?
      • How to? (a quick run through the syntax)
      • Quick comparisons (with Perl and Python)
      • Resources
    • P urpose
      • What this talk is?
      • Get you interested
      • Get you started with Ruby
      • What it isn’t?
      • Not a tutorial
    • W ho am I?
      • (or why should you listen to me)
      • 21/male/single :)
      • Technology consultant
      • Freelance writer since 2001
      • Perl/Python/Ruby/REBOL hacker
    • H istory (Ruby’s, not mine)
      • Created (in Japan) by Yukihiro Matsumoto, popularly called Matz
      • Named as “Ruby” to reflect its Perl hertitage
      • Released to the public in 1995
      • Licensed under GPL or Ruby terms
    • W hat the heck is Ruby?
      • An object-oriented “scripting” language
      • As powerful as Perl; simpler, better OO
      • The simplicity of Python
      • Follows the principle of “Least Surprise” – What You Expect Is What You Get
    • W here can you use Ruby?
      • System (n/w, RegExps)
      • Web programming (using CGI)
        • Agents, crawlers
      • DB programming (using DBI)
      • GUI (Tk, RubyMagick)
    • G eneral Features
      • High level language
      • True OO (everything’s an object!)
      • Interpreted
      • Portable
      • Low learning curve
      • A quick scan thro’ the syntax
    • R unning Ruby
      • From the command line:
      • ruby file.rb
      • Windows binary comes bundled with Scintilla
    • B asic stuff
      • print 'Hello, world!'
      • p 'Hello, world!' # prints with newline
      • my_var = gets # get input
    • O perators
      • + (addition)
      • - (subtraction/negation)
      • * (multiplication)
      • / (division)
      • % (modulus)
      • ** (exponentiation)
    • O perators (contd.)
      • ==
      • <=> (returns -1, 0 or 1)
      • <, <=, >=, >
      • =~ (matching)
      • eql? (test of equality of type and values)
    • O perators (contd.)
      • ++ and -- are not reserved operators
      • Use += and +-
    • L ogical Operators
      • and
      • or
      • not
    • T yping
      • Dynamic typed
        • Type checking at run-time
      • Strong typed
    • B asic Data Types
      • Integers and floats
      • Strings
      • Ranges
      • Arrays
      • Hashes
    • S trings
      • my_str = 'whatever'
      • my_str = &quot;blah, blah&quot;
      • my_str.split(&quot;,&quot;)[0].split(&quot;&quot;)[2] * 3
    • R anges
      • Inclusive range
      • my_range = 1 .. 3
      • my_range = 'abc' .. 'abf'
      • Non-inclusive range
      • my_range = 1 … 5
      • my_range = 'abc' … 'abf'
    • A rrays
      • my_array = [1, 2, 3]
      • Common methods:
      • my_array.length
      • my_array << 4
      • my_array[0], etc.
    • H ashes
      • my_hash = {
      • 'desc' => {'color' => 'blue',},
      • 1 => [1, 2, 3]
      • }
      • print my_hash['desc']['color']
      • will return
      • blue
    • H ashes (contd.)
      • Common methods:
      • my_hash.keys
      • my_hash.values
    • D ata Type Conversion
      • Converting to an Array:
      • var_data_type .to_a
      • Converting to an String:
      • var_data_type .to_s
      • More (guess!):
      • var_data_type .to_i
      • var_data_type .to_f
    • E verything's an Object
      • Methods can be applied to data directly – not just on variables holding data
      • Example:
      • 5.to_s will return &quot;5&quot;
    • C ode Blocks
      • Code blocks may use braces ( { } ) or do/end
    • C ode Blocks (contd.)
      • Example
      • def my_print(what)
      • print what
      • end
      • You cannot use braces for function blocks
    • I f Statement
      • if expression
      • code block
      • elsif ( expression )
      • code block
      • else
      • code block
      • end
    • W hile Statement
      • while expression
      • code block
      • end
      • Example:
      • count = 1
      • while count < 10
      • print count
      • count += 1
      • end
    • F or Loop
      • for variable_name in range
      • code block
      • end
      • Example:
      • for count in 0..2
      • print count
      • end
    • I terators
      • array_or_range = value
      • array_or_range.each { |x|
      • print x
      • }
      • Example:
      • my_range = 1..5
      • my_range.each { |x|
      • print x
      • }
    • F unctions
      • Functions begin with the keyword def
      • def function_name ( [args] )
      • code block
      • end
      • Example:
      • def print_name(name='Ruby')
      • print name
      • end
    • O O Ruby
      • Classes are containers for static data members and functions
      • Declared using the class keyword. All class names should begin with a capital letter
      • Constructor declared using the initialize keyword
      • Class variables precede with an “ @ ”
      • Objects created using the new method
    • E xample class
      • class My_class
      • def initialize(arg1, arg2)
      • @arg1 = arg1
      • @arg2 = arg1
      • end
      • def print_arg1()
      • print @arg1
      • end
      • def print_foo()
      • print &quot; I Love Ruby! &quot;
      • end
      • private
      • def print_arg2()
      • print @arg2
      • end
      • end
      • my_object = My_class.new(2, 3)
      • my_object.print_arg1
      • my_object.print_arg2 # will cause an exception
    • I nheritance
      • class Derived_class < My_class
      • def initialize()
      • @arg = &quot;I Love Ruby!&quot;
      • end
      • def print_arg()
      • print @arg
      • end
      • end
      • my_object = Derived_class.new
      • my_object.print_foo
    • N otes on OO Ruby
      • Access specifiers: public , protected , private
      • Multiple inheritance not possible
    • R uby modules
      • require 'net/http'
      superclass subclass
    • A dvanced topics
      • Regular expressions
      • Network programming
      • MT programming
      • GUI programming (using Tk)
      • Web programming
    • N ow what?
      • What you can do now?
      • Get your hands dirty with Ruby
      • Write simple Ruby programs
      • What you have to do?
      • Explore Ruby modules
      • Find a problem, and Ruby it!
    • P erl compared to Ruby
      • Complicated OO
      • Cryptic code
      • (Ruby is often called “A Better Perl”)
      • PS: Don’t kill me!
    • P ython compared to Ruby
      • Incomplete OO
      • Instance variables require self. var
      • No class method
      • No true GC (uses ref counting)
      • Not suitable for one-liners
      • PS: Don’t kill me!
    • R esources
      • Ruby Home Page
      • http://www.ruby-lang.org/en/
      • Programming Ruby
      • http://www.rubycentral.com/book/
      • RubyGarden
      • http:// www.rubygarden.org /ruby
      • Ruby Application Archive (RAA)
      • http://raa.ruby-lang.org/
    • R esources (contd.)
      • RubyForge
      • http://rubyforge.org/
      • ruby-talk
      • http://blade.nagaokaut.ac.jp/ruby/ruby-talk/index.shtml
      • If God did OOP, he’d probably do it in Python; He’s now considering switching to Ruby!
      • Thank you!
      • Questions?