Arquivo da categoria ‘Ruby on Rails’

Como de costume sempre ressaltamos que Ruby é uma linguagem diferenciada por ser puramente orientada a objeto, isto significa que ao contrario de muitas linguagens de programação mais tradicionais, números inteiros e números flutuantes em Ruby não são tipos primitivos e sim objetos, assim acontece também com os objetos Strings. Por este motivo o Ruby possui uma simplificada e poderosa sintaxe cheia de recursos tornando muito fácil manipular objetos do tipo string, integer e float.

Strings

Um objeto String mantém e manipula uma sequência arbitrária de bytes, normalmente representando caracteres.

String: http://www.ruby-doc.org/core-2.1.2/String.html

Integers

Esta classe é a base para as duas classes concretas que sustentam números inteiros, Bignum e Fixnum.

Integer: http://www.ruby-doc.org/core-2.1.2/Integer.html

Floats

Objetos flutuantes representam números reais inexatos utilizando precisão de dupla representação de ponto flutuante da arquitetura nativa.

Float: http://www.ruby-doc.org/core-1.9.3/Float.html

Ruby - Strings - Integers - Floats

Ruby – Strings – Integers – Floats

Exemplo:

Neste exemplo manipulamos objetos literais, inteiros e flutuantes através das classes da linguagem de programação Ruby.

Ruby

#!/usr/bin/env ruby
# Desenvolvimento Aberto
# Variaveis.rb

# Inteiros
2.times() {puts "Contagem Regressiva"}

puts "\nContando..."
5.downto(1) {|x| puts x}
puts "Booommm!!!"

# Flutuantes
puts "\nFlutuantes"
float = 5.to_f

puts "Numero flutuante: " + String(float) + " Adicionando 4.3: Total= " + String(float + 4.3)

# Strings
puts "\nObjetos Strings\n"
puts "desenvolvimento".capitalize + " " + "aberto".capitalize
puts "desenvolvimento".upcase
puts "ABERTO".downcase

Ruby – Data Type – Array – Linux

Publicado: 11 de agosto de 2014 em Ruby on Rails

Como sabemos Ruby é uma linguagem de programação puramente orientada a objeto, então um Array em Ruby é um objeto pertencente a classe Array. A matriz é muito parecida com um objeto da classe Hash, entretanto um objeto Array é uma coleção indexada por números inteiros.

Um Array é um objeto muito rico em recursos por este motivo é recomendado utilizar os links oficias para saber mais detalhes sobre este objeto: Classe Array.

Ruby - Array

Ruby – Array

Exemplo:

Neste exemplo utilizamos o objeto da classe Array e alguns de seus métodos.

Ruby

#!/usr/bin/env ruby
# Desenvolvimento Aberto
# Arrays.rb

# Declara um array
matriz = ["Nirvana", "Alice in Chains", "Pearl Jam", "Screaming Trees"]

# Imprime o Array
matriz.each do |conteudo|
  puts conteudo
end

puts "\nDeleta um item do array"
matriz.delete("Pearl Jam")
matriz.each do |conteudo|
  puts conteudo
end

puts "\nRetira o ultimo elemento da array"
matriz.pop
matriz.each do |conteudo|
  puts conteudo
end

puts "\nInclui um item ao array"
matriz << "MudHoney"
matriz.each do |conteudo|
  puts conteudo
end

Um Symbol em português símbolo, são objetos que representam os nomes e algumas Strings dentro do interpretador Ruby. Eles são gerados usando o caractere : (dois pontos). Lembrando que Ruby é uma linguagem puramente orientada a objeto, os símbolos são objetos instanciados da classe Symbol, entretanto o uso mais comum para um símbolo é dentro dos objetos da classe Hash.

Um Hash é uma coleção como dicionário de chaves únicas e seus valores. Também chamados de Arrays associativos, eles são semelhantes aos Arrays comuns, mas onde uma matriz usa inteiros como seu índice, um Hash permite a utilização de qualquer tipo de objeto.

Ruby - Symbol e Hash

Ruby – Symbol e Hash

Exemplo:

Neste exemplo utilizamos símbolos e imprimimos seus IDs de objetos e os utilizamos dentro de tipos hash no qual podemos os referenciar como dicionário contendo chaves e valores.

Ruby

# Desenvolvimento Aberto
# Simbolos-hash.rb

# Lembre-se que Ruby é uma linguagem
# Puramente orientada a objeto
puts "IDs dos objetos Simbolos:"
puts :beatles.object_id 
puts :rollinsStones.object_id

# Para atribuir num valor ao simbolo
# usa-se um hash 
puts "\nConteudo de um hash:"
bandas = {:beatles => "Come together", :rollinsStones => "Satisfaction" }
puts bandas 

