Vinícius Alonso
Quem sou eu ?
Linguagem de Programação
Framework
puts "Hello Ruby!"
@name #variável do objeto
@@name #variável da classe
name #local
$name #global
#Syntax de um símbolo
:name
:'name'
:'full-name'
'ola'.object_id == 'ola'.object_id #false
:ola.object_id == :ola.object_id #true
(1..10) # Intervalo de 1 à 10
(1...10) # Intervalo de 1 à 9
('a'..'z') # Intervalo de a à z
(1..10).to_a # Convertendo para array
age = 18
if age >= 18
puts "Maior de idade"
else
puts "Menor de idade"
end
for number in (0..10)
puts number
end
i = 0
MAX = 5
until i > MAX do
puts("Valor de i = #{i}")
i += 1
end
5.times { puts "Vai Timão!!!" }
# Declarando um novo array
array = []
array = Array.new
array = [1,2,3,4,5]
# Percorrendo um array
array.each { |value| puts value }
array = []
# Adicionando elementos
array.push("FTSL")
array << 10
array << :utfpr
array = ["FTSL", 10, :name]
# Removendo elementos
array.delete("FTSL")
array.pop
array.clear
array = [1,2,3,4,5]
array.length # Tamanho do array
array.first # Primeiro elemento
array.last # Último elemento
array.index(3) # Retorna a posição
array.include?('m') # Contém o elemento
# Declarando um novo hash
h = Hash.new
h = {}
hash = {
1 => 'Curitiba',
true => 20,
'utfpr' => :college,
}
hash[:event] = "FTSL" #Adicionando
hash.delete(:event) #Removendo elemento
# Syntax de um bloco
puts { "Hello!!!" }
puts do
"Hello!!!"
end
# Exemplo de uso
pairs = [1,2,3,4,5,6].select do |n|
n % 2 == 0
end
pairs.each { |n| puts "valor: #{n}" }
# Definindo uma classe
class Person
end
# Instanciando um objeto
person = Person.new
class Person
def initalize name, age
@name, @age = name, age
end
end
# Instanciando
Person.new 'Vinícius', 25
class Person
attr_reader :name
attr_writer :age
@@count = 0
def initialize hash
@name = hash[:name]
@age = hash[:age]
@@count += 1
end
end
class Person
def talk
puts "Estou falando ..."
end
private
def other_behavior; end
protected
def different_behavior; end
end
class Person
def initialize name
@name = name
end
end
class Worker < Person
def initialize name, profession
super name
@profession = profession
end
end
module Example
end
module Example
PI = 3.14159
def show_message
puts "Estou aqui ..."
end
end
# Módulo usado como namespace
module API
class Book
end
end
module ADMIN
class Book
end
end
# Módulo usado como mixin
module Calculator
def sum_numbers(*numbers)
numbers.map.reduce(:+)
end
end
# Módulo usado como mixin
class Example
include Calculator
end
class Example
extend Calculator
end
obj = Object.new
obj.extend Calculator
class Person
def method_missing name, args=nil
puts "method_missing: #{name}"
end
end
person = Person.new
person.test_missing
class Person
def method_missing(name,*args,&block)
name = name.to_s
_class = class << self; self; end
_class.class_eval do
define_method(name) do
puts "Método novo: #{name}"
end
end
end
end
# Instala uma nova gem
gem install <nome_da_gem>
# Lista as gems instaladas
gem list
# Carrega um servidor local com a
# documentação das gems instaladas
gem server
describe Person do
describe "#save" do
it "save new Person" do
#setup
person = Person.new params
#exercise
person.save
#verify
expect(person.new_record?).to be_true
end
#teardown
after do
Person.destroy_all
end
end
end