SlideShare a Scribd company logo
1 of 19
Download to read offline
+ = 
An Introduction to the 
Ruby Ecosystem
An Introduction to the Ruby Ecosystem
An Introduction to the Ruby Ecosystem 
Ruby is an interpreted language which means it needs an… 
interpreter. In a nutshell, his job is to take your source code as an 
input and to execute it. 
The three most popular Ruby interpreter are: 
● Matz’s Ruby Interpreter (MRI): the oficial by Matz 
● Rubinius: a well-known fast Ruby implementation of Ruby 
● JRuby: a JVM implementation
An Introduction to the Ruby Ecosystem 
A read–eval–print loop (REPL), also known as an interactive 
toplevel or language shell, is a simple, interactive computer 
programming environment that takes single user inputs (i.e. single 
expressions), evaluates them, and returns the result to the user; a 
program written in a REPL environment is executed piecewise. 
The Ruby language have 2 main used REPLs: 
● IRB - Ruby built-in shell. 
● PRY - A powerful alternative to the standard IRB shell for Ruby.
An Introduction to the Ruby Ecosystem 
Command-line tool which allows you to easily install, manage, and 
work with multiple ruby environments from interpreters to sets of 
gems. 
The Ruby language have 2 main used version managers: 
● RVM - Ruby Version Manager. 
● rbenv - Simple Ruby Version Manager.
An Introduction to the Ruby Ecosystem 
RubyGems (previously known as Gemcutter) is a package manager 
for the Ruby programming language that provides a standard format 
for distributing Ruby programs and libraries (in a self-contained 
format called a "gem"), a tool designed to easily manage the 
installation of gems, and a server for distributing them. 
Example of command to install a gem: 
gem install mygem 
● https://rubygems.org/
An Introduction to the Ruby Ecosystem 
Bundler provides a consistent environment for Ruby projects by tracking and 
installing the exact gems and versions that are needed. 
Bundler is an exit from dependency hell, and ensures that the gems you need are 
present in development, staging, and production. Starting work on a project is as 
simple as bundle install. 
source :rubygems 
gem "nokogiri" 
gem "rails", "3.0.0.beta3" 
gem "rack", ">=1.0" 
gem "thin", "~>1.1" 
gem "thor", path: "../thor" 
group :test do 
gem "rspec" 
end
An Introduction to the Ruby Ecosystem 
Rake is a software task management tool. It allows you to specify tasks and 
describe dependencies as well as to group tasks in a namespace. 
It is similar to SCons and Make, but it has a number of differences. The tool is 
written in the Ruby programming language and the Rakefiles (equivalent of 
Makefiles in Make) use Ruby syntax. It was originated by Jim Weirich. 
Rake uses Ruby's anonymous function blocks to define various tasks, allowing the 
use of Ruby syntax. It has a library of common tasks: for example, functions to do 
common file-manipulation tasks and a library to remove compiled files (the 
"clean" task). Like Make, Rake can also synthesize tasks based on patterns: for 
example, automatically building a file compilation task based on filename 
patterns. Rake is now part of the standard library from Ruby version 1.9 onward.
An Introduction to the Ruby Ecosystem 
namespace :afternoon do 
task :make_coffee do 
Rake::Task['morning:make_coffee'].invoke 
puts "Ready for the rest of the day!" 
end 
end
An Introduction to the Ruby Ecosystem 
Ruby has the most famous web framework and maybe the 
framework with the larger community, its name is Ruby on Rails. 
Ruby has a lot of web frameworks, here is listed the 2 most used. 
● Ruby on Rails - An open-source web framework that’s optimized for 
programmer happiness and sustainable productivity. It lets you write beautiful 
code by favoring convention over configuration. 
● Sinatra - A DSL for quickly creating web applications in Ruby with minimal 
effort. Largelly used to create REST Services.
An Introduction to the Ruby Ecosystem 
Ruby has toolchains that enable Ruby developers create mobile apps natively to 
iOS, Android and Windows. 
● RubyMotion - A revolutionary toolchain that lets you quickly develop and test full-fledged 
native apps for iPhone, iPad, Mac and Android (beta), all using your favorite 
editor and the awesome Ruby language you know and love. 
● Ruboto - A framework and tool chain to develop native Android apps, using the Ruby 
language we all know and love. 
● IronRuby - An open-source implementation of the Ruby programming language 
which is tightly integrated with the .NET Framework. IronRuby can use the .NET 
Framework and Ruby libraries, and other .NET languages can use Ruby code just as 
easily.
An Introduction to the Ruby Ecosystem 
An Application Server is a complete server which provides an environment for running the 
business components in addition to providing the capabilities of a Web Container as well as 
of a Web Server. 
● Phusion Passenger - An application server that is compiled either as an Apache 
module or compiled directly along with the nginx source code (because nginx doesn't 
contain a plugin architecture like Apache does). It excels in situations that need 
multiple low traffic applications running on the same machine. 
● Unicorn - An HTTP server for Rack applications designed to only serve fast clients on 
low-latency, high-bandwidth connections and take advantage of features in 
Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy 
capable of fully buffering both the the request and response in between Unicorn and 
slow clients. 
● Puma - A modern, concurrent web server for Ruby.
An Introduction to the Ruby Ecosystem 
As the amount of services and applications grows, becomes extremely 
hard to deploy all the services and handle all the configurations. In order to 
solve this kind of problem Ruby has 2 very good tools. 
● Capistrano - A utility and framework for executing commands in parallel on 
multiple remote machines, via SSH. 
● Chef - A configuration management tool designed to bring automation to 
your entire infrastructure.
An Introduction to the Ruby Ecosystem 
A very good practice adopted in the development process is the continuous 
delivery. The process where every time the code is committed to a shared 
host some tasks are executed on the code in order to validate the quality, 
and if everything is ok the code is deployed. The 2 most used CI server 
are: 
● Jenkins - An extendable open source continuous integration server. 
● Semaphore - A hosted continuous integration and delivery solution for open 
source and private projects.
An Introduction to the Ruby Ecosystem 
Testing is a large part of Ruby culture. Ruby comes with its own 
Unit-style testing framework called minitest (Or TestUnit for Ruby 
version 1.8.x). There are many testing libraries with different goals. 
● TestUnit - Ruby 1.8’s built-in “Unit-style” testing framework 
● minitest - Ruby 1.9/2.0’s built-in testing framework 
● RSpec - A testing framework that focuses on expressivity 
● Capybara - The integration testing framework 
● Cucumber - A BDD testing framework that parses Gherkin formatted tests
An Introduction to the Ruby Ecosystem 
A tool responsible to check possible vulnerabilities in a project. 
● Brakeman - An open source vulnerability scanner specifically designed for 
Ruby on Rails applications. It statically analyzes Rails application code to 
find security issues at any stage of development.
An Introduction to the Ruby Ecosystem
● 
● 
● 
● 
● 
● 
● 
An Introduction to the Ruby Ecosystem
● 
An Introduction to the Ruby Ecosystem 
○ 
● 
○ 
● 
○ 
● 
○

More Related Content

What's hot

How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?Hiroshi SHIBATA
 
The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for RubyHiroshi SHIBATA
 
Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Ruby on Rails Training - Module 1
Ruby on Rails Training - Module 1Mark Menard
 
Ruby on Rails Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails PresentationJoost Hietbrink
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled BundlerHiroshi SHIBATA
 
20140425 ruby conftaiwan2014
20140425 ruby conftaiwan201420140425 ruby conftaiwan2014
20140425 ruby conftaiwan2014Hiroshi SHIBATA
 
Ruby, the language of devops
Ruby, the language of devopsRuby, the language of devops
Ruby, the language of devopsRob Kinyon
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Shaer Hassan
 
Ractor's speed is not light-speed
Ractor's speed is not light-speedRactor's speed is not light-speed
Ractor's speed is not light-speedSATOSHI TAGOMORI
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Coursepeter_marklund
 
Ruby projects of interest for DevOps
Ruby projects of interest for DevOpsRuby projects of interest for DevOps
Ruby projects of interest for DevOpsRicardo Sanchez
 
20140419 oedo rubykaigi04
20140419 oedo rubykaigi0420140419 oedo rubykaigi04
20140419 oedo rubykaigi04Hiroshi SHIBATA
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Hiroshi SHIBATA
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mrubyHiroshi SHIBATA
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the worldHiroshi SHIBATA
 
How to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHow to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHiroshi SHIBATA
 

What's hot (20)

How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?How to develop the Standard Libraries of Ruby?
How to develop the Standard Libraries of Ruby?
 
The Future of Dependency Management for Ruby
The Future of Dependency Management for RubyThe Future of Dependency Management for Ruby
The Future of Dependency Management for Ruby
 
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 Presentation
Ruby on Rails PresentationRuby on Rails Presentation
Ruby on Rails Presentation
 
The Future of Bundled Bundler
The Future of Bundled BundlerThe Future of Bundled Bundler
The Future of Bundled Bundler
 
20140425 ruby conftaiwan2014
20140425 ruby conftaiwan201420140425 ruby conftaiwan2014
20140425 ruby conftaiwan2014
 
Ruby, the language of devops
Ruby, the language of devopsRuby, the language of devops
Ruby, the language of devops
 
Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09Ror Seminar With agilebd.org on 23 Jan09
Ror Seminar With agilebd.org on 23 Jan09
 
Ractor's speed is not light-speed
Ractor's speed is not light-speedRactor's speed is not light-speed
Ractor's speed is not light-speed
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory CourseRuby on Rails 101 - Presentation Slides for a Five Day Introductory Course
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
 
Ruby projects of interest for DevOps
Ruby projects of interest for DevOpsRuby projects of interest for DevOps
Ruby projects of interest for DevOps
 
20140419 oedo rubykaigi04
20140419 oedo rubykaigi0420140419 oedo rubykaigi04
20140419 oedo rubykaigi04
 
From 'Legacy' to 'Edge'
From 'Legacy' to 'Edge'From 'Legacy' to 'Edge'
From 'Legacy' to 'Edge'
 
Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0Gemification for Ruby 2.5/3.0
Gemification for Ruby 2.5/3.0
 
20140918 ruby kaigi2014
20140918 ruby kaigi201420140918 ruby kaigi2014
20140918 ruby kaigi2014
 
Middleware as Code with mruby
Middleware as Code with mrubyMiddleware as Code with mruby
Middleware as Code with mruby
 
How to distribute Ruby to the world
How to distribute Ruby to the worldHow to distribute Ruby to the world
How to distribute Ruby to the world
 
What's new in RubyGems3
What's new in RubyGems3What's new in RubyGems3
What's new in RubyGems3
 
How to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rbHow to develop Jenkins plugin using to ruby and Jenkins.rb
How to develop Jenkins plugin using to ruby and Jenkins.rb
 
20140925 rails pacific
20140925 rails pacific20140925 rails pacific
20140925 rails pacific
 

Viewers also liked

Heroku and Rails Applications
Heroku and Rails ApplicationsHeroku and Rails Applications
Heroku and Rails ApplicationsAndreas Sotnik
 
Definindo a quantidade de workers para sua app
Definindo a quantidade de workers para sua appDefinindo a quantidade de workers para sua app
Definindo a quantidade de workers para sua appWeverton Timoteo
 
Tejidos vegetales
Tejidos vegetalesTejidos vegetales
Tejidos vegetalesjugafoce
 
Rails MVC Architecture
Rails MVC ArchitectureRails MVC Architecture
Rails MVC ArchitectureMasato TADA
 
MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1晟 沈
 
MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4晟 沈
 
MVC for Desktop Application - Part 2
MVC for Desktop Application - Part  2MVC for Desktop Application - Part  2
MVC for Desktop Application - Part 2晟 沈
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitWittawas Wisarnkanchana
 
digital strategy for PUMA
digital strategy for PUMAdigital strategy for PUMA
digital strategy for PUMAqing yang
 
Make GUI Apps with Shoes
Make GUI Apps with ShoesMake GUI Apps with Shoes
Make GUI Apps with ShoesBrian Hogan
 
MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3晟 沈
 
Cycling of materials in the ecosystem
Cycling of materials in the ecosystemCycling of materials in the ecosystem
Cycling of materials in the ecosystemMara Luarte
 
Human impact on ecosystem
Human impact on ecosystemHuman impact on ecosystem
Human impact on ecosystemJYOTI SAROJ
 
Developing cross platform desktop application with Ruby
Developing cross platform desktop application with RubyDeveloping cross platform desktop application with Ruby
Developing cross platform desktop application with RubyAnis Ahmad
 
Cycling of materials in ecosystem
Cycling of materials in ecosystemCycling of materials in ecosystem
Cycling of materials in ecosystempcalabri
 

Viewers also liked (20)

Python Ecosystem
Python EcosystemPython Ecosystem
Python Ecosystem
 
Ruby on Rails Development Ecosystem
Ruby on Rails Development EcosystemRuby on Rails Development Ecosystem
Ruby on Rails Development Ecosystem
 
Heroku and Rails Applications
Heroku and Rails ApplicationsHeroku and Rails Applications
Heroku and Rails Applications
 
Unicorn vs-puma
Unicorn vs-pumaUnicorn vs-puma
Unicorn vs-puma
 
Definindo a quantidade de workers para sua app
Definindo a quantidade de workers para sua appDefinindo a quantidade de workers para sua app
Definindo a quantidade de workers para sua app
 
Ecosystem Healthcare Introduction
Ecosystem Healthcare IntroductionEcosystem Healthcare Introduction
Ecosystem Healthcare Introduction
 
Tejidos vegetales
Tejidos vegetalesTejidos vegetales
Tejidos vegetales
 
Rails MVC Architecture
Rails MVC ArchitectureRails MVC Architecture
Rails MVC Architecture
 
PPT - ECOLOGY
PPT - ECOLOGYPPT - ECOLOGY
PPT - ECOLOGY
 
MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1MVC for Desktop Application - Part 1
MVC for Desktop Application - Part 1
 
MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4MVC for Desktop Application - Part 4
MVC for Desktop Application - Part 4
 
MVC for Desktop Application - Part 2
MVC for Desktop Application - Part  2MVC for Desktop Application - Part  2
MVC for Desktop Application - Part 2
 
Cross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkitCross-platform Desktop application with AngularJS and build with Node-webkit
Cross-platform Desktop application with AngularJS and build with Node-webkit
 
digital strategy for PUMA
digital strategy for PUMAdigital strategy for PUMA
digital strategy for PUMA
 
Make GUI Apps with Shoes
Make GUI Apps with ShoesMake GUI Apps with Shoes
Make GUI Apps with Shoes
 
MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3MVC for Desktop Application - Part 3
MVC for Desktop Application - Part 3
 
Cycling of materials in the ecosystem
Cycling of materials in the ecosystemCycling of materials in the ecosystem
Cycling of materials in the ecosystem
 
Human impact on ecosystem
Human impact on ecosystemHuman impact on ecosystem
Human impact on ecosystem
 
Developing cross platform desktop application with Ruby
Developing cross platform desktop application with RubyDeveloping cross platform desktop application with Ruby
Developing cross platform desktop application with Ruby
 
Cycling of materials in ecosystem
Cycling of materials in ecosystemCycling of materials in ecosystem
Cycling of materials in ecosystem
 

Similar to An introduction to the ruby ecosystem

Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To RailsEric Gruber
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First MileGourab Mitra
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on railspmashchak
 
Ruby And Ruby On Rails
Ruby And Ruby On RailsRuby And Ruby On Rails
Ruby And Ruby On RailsAkNirojan
 
Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber
       Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber       Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber
Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & CucumberUdaya Kiran
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation platico_dev
 
RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Railselliando dias
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Railsmithunsasidharan
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Railsiradarji
 
Pengantar Ruby on Rails
Pengantar Ruby on RailsPengantar Ruby on Rails
Pengantar Ruby on RailsAshari Juang
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for RubyistsDoug Goldie
 
The story of language development
The story of language developmentThe story of language development
The story of language developmentHiroshi SHIBATA
 

Similar to An introduction to the ruby ecosystem (20)

Introduction To Rails
Introduction To RailsIntroduction To Rails
Introduction To Rails
 
Why ruby
Why rubyWhy ruby
Why ruby
 
sl slides-unit-1.pptx
sl slides-unit-1.pptxsl slides-unit-1.pptx
sl slides-unit-1.pptx
 
Ruby on Rails : First Mile
Ruby on Rails : First MileRuby on Rails : First Mile
Ruby on Rails : First Mile
 
Instruments ruby on rails
Instruments ruby on railsInstruments ruby on rails
Instruments ruby on rails
 
2 Basics
2 Basics2 Basics
2 Basics
 
Ruby And Ruby On Rails
Ruby And Ruby On RailsRuby And Ruby On Rails
Ruby And Ruby On Rails
 
Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber
       Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber       Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber
Behavioural Testing Ruby/Rails Apps @ Scale - Rspec & Cucumber
 
01 index
01 index01 index
01 index
 
Ruby Presentation
Ruby Presentation Ruby Presentation
Ruby Presentation
 
RubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on RailsRubyStack: the easiest way to deploy Ruby on Rails
RubyStack: the easiest way to deploy Ruby on Rails
 
Introduction to Ruby on Rails
Introduction to Ruby on RailsIntroduction to Ruby on Rails
Introduction to Ruby on Rails
 
Ruby On Rails
Ruby On RailsRuby On Rails
Ruby On Rails
 
Pengantar Ruby on Rails
Pengantar Ruby on RailsPengantar Ruby on Rails
Pengantar Ruby on Rails
 
Rails onCpanel
Rails onCpanelRails onCpanel
Rails onCpanel
 
02 ruby overview
02 ruby overview02 ruby overview
02 ruby overview
 
Phoenix for Rubyists
Phoenix for RubyistsPhoenix for Rubyists
Phoenix for Rubyists
 
The story of language development
The story of language developmentThe story of language development
The story of language development
 
Ruby on Rails
Ruby on RailsRuby on Rails
Ruby on Rails
 
Ruby and Security
Ruby and SecurityRuby and Security
Ruby and Security
 

More from Geison Goes

Kotlin multiplataforma
Kotlin multiplataformaKotlin multiplataforma
Kotlin multiplataformaGeison Goes
 
Why companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose FlutterWhy companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose FlutterGeison Goes
 
Functional Swift
Functional SwiftFunctional Swift
Functional SwiftGeison Goes
 
Restful design principles
Restful design principlesRestful design principles
Restful design principlesGeison Goes
 
Cucumber - use it to describe user stories and acceptance criterias
Cucumber - use it to describe user stories and acceptance criteriasCucumber - use it to describe user stories and acceptance criterias
Cucumber - use it to describe user stories and acceptance criteriasGeison Goes
 
Gil - the responsible to unable paralellism
Gil - the responsible to unable paralellismGil - the responsible to unable paralellism
Gil - the responsible to unable paralellismGeison Goes
 
Python functional programming
Python functional programmingPython functional programming
Python functional programmingGeison Goes
 
Ruby Functional Programming
Ruby Functional ProgrammingRuby Functional Programming
Ruby Functional ProgrammingGeison Goes
 

More from Geison Goes (11)

Kotlin multiplataforma
Kotlin multiplataformaKotlin multiplataforma
Kotlin multiplataforma
 
Why companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose FlutterWhy companies like Google, Alibaba and UOL choose Flutter
Why companies like Google, Alibaba and UOL choose Flutter
 
Functional Swift
Functional SwiftFunctional Swift
Functional Swift
 
Functional Go
Functional GoFunctional Go
Functional Go
 
Functional go
Functional goFunctional go
Functional go
 
Restful design principles
Restful design principlesRestful design principles
Restful design principles
 
Cucumber - use it to describe user stories and acceptance criterias
Cucumber - use it to describe user stories and acceptance criteriasCucumber - use it to describe user stories and acceptance criterias
Cucumber - use it to describe user stories and acceptance criterias
 
Gil - the responsible to unable paralellism
Gil - the responsible to unable paralellismGil - the responsible to unable paralellism
Gil - the responsible to unable paralellism
 
Python functional programming
Python functional programmingPython functional programming
Python functional programming
 
Python Flavors
Python FlavorsPython Flavors
Python Flavors
 
Ruby Functional Programming
Ruby Functional ProgrammingRuby Functional Programming
Ruby Functional Programming
 

Recently uploaded

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfkalichargn70th171
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024Mind IT Systems
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456KiaraTiradoMicha
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
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
 
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
 
%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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 

Recently uploaded (20)

call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456LEVEL 5   - SESSION 1 2023 (1).pptx - PDF 123456
LEVEL 5 - SESSION 1 2023 (1).pptx - PDF 123456
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
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...
 
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...
 
%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
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 

An introduction to the ruby ecosystem

  • 1. + = An Introduction to the Ruby Ecosystem
  • 2. An Introduction to the Ruby Ecosystem
  • 3. An Introduction to the Ruby Ecosystem Ruby is an interpreted language which means it needs an… interpreter. In a nutshell, his job is to take your source code as an input and to execute it. The three most popular Ruby interpreter are: ● Matz’s Ruby Interpreter (MRI): the oficial by Matz ● Rubinius: a well-known fast Ruby implementation of Ruby ● JRuby: a JVM implementation
  • 4. An Introduction to the Ruby Ecosystem A read–eval–print loop (REPL), also known as an interactive toplevel or language shell, is a simple, interactive computer programming environment that takes single user inputs (i.e. single expressions), evaluates them, and returns the result to the user; a program written in a REPL environment is executed piecewise. The Ruby language have 2 main used REPLs: ● IRB - Ruby built-in shell. ● PRY - A powerful alternative to the standard IRB shell for Ruby.
  • 5. An Introduction to the Ruby Ecosystem Command-line tool which allows you to easily install, manage, and work with multiple ruby environments from interpreters to sets of gems. The Ruby language have 2 main used version managers: ● RVM - Ruby Version Manager. ● rbenv - Simple Ruby Version Manager.
  • 6. An Introduction to the Ruby Ecosystem RubyGems (previously known as Gemcutter) is a package manager for the Ruby programming language that provides a standard format for distributing Ruby programs and libraries (in a self-contained format called a "gem"), a tool designed to easily manage the installation of gems, and a server for distributing them. Example of command to install a gem: gem install mygem ● https://rubygems.org/
  • 7. An Introduction to the Ruby Ecosystem Bundler provides a consistent environment for Ruby projects by tracking and installing the exact gems and versions that are needed. Bundler is an exit from dependency hell, and ensures that the gems you need are present in development, staging, and production. Starting work on a project is as simple as bundle install. source :rubygems gem "nokogiri" gem "rails", "3.0.0.beta3" gem "rack", ">=1.0" gem "thin", "~>1.1" gem "thor", path: "../thor" group :test do gem "rspec" end
  • 8. An Introduction to the Ruby Ecosystem Rake is a software task management tool. It allows you to specify tasks and describe dependencies as well as to group tasks in a namespace. It is similar to SCons and Make, but it has a number of differences. The tool is written in the Ruby programming language and the Rakefiles (equivalent of Makefiles in Make) use Ruby syntax. It was originated by Jim Weirich. Rake uses Ruby's anonymous function blocks to define various tasks, allowing the use of Ruby syntax. It has a library of common tasks: for example, functions to do common file-manipulation tasks and a library to remove compiled files (the "clean" task). Like Make, Rake can also synthesize tasks based on patterns: for example, automatically building a file compilation task based on filename patterns. Rake is now part of the standard library from Ruby version 1.9 onward.
  • 9. An Introduction to the Ruby Ecosystem namespace :afternoon do task :make_coffee do Rake::Task['morning:make_coffee'].invoke puts "Ready for the rest of the day!" end end
  • 10. An Introduction to the Ruby Ecosystem Ruby has the most famous web framework and maybe the framework with the larger community, its name is Ruby on Rails. Ruby has a lot of web frameworks, here is listed the 2 most used. ● Ruby on Rails - An open-source web framework that’s optimized for programmer happiness and sustainable productivity. It lets you write beautiful code by favoring convention over configuration. ● Sinatra - A DSL for quickly creating web applications in Ruby with minimal effort. Largelly used to create REST Services.
  • 11. An Introduction to the Ruby Ecosystem Ruby has toolchains that enable Ruby developers create mobile apps natively to iOS, Android and Windows. ● RubyMotion - A revolutionary toolchain that lets you quickly develop and test full-fledged native apps for iPhone, iPad, Mac and Android (beta), all using your favorite editor and the awesome Ruby language you know and love. ● Ruboto - A framework and tool chain to develop native Android apps, using the Ruby language we all know and love. ● IronRuby - An open-source implementation of the Ruby programming language which is tightly integrated with the .NET Framework. IronRuby can use the .NET Framework and Ruby libraries, and other .NET languages can use Ruby code just as easily.
  • 12. An Introduction to the Ruby Ecosystem An Application Server is a complete server which provides an environment for running the business components in addition to providing the capabilities of a Web Container as well as of a Web Server. ● Phusion Passenger - An application server that is compiled either as an Apache module or compiled directly along with the nginx source code (because nginx doesn't contain a plugin architecture like Apache does). It excels in situations that need multiple low traffic applications running on the same machine. ● Unicorn - An HTTP server for Rack applications designed to only serve fast clients on low-latency, high-bandwidth connections and take advantage of features in Unix/Unix-like kernels. Slow clients should only be served by placing a reverse proxy capable of fully buffering both the the request and response in between Unicorn and slow clients. ● Puma - A modern, concurrent web server for Ruby.
  • 13. An Introduction to the Ruby Ecosystem As the amount of services and applications grows, becomes extremely hard to deploy all the services and handle all the configurations. In order to solve this kind of problem Ruby has 2 very good tools. ● Capistrano - A utility and framework for executing commands in parallel on multiple remote machines, via SSH. ● Chef - A configuration management tool designed to bring automation to your entire infrastructure.
  • 14. An Introduction to the Ruby Ecosystem A very good practice adopted in the development process is the continuous delivery. The process where every time the code is committed to a shared host some tasks are executed on the code in order to validate the quality, and if everything is ok the code is deployed. The 2 most used CI server are: ● Jenkins - An extendable open source continuous integration server. ● Semaphore - A hosted continuous integration and delivery solution for open source and private projects.
  • 15. An Introduction to the Ruby Ecosystem Testing is a large part of Ruby culture. Ruby comes with its own Unit-style testing framework called minitest (Or TestUnit for Ruby version 1.8.x). There are many testing libraries with different goals. ● TestUnit - Ruby 1.8’s built-in “Unit-style” testing framework ● minitest - Ruby 1.9/2.0’s built-in testing framework ● RSpec - A testing framework that focuses on expressivity ● Capybara - The integration testing framework ● Cucumber - A BDD testing framework that parses Gherkin formatted tests
  • 16. An Introduction to the Ruby Ecosystem A tool responsible to check possible vulnerabilities in a project. ● Brakeman - An open source vulnerability scanner specifically designed for Ruby on Rails applications. It statically analyzes Rails application code to find security issues at any stage of development.
  • 17. An Introduction to the Ruby Ecosystem
  • 18. ● ● ● ● ● ● ● An Introduction to the Ruby Ecosystem
  • 19. ● An Introduction to the Ruby Ecosystem ○ ● ○ ● ○ ● ○