# Você pode utilizar um hash referenciando seus sibolos
puts "\nMinhas musicas:"
puts bandas[:beatles]
puts bandas[:rollinsStones]

 

 

A linguagem de programação Ruby possui uma instrução “mágica” que suspende as regras da Orientação a Objeto, ligando blocos de procedimento a um método ou uma função, esta incomum instrução chamada Yield, permite que métodos sejam chamados como um argumento implícito e permitindo que os blocos tenham seus próprios argumentos, ou seja Yield passa para o método o conteúdo de um bloco quando interligados através de suas sintaxes, podendo ainda trocar parâmetros entre si.

Ruby - Yield

Ruby – Yield

Exemplo:

Neste exemplo criamos duas funções e dois blocos no qual interagem entre si através da instrução Yield.

Ruby

# Desenvolvimento Aberto
# Block-yield.rb

# cria uma função padrão
def funcao
  # Esta instrução fornce uma conexão com um bloco
  puts "Yield conecta um bloco a uma function"
  puts "podendo substituir o conteudo do metodo"
  puts "O bloco executa:"
  yield
end

# função com parametros
def parametros
  yield "Desenvolvimento Aberto"
end

# O bloco será executado no lugar do yield
funcao {
  puts "Desenvolvimento"
  puts "Aberto"
}

# passa um parametro
parametros { |x| puts "imprime o valor do campo yield: #{x}"}

De acordo com Ruby orientado a objeto, as funções  e procedimentos são geralmente referidos como métodos. Não há diferença. Nós vamos cobrir métodos com muito mais detalhes quando chegarmos a objetos e classes. Basicamente uma função retorna um valor e um procedimento executa um processo em bloco.

def - Ruby - console

def – Ruby – console

Exemplo:

Neste exemplo criamos uma função que verifica a idade de um individuo e define seu estado acompanhado de um método que imprime um cadastro.

Ruby

# Desenvolvimento Aberto
# blocos.rb

# Função sempre retorna um valor
def identificaIdade(idade)

  # Verifica idade
  if (idade < 3)
    definir = "bebe"
  elsif (idade >= 3) and (idade < 13)
    definir = "crianca"
  elsif (idade >= 13) and (idade < 18)
    definir = "adolecente"
  else
    definir = "adulto"
  end

  # retorna denição
  return definir
end

# Um procedimento executa um bloco de instruções
def imprimeCadastro(nome, idade, sexo)   

  # Imprime cadatro
  puts "nome: " + nome.to_s
  puts "idade: " + idade.to_s
  puts "sexo: " + sexo.to_s

  # Chama a função
  puts nome + " foi classificada como: " + identificaIdade(idade.to_i)

end

# executa um procedimento
imprimeCadastro("Eliana", 18, "Feminino")

Case – Condição – Ruby – Linux

Publicado: 25 de julho de 2014 em Ruby on Rails

Avalia uma lista de condições e retorna uma das várias expressões de resultado possíveis, a expressão CASE tem dois formatos: CASE simples compara uma expressão com um conjunto de expressões simples para determinar o resultado e a expressão CASE que avalia um conjunto de expressões booleanas para determinar o resultado. Ambos os formatos suportam um argumento ELSE opcional.

Case - Ruby - console

Case – Ruby – console

Exemplo:

Neste exemplos utilizamos um numero para identificar o dia da semana.

Ruby

# Desenvolvimento Aberto
# blocos.rb

# Cria uma pergunta
puts "Escolha um numero de 1 a 7 :"
dia = gets

# Cria uma condição
case dia.to_i
 
when 1
  puts 'Segunda-feira'
 
when 2
  puts 'Terca-feira'

when 3
  puts 'Quarta-feira'
  
when 4
  puts 'Quinta-feira'

when 5
  puts 'Sexta-feira'
  
when 6
  puts 'Sabado'

when 7
  puts 'Domingo'
  
else
  puts 'Dia indefinido'
end

Um conceito muito importante em Ruby é o bloco de código. Na verdade não é um conceito particularmente revolucionário, mas em Ruby um bloco de código tem alguns poderes secretos escondidos … Os blocos de código em Ruby são definidos tanto com as palavras-chave do .. end ou as chaves {..}. Um bloco pode ser utilizado sozinho ou em conjunto com um método, mas veremos este conceito mais tarde.

Block - Ruby - console

Block – Ruby – console

Exemplo:

Neste exemplo criamos dois blocos utilizando um laço.

Ruby

# Desenvolvimento Aberto
# blocos.rb

# cria um objeto valendo 5
vezes = 5

# executa um looping em um bloco
# Bloco usando colchetes
vezes.times { |v| puts "Eu sou um bloco Ruby #{v}" }

# Pula uma linha
puts "\n"

# executa um looping em um bloco
# Bloco usando Do
vezes.times do
  puts "Eu sou outro bloco Ruby"
