ruby presentation

32
RUBY Introduction to Ruby Programming Language by Kostas Platis

Upload: platicodev

Post on 29-Jan-2018

436 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Ruby Presentation

RUBYIntroduction to Ruby Programming Language

by Kostas Platis

Page 2: Ruby Presentation

I HOPE TO SEE RUBY HELP EVERY PROGRAMMER IN

THE WORLD TO BE PRODUCTIVE, AND TO ENJOY

PROGRAMMING, AND TO BE HAPPY. THAT IS THE

PRIMARY PURPOSE OF RUBY LANGUAGE.

Yukihiro Matsumoto Google Tech Talk(2008)

•Created in 1993 by Yukihiro Matsumoto

•Initially 2 names were proposed :“Coral” and “Ruby”

•His aim was to create a programming language easy-to-use

Page 3: Ruby Presentation

DYNAMIC

“Dynamic programming language is a term used

in computer science to describe a class of high-level

programming languages which, at runtime, execute

many common programming behaviors that static

programming languages perform during compilation.”

wikipedia.com

Ruby is a dynamic programming language

Page 4: Ruby Presentation

OBJECT-ORIENTED

Ruby is pure object-oriented language and everything appears to

Ruby as an object

Even a class itself is an object that is an instance of the Class class

Ruby is based on the concept of “objects” , classes , attributes and

methods.

Page 5: Ruby Presentation

GENERAL PURPOSE

Ruby is a programming language designed to be used for

writing software in a wide variety of application domains like:

• Server-Side(Ruby-on-Rails)

• Web Servers

• Common GUI Applications

• Low-Level systems

Page 6: Ruby Presentation

FAMOUS APPLICATIONS WRITTEN IN

RUBY

Simulations

NASA Langley Research Center uses Ruby to conduct simulations.

3D Modeling

Google SketchUp is a 3D modeling application that uses Ruby for its macro scripting API.

Robotics

At MORPHA project, Ruby was used to implemented the reactive control part for the

Siemens service robot.

Web Applications Implemented in Rails

Page 7: Ruby Presentation

VERSIONS• Ruby 1.0: December1996

• Ruby 1.2: December 1998

• Ruby 1.4: August 1999

• Ruby 1.6: September 2000

• Ruby 1.8: August 2003

• Ruby 1.9: December 2007

• Ruby 2.1: December 2013

• Ruby 2.2: December 2014

Page 8: Ruby Presentation

RUBY INSTALLATIONUbuntu

1) Open Terminal

2) apt-add-repository ppa:brightbox/ruby-ng

3) apt-get update

4) apt-get install ruby 2.2

5) Done!

Windows

1) Open www.rubyinstaller.org

2) Download Ruby 2.2.3

3) Install RubyInstaller

Page 9: Ruby Presentation

RUBY GEMS

As most programming languages, Ruby offers a wide set of third-

party libraries.

Most of them are released in the form of a gem

RubyGems is a package manager for the Ruby programming

language that provides a standard format for distributing Ruby

programs and libraries

Page 10: Ruby Presentation

RUBY RVMRVM(Ruby Version Manager) is a command-line tool which allows

you to easily install, manage, and work with multiple ruby

environments from interpreters to sets of gems.

RVM is a programmer’s helping hand for :

1. Production

RVM lets you deploy each project with its own completely self-

contained and dedicated environment, from the specific version of

ruby, all the way down to the precise set of required gems to run

your application. With RVM, NO OTHER GEMS than those required

are installed. Efficiency when working on complex applications

Page 11: Ruby Presentation

RUBY RVM2. Testing

RVM enables you to easily test both upgrade and escape paths

very easily and consistently. With RVM, you can run a test suite, rake

tasks, benchmarks and gem commands against multiple ruby

versions at the same time.

3. Gem Management

RVM has an extremely flexible gem management system called

Named Gem Sets. RVM's 'gemsets' make managing gems across

multiple versions of Ruby a non-issue.

Note : RVM is for Ruby applications, *not just for Rails*! Any Ruby

based application will benefit from your use of RVM.

Page 12: Ruby Presentation

RVM INSTALLATIONUbuntu

1. Open Terminal

3) \curl –sSL https://get.rvm.io | bash

4) Done!

Windows

RVM is not developed for Windows. An alternative is pik

