Ler e Escrever em arquivo texto

Posted in Uncategorized com as tags on Abril 14, 2009 by rodrigomaiabarros

Ler e escrever num arquivo texto, em Ruby, é muito fácil. Sem nenhum blablabla, abaixo o código exemplo de como fazer:

#Criando um arquivo para escrita
scr = File.new(“c:/txt_write.sql”,”w”)

#Lendo o arquivo “txt_read.TXT”
File.open(‘c:/txt_read.TXT’) do |txt|
#loop pelas linhas do arquivo
txt.each_line() do |linha|
#eliminando as quebrar de linha
linha = linha.gsub(‘ ‘,”).chomp
puts (“Escrevendo: #{linha}: #{linha.length} caracteres”)
end
end

#fechar arquivo criado para a escrita
scr.close()

Eliminar Quebras de Linha

Posted in Uncategorized com as tags on Abril 14, 2009 by rodrigomaiabarros

Para eliminar quebras de linha em Ruby:

Considere “linha” uma variavel de entrada ou lendo um arquivo texto.

Ex: linha = linha.chomp

E se quiser eliminar os espaços em branco, faça um substring(ver operações com strings).

Combinando os dois assim, você consegue fazer uma leitura “mais limpa”:

linha = linha.gsub(‘ ‘,”).chomp

Erro do MySql com Rails 2.3

Posted in Uncategorized com as tags on Março 27, 2009 by rodrigomaiabarros

Na verdade o erro é desde a 2.2, mas como nunca consegui resolver, venho utilizando a 2.1 até hoje.

O erro é o seguinte:

Quando tento: rake db:migrate

(in C:/rails_project/projeto_teste)
rake aborted!
can’t activate rails (= 2.2.2, runtime), already activated rails-2.3.2

(See full trace by running task with –trace)
Process rake exited with code 1

* Ja vi nos foruns que acontece este erro tambem no start do server.

Bem, pra consertar é só copiar o mysql.rb que foi instalado nas outras versões do Rails, no meu caso na 2.1.0:

C:\ruby\lib\ruby\gems\1.8\gems\activerecord-2.1.0\lib\active_record\vendor

E copiar para as versões do Rails que quiser fazer funcionar, no meu caso a 2.3.2:

C:\ruby\lib\ruby\gems\1.8\gems\rails-2.3.2\lib

Até que enfim vou testar a nova versão. :)

Tudo são objetos e trocas de mensagens

Posted in Uncategorized com as tags on Março 26, 2009 by rodrigomaiabarros

Estava “brincando” com o irb hoje e vendo essas coisas de tudo é objeto e tal.

Daí pensei: Opa! Se até os numeros(Fixnum) são objetos, como ele resolve o lance de uma simples operação aritmética?

Procurei na documentação e vi isso:

Methods: %   &   *   **   **   +   -   -@   /   <   <<   <=   <=>   ==   >   >=   >>   []   ^   abs   div   divmod   id2name   induced_from   modulo   power!   quo   quo   rdiv   rpower   size   to_f   to_s   to_sym   zero?   |   ~

Então o “+” é um método…

testei e:

irb(main):001:0> 3 + 2
=> 5
irb(main):002:0> 3.+(2)
=> 5

Não sei você, mas eu achei super bacana esse negócio de tudo é objeto e tudo é troca de mensagem entre eles…

aqui o código do método “+”.

Indico fortemente a leitura da documentação do Ruby para conhecer mais e mais esta linguagem tão poderosa.

Uma autenticação bem simples em Rails.

Posted in Uncategorized com as tags on Março 20, 2009 by rodrigomaiabarros

Senhores(as), fiz uma aplicação bem simples para testar como funciona uma autenticação em Rails, vi que existem vários plugins que auxiliam na criação da funcionalidade, mas acho extremamente importante conhecer o funcionamento “por trás da cena”.

Na application.rb:

before_filter :verifica_acesso

protected
def verifica_acesso
unless session[:user]
redirect_to :controller => :usuarios, :action => :prepare_login, :msg => “Login requerido”
end
end

* unless session[:user] =====> verifica se existe o usuário na sessão

No controller que quero aplicar a regra:

