SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Downloaden Sie, um offline zu lesen
RUBY
Introduction to Ruby Programming Language
by Kostas Platis
“
”
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
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
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.
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
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
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
RUBY INSTALLATION
Ubuntu
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
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
RUBY RVM
RVM(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
RUBY RVM
2. 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.
RVM INSTALLATION
Ubuntu
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)
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
IRB
We can use irb in order to evaluate a variety of
expressions
You can also invoke a single program with irb
RUBY IDE
For 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
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
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 "@@"
CLASSES & OBJECTS
Class 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…)
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”
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
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 }
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
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
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.
CODE BLOCKS
Ruby 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}
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)
ITERATORS
 .each method for arrays & hashes (block)
 times & upto(-number-) for numbers
Iterators can be used as blocks
I/O
2 main ways to output
1. puts (like println in Java)
2. printf (Like in C/C++)
 gets is the main way to input data
EXCEPTIONS
Are handled using begin-rescue
Some known Exception subclasses are:
 NoMemoryError
 ScriptError
 StandardError
 SystemExit
 SystemStackError
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)
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)
THANK YOU!
Kostas Platis
Email : platico.dev@gmail.com
Slideshare : www.slideshare.net/platico_dev

Weitere ähnliche Inhalte

Was ist angesagt? (20)

Introducing type script
Introducing type scriptIntroducing type script
Introducing type script
 
Oop concepts in python
Oop concepts in pythonOop concepts in python
Oop concepts in python
 
Introduction to java
Introduction to javaIntroduction to java
Introduction to java
 
Shell programming
Shell programmingShell programming
Shell programming
 
Java Inheritance
Java InheritanceJava Inheritance
Java Inheritance
 
Typescript ppt
Typescript pptTypescript ppt
Typescript ppt
 
Java Presentation
Java PresentationJava Presentation
Java Presentation
 
TypeScript
TypeScriptTypeScript
TypeScript
 
Basics of Java Concurrency
Basics of Java ConcurrencyBasics of Java Concurrency
Basics of Java Concurrency
 
Java Streams
Java StreamsJava Streams
Java Streams
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
 
MULTI THREADING IN JAVA
MULTI THREADING IN JAVAMULTI THREADING IN JAVA
MULTI THREADING IN JAVA
 
JPA and Hibernate
JPA and HibernateJPA and Hibernate
JPA and Hibernate
 
Java 8 lambda
Java 8 lambdaJava 8 lambda
Java 8 lambda
 
Core java complete ppt(note)
Core java  complete  ppt(note)Core java  complete  ppt(note)
Core java complete ppt(note)
 
Java Notes
Java NotesJava Notes
Java Notes
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
Java Multithreading and Concurrency
Java Multithreading and ConcurrencyJava Multithreading and Concurrency
Java Multithreading and Concurrency
 
Java Collections
Java  Collections Java  Collections
Java Collections
 
Java History
Java HistoryJava History
Java History
 

Ähnlich wie Ruby Presentation

Ähnlich wie Ruby Presentation (20)

Page List & Sample Material (Repaired)
Page List & Sample Material (Repaired)Page List & Sample Material (Repaired)
Page List & Sample Material (Repaired)
 
An introduction to the ruby ecosystem
An introduction to the ruby ecosystemAn introduction to the ruby ecosystem
An introduction to the ruby ecosystem
 
Why Ruby?
Why Ruby? Why Ruby?
Why Ruby?
 
Rubyonrails 120409061835-phpapp02
Rubyonrails 120409061835-phpapp02Rubyonrails 120409061835-phpapp02
Rubyonrails 120409061835-phpapp02
 
Why ruby
Why rubyWhy ruby
Why ruby
 
How DSL works on Ruby
How DSL works on RubyHow DSL works on Ruby
How DSL works on Ruby
 
l-rubysocks-a4
l-rubysocks-a4l-rubysocks-a4
l-rubysocks-a4
 
l-rubysocks-a4
l-rubysocks-a4l-rubysocks-a4
l-rubysocks-a4
 
Intro To Ror
Intro To RorIntro To Ror
Intro To Ror
 
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1
 
Ruby on Rails 3 Day BC
Ruby on Rails 3 Day BCRuby on Rails 3 Day BC
Ruby on Rails 3 Day BC
 
Ruby for C# Developers
Ruby for C# DevelopersRuby for C# Developers
Ruby for C# Developers
 
Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1Code for Startup MVP (Ruby on Rails) Session 1
Code for Startup MVP (Ruby on Rails) Session 1
 
Ruby on Rails - An overview
Ruby on Rails -  An overviewRuby on Rails -  An overview
Ruby on Rails - An overview
 
2 Basics
2 Basics2 Basics
2 Basics
 
An introduction to Rails 3
An introduction to Rails 3An introduction to Rails 3
An introduction to Rails 3
 
Pengantar Ruby on Rails
Pengantar Ruby on RailsPengantar Ruby on Rails
Pengantar Ruby on Rails
 
Ruby Hell Yeah
Ruby Hell YeahRuby Hell Yeah
Ruby Hell Yeah
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
 
Ruby
RubyRuby
Ruby
 

Kürzlich hochgeladen

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...Shane Coughlan
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrainmasabamasaba
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...SelfMade bd
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...masabamasaba
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...masabamasaba
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationJuha-Pekka Tolvanen
 

Kürzlich hochgeladen (20)

WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
WSO2Con2024 - From Code To Cloud: Fast Track Your Cloud Native Journey with C...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
WSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - KeynoteWSO2Con204 - Hard Rock Presentation - Keynote
WSO2Con204 - Hard Rock Presentation - Keynote
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
WSO2CON 2024 - API Management Usage at La Poste and Its Impact on Business an...
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Knoxville Psychic Readings, Attraction spells,Br...
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
Abortion Pills In Pretoria ](+27832195400*)[ 🏥 Women's Abortion Clinic In Pre...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 

Ruby Presentation

  • 1. RUBY Introduction to Ruby Programming Language by Kostas Platis
  • 2. “ ” 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
  • 3. 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
  • 4. 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.
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. RUBY INSTALLATION Ubuntu 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
  • 9. 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
  • 10. RUBY RVM RVM(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
  • 11. RUBY RVM 2. 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.
  • 12. RVM INSTALLATION Ubuntu 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)
  • 13. 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
  • 14. IRB We can use irb in order to evaluate a variety of expressions You can also invoke a single program with irb
  • 15. RUBY IDE For 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
  • 16. 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
  • 17. 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 "@@"
  • 18. CLASSES & OBJECTS Class 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…)
  • 19. 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”
  • 20. 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
  • 21. 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 }
  • 22. 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
  • 23. 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
  • 24. 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.
  • 25. CODE BLOCKS Ruby 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}
  • 26. 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)
  • 27. ITERATORS  .each method for arrays & hashes (block)  times & upto(-number-) for numbers Iterators can be used as blocks
  • 28. I/O 2 main ways to output 1. puts (like println in Java) 2. printf (Like in C/C++)  gets is the main way to input data
  • 29. EXCEPTIONS Are handled using begin-rescue Some known Exception subclasses are:  NoMemoryError  ScriptError  StandardError  SystemExit  SystemStackError
  • 30. 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)
  • 31. 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)
  • 32. THANK YOU! Kostas Platis Email : platico.dev@gmail.com Slideshare : www.slideshare.net/platico_dev