end

For – Looping – Ruby – Linux

Publicado: 25 de julho de 2014 em Ruby on Rails

Usando um loop for, você pode executar uma instrução ou um bloco de instruções repetidamente até que uma expressão especificada seja avaliada como falsa. Este tipo de circuito é útil para iterar sobre matrizes e para outras aplicações em que você sabe de antemão quantas vezes você quer iterar o loop.

For - Ruby - Console

For – Ruby – Console

Exemplo:

Neste exemplo utilizamos um For para iterar uma faixa de valores e utilizamos seu laço para criar uma simples tabuada.

Ruby

# Desenvolvimento Aberto
# Numeros.rb
 
# Coleta um numero
puts "Digite um numero para a tabuada: "
nu = gets
 
# Converte para inteiro
numero = nu.to_i
 
# Cria um laço com o numero escolhido
for n in 1..10
  puts n.to_s + " x " + numero.to_s + " = " + String(n * numero)
end

While – Looping – Ruby – Linux

Publicado: 24 de julho de 2014 em Ruby on Rails

O comando while executa uma instrução ou um bloco de instruções até que uma expressão especificada seja avaliada como falsa. Como o teste da expressão ocorre antes de cada execução do loop, um loop while executa nenhuma ou mais vezes. Isso difere do loop Do, que executa uma ou mais vezes. Veja este exemplo na figura abaixo:

While - Ruby - Console

While – Ruby – Console

Ruby não possui a instrução Do em sua coleção de comando de laços, e sim para marcar blocos de instruções, então para que o comando While tenha o efeito do comando Do (em outras linguagens de programação) você pode mudar a condição para o final do bloco de instruções iniciados com a palavra chave Begin.

Sintaxe:

begin
Bloco de comandos
end while (condição)

Deste modo o comando While executa pelo menos uma vez o bloco de instruções  independente da condição.

Exemplo:

Através de um laço diferenciamos os números impares e pares os exibindo no console, atente-se para a logica do comando While que executa nenhuma ou mais vezes pois o teste sempre ocorre antes da execução do loop.

Ruby

# Desenvolvimento Aberto
# pares.rb

# Coleta um numero
puts"Digite um numero limite:"
n = gets

# Converte para inteiro
numero = n.to_i

#Cria numeros iniciais pares e impares
npar = 0
nimpar = 1

# Cria um laço com o numero escolhido
while (npar <= numero)
  puts "numeros pares:" + npar.to_s + "     " + "numeros impares:" + nimpar.to_s
  npar = npar + 2
  nimpar = nimpar +2
end

 

IF é um dos comandos mais comuns e um dos mais importantes na programação, este comando é responsável pelas tomadas de decisões, existe praticamente em todas as linguagens de programação, antigamente este comando era conhecido como “se-então-senão” ou “if-then-else” mas as linguagens mais modernas substituirão o “então” pelo símbolo “{}” (colchetes), se a condição puder ser executada por apenas uma linha de comando então não é necessário usar o colchete.

Em Ruby a condição IF tem uma sintaxe um pouco diferente ficando assim:

IF(se) a condição for atendida faça algo, ELSIF (senão, se) outra condição for atendida faça algo, ELSE (senão) faça algo, END (fim da condição).

Looping - Ruby - Console

Looping – Ruby – Console

Exemplo:

Imagine o seguinte cenário:  nossos colaboradores estão autorizados a fazer um tipo de empréstimos na folha de pagamento, mas o empréstimo é habilitado apenas se o ganho mensal com desconto não ultrapassar R$ 1000,00. Porem temos um limite de R$ 10,00 para mais ou para menos que o gerente de sua respectiva área pode liberar. Assim devemos verificar o valor do salario e exibir uma mensagem referente ao empréstimo.

Ruby

# Desenvolvimento Aberto
# looping.rb

# Cria e alimenta variaveis
codigo = 10
nome = "Alberto da Silva"
ativo = true
salario = 1556.00

#Usando mascaras e convertendo
#imprime as variaveis usando mascaras
puts "Codigo:  valor int:    " + codigo.to_s
puts "Nome:    valor strig:  " + nome
puts "Ativo:   valor boolean: " + ativo.to_s
puts "Salario: valor float:   " + salario.to_s

#Coleta valor do desconto
puts "\nDigite o valor do desconto:"
desconto = gets

#Calcula e converte desconto
salario = salario - desconto.to_f

#Imprime o resultado
puts "Valor do salario liquido: " + salario.to_s

# Decide o emprestimo
if (salario >= 1010)
  puts "\nEmprestimo desabilitado"
elsif  (salario >=990) and (salario <=1010)
  puts "\nFale com o Gerente"
else
  puts "\nEmprestimo habilitado"
end