skip_before_filter :verifica_acesso

Na função de login, apenas adicionei o cara na sessão da seguinte forma:

session[:user] = usuario

Só isso. Bem que aqui só verifico se o cara esta na sessão, a regra pode, e deve, ser ampliada para verificar permissão e ou coisas do tipo.

Ceará On Rails – Evento

Posted in Uncategorized on Outubro 28, 2008 by rodrigomaiabarros

Um primeiro teste em Ruby

Posted in Uncategorized com as tags on Outubro 17, 2008 by rodrigomaiabarros

Hoje fiz um pequeno e simples teste em Ruby, apenas para descobrir se “o que falam por aí” é verdade, e mais uma vez fui surpreendido, muito simples.

Criei uma classe:

class Calculadora
def somar(a,b)
return a + b
end

def sub(a,b)
return a - b
end
end

Criei o teste para ela:

require "test/unit"
require "tests/calculador"
class TestCalculadora < Test::Unit::TestCase
def setup
@c = Calculadora.new
end

def test_soma
assert_equal(@c.somar(1, 2), 3, message = '1 + 2 = 3')
end

def test_sub
assert_equal(@c.sub(5, 2), 3, message = '5 - 2 = 3')
assert_equal(@c.sub(2, 5), -3, message = '2 - 5 = -3')
end
end

Pronto. Simples e pronto pra aumentar a complexidade.

Operações com String em Ruby

Posted in Uncategorized com as tags on Outubro 17, 2008 by rodrigomaiabarros

Outro dia estava me enrolando com operações com Strings, como sou um cara originário do Java, vi que uma forma fácil de organizar algumas operações mais básicas que fazemos constantemente, era relacionar com os métodos que usava em Java.

Obs. Mesmo não sendo javeiro, o conteúdo é bem simples e claro.


#split
array = "Hello World".split(" ")
array.each do |a|
puts a
end

#replace
nome = "Rodrigo Maia Barros"
puts nome.sub("a", "@")

#replaceAll
nome = "Rodrigo Maia Barros"
puts nome.gsub("a", "@")

#substring
nome = "Rodrigo Maia Barros"
puts nome[2..nome.size]

#indexOf
nome = "Rodrigo Maia Barros"
puts nome.index("M")

#toUpperCase
nome = "Rodrigo Maia Barros"
puts nome.upcase

#toLowerCase
nome = "Rodrigo Maia Barros"
puts nome.downcase

#indexOf com ignoreCase via POG
nome = "Rodrigo Maia Barros"
puts nome.upcase.index("m".upcase)

Fóruns e Grupos

Posted in Uncategorized com as tags on Setembro 14, 2008 by rodrigomaiabarros

Pra começar a estudar, é interessante estar em contato com os “caras” da tecnologia, você pode encontrar grandes expoentes do Rails, como o Tapajós e o Akita no rails-br.

Para os cearenses, foi criado o não menos promissor CearaOnRails, com lista de discussão, comunidade no orkut e tudo mais.

Tem tambem o fórum RubyOnBr que é muito movimentado e você pode encontrar os feras por lá tambem.

Por onde começar

Posted in Uncategorized com as tags on Setembro 14, 2008 by rodrigomaiabarros

Pra começar, aconselho muito fortemente o tutorial do TaQ, só depois de conhecer bem Ruby você pode partir para o Rails, estudei por um tutorial chamado “Rails para sua diversão e lucro”… Muito bom pra começar.

No windows eu uso o RadRails (Aptana).

O melhor do Rails é que como muito pouca coisa, você ja faz muito, então sisteminhas que você passaria 4 ou 6 meses estudando pra desenvolver, você consegue em 1 ou 2 semanas, e o melhor, entendendo bem o que acontece.

Outra coisa bem bacana é que Rails lhe “força” realmente a usar algumas boas práticas, cito 2:

1) Pra todo crontroller ou model gerado, tambem são geradas suas classes de teste;

2) É um framework MVC, de verdade, sem várias camadas confusas, somente as 3 camadas do MVC bem claras e distintas.

Garanto que procurando um pouco, você encontra muita coisa relacionada e tutoriais para iniciantes.