(https://github.com/vertiginous/pik)

Page 13: Ruby Presentation

IRB

Interactive Ruby Shell (IRB or irb) is a REPL for programming in Ruby. The

program is launched from a command line and allows the execution of

Ruby commands with immediate response, experimenting in real-time.

irb is executed using the “irb” command.

Use “exit” to exit irb

Page 14: Ruby Presentation

IRBWe can use irb in order to evaluate a variety of expressions

You can also invoke a single program with irb

Page 15: Ruby Presentation

RUBY IDEFor Ruby Developing I personally use and recommend RubyMine (Developed by JetBrains)

RubyMine is free for Students

RubyMine Installation

1. https://www.jetbrains.com/ruby

2. Download and install RubyMine

3. Create JetBrains Account

4. Apply for Student licence in www.jetbrains.com/student

5. Open RubyMine and login using your account

Page 16: Ruby Presentation

IN GENERAL

• Ruby files use the suffix .rb

• Comments start with #

• Multiple line comments use =begin , =end

• nil(null in other programming languages) means that the

object is an instance of the Nil Class

• Blocks end using the “end” statement

• Variables dynamically change their type

Page 17: Ruby Presentation

NAMING

Ruby has some strange naming conventions

1. Local varibles, method’s parameters and method’s

names are written in lowercase

2. Constants are written in capital letters

3. Global variables are prefixed with the dollar sign ($)

4. Field names are prefixed with the “at” sign "@"

5. Class names are prefixed with the “double at” sign "@@"

Page 18: Ruby Presentation

CLASSES & OBJECTSClass ClassName

attr_accessor :var1,:var2

<methods>

End

Constructors are named “initialize(param1,param2…)”

attr_accessor is used as getter,setter

Inheritance is a thing

Multiple Inheritance is not

objectTitle = ClassName.new(param1,param2…)

Page 19: Ruby Presentation

METHODS

def method_name(param_1,param_2...)

<code>

<code>

<code>

end

• “return” is not necessary. The returned value is the latest

changed variable

• Method block ends with “end”

Page 20: Ruby Presentation

STRING

CHARACTERISTICS

• “\n” is used as line breaker

• If we want to use a variable name inside a string we just add #{variable_name}

• Alternatively, we can use the + operator in order to unite 2

or more strings

• Double quote vs Single quotes : Double quotes allow you

to do string interpolation

Page 21: Ruby Presentation

ARRAYS

• Arrays, like variables, dont need initialization

• temp = Array.new(10)

• puts temp.size or puts temp.length

• We can save variables of different type

• Values are saved as A = ['A','B','C'] or A[0] = 1 etc

SHORTCUT %w

%w is used in order to initialize arrays alternatively,

A = %w{ A B C }

Page 22: Ruby Presentation

HASHES

• To initialize Hashes we use curly braces instead of braces

• In order to initialize a map :

"key => value"

Note : keys are unique, values are not

• temp = Hash.new

Hash Display

temp[:key]

If key does not exist, nil is returned

Page 23: Ruby Presentation

CONDITIONAL

STRUCTURES

• main body does not require curly braces { }

• Condition does not require parentheses

• If main body contains only one command, the command

can go before the condition

• Conditional structures are :

if-elsif-else,

Case-when (like switch-case)

unless-else

Page 24: Ruby Presentation

LOOPS

• main body does not require curly braces { }

• Condition does not require parentheses

• Known loops are :

1. while[condition]-end, begin-while[condition]

2. begin – end until [condition]

3. for i in 0…j

next : is used in order to pass to the next value

redo : restarts the iteration of the most internal loop,

without checking loop condition.

If retry appears in rescue clause of begin expression,

restart from the beginning of the 1begin body.

Page 25: Ruby Presentation

CODE BLOCKSRuby includes a pretty cool feature : The Code Blocks

• We can call a method which has the same name but

different body by using the yield command

• Any code surrounded by curly braces is a block

• The calling can include arguments called

Block arguments

{|arg1,arg2| code_including_args}

Page 26: Ruby Presentation

CODE BLOCKS

Yeah…ok but whats the usage?

1. To keep things concise and understandable

2. To create more elegant code

3. To iterate lists (especially in Rails)

Page 27: Ruby Presentation

ITERATORS

.each method for arrays & hashes (block)

times & upto(-number-) for numbers

Iterators can be used as blocks

Page 28: Ruby Presentation

I/O2 main ways to output

1. puts (like println in Java)

2. printf (Like in C/C++)

gets is the main way to input data

Page 29: Ruby Presentation

EXCEPTIONSAre handled using begin-rescue

Some known Exception subclasses are:

NoMemoryError

ScriptError

StandardError

SystemExit

SystemStackError

Page 30: Ruby Presentation

WHY RUBY?

1. Ruby allows the programmer to do things fast (less code – but takes time to learn). That’s why Ruby programmers are happy

2. Open-Source (Hundreds of recourses – everything is free! –

gems usage)

3. Everything is free! Gems usage save time and money

4. Ruby On Rails (Rails conventions)

Page 31: Ruby Presentation

RESOURCES www.ruby-lang.org (Ruby Official Site)

www.tutorialspoint.com/ruby (Examples provider)

www.rubylearning.com (Useful Tutorials)

www.rubyinstaller.org (Installer for Windows)

www.jetbrains.com/ruby (RubyMine IDE)

Page 32: Ruby Presentation

THANK YOU!Kostas Platis

Email : [email protected]

Slideshare : www.slideshare.net/platico_dev