Bom senso no uso da Tecnologia da Informação
Artigos com o marcador ruby
Introdução ao RestfulX
29/10/09
Apesar de já ter escrito dois artigos sobre o assunto (um screencast e um tutorial), este artigo é o primeiro de uma série que pretendo escrever sobre o RestfulX, um framework incrível para quem quer integrar o Flex (ou AIR) ao RubyOnRails, Google App Engine, CouchDB, SQLite ou até mesmo integrar com o Juggernaut (plugin para o Rails para envio de mensagens do servidor para o cliente – server-push). Nos primeiros artigos eu vou focar a integração do Flex com o Rails. Assim como toda aula introdutória, este artigo vai ser um pouco “conceitual”, mas não por isso será menos importante que os artigos onde eu mostro algum código.
A idéia principal do RestfulX é trazer para o Flex os princípios de desenvolvimento do Rails, seguindo o conceito REST de comunicação entre cliente e servidor. Por exemplo, se definirmos no Rails que um projeto tem muitas tarefas, podemos fazer o seguinte no Rails:
@projeto = Projeto.new @tarefa = Tarefa.new @tarefa.projeto = @projeto @projeto.tarefas.size # O resultado é 1
O que o RestfulX faz é trazer toda essa facilidade para o Flex (através do ActionScript):
var proj:Projeto = new Projeto; var tarefa:Tarefa = new Tarefa; tarefa.projeto = proj; proj.tarefas.length; // O resultado é 1
Criando XML no Rails com caracteres acentuados
21/09/09
Há aproximadamente um ano atrás me deparei com um problema: precisava gerar um arquivo XML a partir dos dados que eu tinha no BD, para fazer a integração com um sistema externo. O meu problema era que, ao criar o XML, os caracteres acentuados eram mostrados codificados. Por exemplo, no lugar do ã era mostrado o código ã.
Me lembro que recorri a listas de discussão, fóruns, trabalhei com o ICONV, unpack, tentei fazer conversão entre conjuntos de caracteres e outras coisas… só não fiz uma reza braba porque não dava tempo.
Como o problema era com um único campo, acabei encontrando outra solução mais prática do que técnica, que me atendeu muito bem na época.
Mas agora, 12 meses depois, me deparei com o mesmo problema, só que agora precisava exportar não apenas um campo, mas uma série de campos. Remover os caracteres acentuados seria inviável, pois não se tratava apenas de um nome de uma pessoa, mas de um relatório. Comecei novamente a caçada pela solução.
Precedência dos operadores em Ruby
19/03/09
O Ruby é, sem dúvida, uma linguagem interessante. Tenho observado algumas peculiaridades que não me lembro de ter visto em outras linguagens. Uma dessas peculiaridades é a precedência de operadores, mais especificamente em relação aos operadores lógicos.
O Ruby dispõe duas formas de se fazer uma comparação lógica. Por exemplo, você pode usar && ou and, || ou or e ! ou not. No fundo, as operações são iguais, mas a diferença está na precedência desses operadores. Os operadores &&, || e ! têm maior precedência sobre os operadores and, ou e not. Dessa forma, o bloco a seguir não funcionaria se colocássemos && no lugar de and. Se fizéssemos isso, o Ruby primeiro faria a comparação entre f(x) e b para depois atribuir o resultado a a e não o contrário, como era esperado.
if a = f(x) and b = f(y) and c = f(z) then puts "Resultado" end
Formatando casas decimais de um número float no Ruby
03/10/08
É incrível como às vezes perdemos tempo tentando resolver problemas tão pequenos. Hoje eu precisava fazer umas divisões com números float, e em alguns casos o resultado era uma dízima periódica. Como esse dado vai para um XML que será exportado para outro sistema, ele impedia o XML de ser validado, exatamente por conter trocentos dígitos após a vírgula. Pois é, essa questão ridícula me tomou muito tempo hoje.
A solução é muito simples: para formatar um float com duas casas decimais no Ruby, utilize:
format("%.2f", 1.3412)
O resultado será: "1.34" (Sim, uma String. Use to_f caso deseje converter novamente para float)
# Edit @ 04/out/08
Conforme comentário do Carlos Brando, existe uma forma ainda melhor de fazer isso:
1.3412.round(2)
Mais importante do que usar uma boa linguagem é ter profissionais competentes ao nosso redor. Valeu, Carlos!



Últimos Comentários