goncin@wordpress.com:~$ _

Linux, programação e toda sorte de nerdices

Arquivos da Categoria: ruby

E se as linguagens de programação fossem jogadores de futebol?

Java

Zagueiro das antigas, pesadão. Chegou a ser cogitado para ser o capitão do time, mas só para dirigir uma palavrinha ao juiz ele precisava declarar uma classe pública, um método estático main() para só então dizer alguma coisa via System.out.println(). Nenhum árbitro teria a paciência de esperar tanto.

Pascal

Bom jogador, disciplinado taticamente, desde que expliquem para ele em detalhes, durante a preleção (interface), o que deve fazer durante o jogo (implementation). Como podem deduzir, improviso não é com ele.

Delphi

Irmão mais novo do Pascal, mais bonitinho (segundo as marias-chuteiras), só que, por outro lado, bem mais pesado.

C

Rápido e pequeno (baixinho), mas com um grande defeito de caráter: colocar toda a responsabilidade pelos seus erros nas mãos do técnico.

C++

Irmão do meio do C. Vive se gabando de ter herdado suas características de jogo de duas escolas ao mesmo tempo. (Update) Vive atazanando o mano mais velho chamando-o de “sem-classe”.

C#

Irmão mais novo do C e do C++, o mais educado da família. Mas só joga na presença do seu empresário, um tal de Dotinéti.

PHP

Jogador versátil, atua tanto na linha (de comando) quanto nas redes. É o garoto de recados do técnico (apesar de sua cara de interrogação), echoando as instruções dos técnicos para os colegas. Alguns o consideram um mercenário, por ostentar inúmeros $.

Ruby

Atleta surpreendente, tem sempre uma jogada nova. Pena que muitos técnicos não lhe dão o devido valor, talvez porque não consigam compreendê-lo muito bem. Rende melhor calçando as chuteiras OnRailsTM.

Python

Elegante, joga pelas laterais, mas costuma deixar muito espaço à esquerda, o que faz a alegria do ataque adversário.

Perl

Jogador estrangeiro e um tanto quanto mercenário ($), tem a fama de jogar bem. O difícil é falar a língua dele…

ASP/VBScript

Limitado tecnicamente e já em fim de carreira. Fez muito sucesso no passado, só continua jogando porque alguns treinadores o consideram “insubstituível”. Vive brigando pela posição com o PHP. Também faz parte da turma dos mercenários, preocupado com a percentagem (%) do bicho em caso de vitória da equipe.

Flex/ActionScript

Bom jogador, é bonitão (não vive sem um Flash), mas também polêmico. É um dos poucos atletas a ter um hate club, liderado pela Maçãzinha (da turma da Moranguinho).

Anúncios

Números por extenso agora também em Ruby!

Há alguns meses, publiquei no GitHub uma classe PHP chamada GExtenso, que gera o extenso de números e moedas. O feedback foi bastante positivo: o pessoal começou a usar a minha classe como plugin para o CodeIgniter.

Desde o início, sempre tive a intenção de implementar o GExtenso em outras linguagens. Eu vinha estudando Ruby meio de brincadeira, mas para deixar a coisa mais séria resolvi que a primeira tradução seria para ela.

Tal qual a implementação original, em PHP, a versão em Ruby utilizou:

  • métodos estáticos, implementando o padrão de projeto (design pattern) SINGLETON;
  • chamadas recursivas a métodos, minimizando repetições e mantendo o código enxuto; e
  • tratamento de erros por intermédio de exceções.

ATENÇÃO: Este é o meu primeiro trabalho na linguagem Ruby. A lógica foi originalmente desenvolvida em PHP; portanto, o estilo do código pode não agradar programadores Ruby experientes. Estou aberto a críticas construtivas e sugestões, para melhorar meu conhecimento na linguagem.

Exemplos de uso

Para obter o extenso de um número, utilize GExtenso.numero.

require 'GExtenso.rb'

puts GExtenso.numero(832); # oitocentos e trinta e dois
puts GExtenso.numero(832, GExtenso::GENERO_FEM) # oitocentas e trinta e duas

Para obter o extenso de um valor monetário, utilize GExtenso.moeda.

require 'GExtenso.rb'

# IMPORTANTE: veja nota sobre o parâmetro 'valor' na documentação do método!
puts GExtenso.moeda(15402) # cento e cinquenta e quatro reais e dois centavos
puts GExtenso.moeda(47)   # quarenta e sete centavos
puts GExtenso.moeda(357082, 2, ['peseta', 'pesetas', GExtenso::GENERO_FEM], ['cêntimo', 'cêntimos', GExtenso::GENERO_MASC])
# três mil, quinhentas e setenta pesetas e oitenta e dois cêntimos

Download via github: http://github.com/goncin/GExtenso

%d blogueiros gostam disto: