Resumo retirado do vídeo Ruby Programming do canal Derek Banas.
O código original pode ser encontrado aqui.
puts "Hello World"
name = "John Doe"
puts ("Hello" + name)
PI = 3.14
PI = 3.1
puts PI
puts "6 + 4 = " + (6+4).to_s
puts "6 - 4 = " + (6-4).to_s
puts "6 * 4 = " + (6*4).to_s
puts "6 / 4 = " + (6/4).to_s
puts "6 % 4 = " + (6%4).to_s
puts "true && false = " + (true && false).to_s
puts "true && false = " + (true || false).to_s
puts "!true = " + (!true).to_s
number = 5
if number == 3
puts "number is 3"
elsif number == 4
puts "number is 4"
else
puts "number is neither 3, nor 4"
end
case greeting
when "French", "french"
puts "Bonjour"
exit
when "Spanish", "spanish"
puts "Hola"
exit
else
puts "Hello"
end
wearing_mask = true
unless wearing_mask
puts "Stay at home"
else
puts "You can go out"
end
puts (age >= 50) ? "Old" : "Young"
x = 1
loop do
x += 1
next unless (x % 2) == 0
puts x
break if x >= 10
end
y = 1
while y <= 10
y += 1
next unless (y % 2) == 0
puts y
break if y >= 10
end
begin
z += 1
next unless (z % 2) == 0
puts z
break if z >= 10
end while z <= 10
until a >= 10
a += 1
next unless (a % 2) == 0
puts a
end
numbers = [1, 2, 3, 4, 5]
for number in numbers
puts "#{number}, "
end
groceries = ["bananas", "apples", "Grapes"]
groceries.each do |food|
puts "Get some #{food}"
end
(0..5).each do |i|
puts "# #{i}"
end
def greet(name="Stranger")
puts "Hello " + name
end
puts greet("John Doe")
puts greet()
# Inicializando
class Animal
def initialize
puts "Creating a New Animal"
end
# Definindo setters
def set_name(new_name)
@name = new_name
end
# Outra forma de definir setters
def name=(new_name)
# Definindo getters
def get_name
@name
end
# Outra forma de definir getters
def name
@name
end
end
cat = Animal.new
cat.set_name("Bixano")
puts cat.get_name
puts cat.name
cat.name = "Kitty"
puts cat.name
class Person
# Atalho para criar getters
attr_reader :name, :height, :weight
# Atalho para criar setters
attr_writer :name, :height, :weight
#Atalho para criar ambos
attr_accessor :name, :height, :weight
def bark
return "woof"
end
end
dog = Dog.new
dog.name = "Totó"
puts dog.name
puts dog.bark
Ao herdar, uma classe recebe todos os métodos e variáveis. Só é possível herdar de uma classe.
class ScaryDog < Dog
def bark
return "Loud Bark"
end
end
dangerous_looking_dog = ScaryDog.new
dangerous_looking_dog.name = "unknown"
puts dog.bark
module Smart
def act_smart
return "E = mc²"
end
end
module Human
attr_accessor :name, :height, :weight
def run
puts self.name + " runs"
end
end
class Scientist
include Human
prepend Smart # Métodos em Smart irão sobrescrever os atuais
def act_smart
return "E = mc^2"
end
end
einstein = Scientist.new
einstein.name = "Albert"
puts einstein.name
einstein.run
puts einstein.name + " says " + einstein.act_smart
states = {
"AL" => "Alagoas",
"PE" => "Pernambuco"
}
puts states
puts states["SP"]
puts states["AL"]
states["RJ"] = "Rio de Janeiro"
puts states
Dada uma palavra a função is_palindrome retornará um booleano indicando se a palavra é um palíndromo.
def is_palindrome(str)
original = str.split('')
reversed = original.reverse()
return original == reversed
end
puts is_palindrome('teste') # falso
puts is_palindrome('ovo') # verdadeiro
puts is_palindrome('arara') # verdadeiro
puts is_palindrome('reviver') # verdadeiro
Dado um número inteiro a função factorial retornará um array com os fatoriais até o número atual.
def factorial(number)
factorials_array = [1]
(1..number).each do |i|
fat = factorials_array[i - 1] * i
factorials_array.push(fat)
end
return factorials_array
end
puts factorial(10)