Meus brindes chegaram!
dezembro 16, 2007 às 1:13 am | Publicado em Diversos, Ruby | 1 ComentárioDomingo qual não foi a minha surpresa ao ver que fui sorteado na pesquisa dos Favoritos da Comunidade Linux Brasileira em 2007 e acabei ganhando o livro Build Your Own Ruby on Rails Web Applications o mesmo livro que tempos atrás ficou algum tempo gratuito para download. Eu estava castigando os olhos lendo a versão digital, parece ser um bom livro e assim que possível farei pequena resenha sobre o mesmo, e além do livro ganhei também um lindo button da fundação python brasil muito bonito que gostei e vou utilizar sempre que possível.
Muito obrigado ao Augusto Campos, a Livraria Tempo Real e a todos que além de promover esta pesquisa sensacional, nos proporcionam estes maravilhosos brindes.
Manipulando Arquivos Dbase (DBF) via Ruby.
novembro 5, 2007 às 9:46 pm | Publicado em Banco de Dados, Dbase, Ruby | 2 ComentáriosTudo começou com esta dúvida no forum.rubyonbr.org do colega Silfar. Lembrei que já tinha feito uma migração de dados simples utilizando o Gem DBF somente não conseguia recordar como tinha feito, por isto decidi fazer este simples tutorial que poderá servir para uma necessidade futura ou outra pessoa que atravesse o mesmo problema.
Os bancos de dados Dbase eram utilizados por programadores Clipper, não é difícil encontrar ainda hoje muitas empresas utilizando os velhos e bons programas feitos em Clipper. Como nenhuma empresa gosta de perder informações, basta seguirmos alguns passos para que possamos manipular os respectivos dados e migrar os mesmo para um Banco qualquer.
Para isto basta primeiramente instalar o gem:
gem install dbf
Instalado o dbf vamos abrir um arquivos de teste, aqui eu utilizei um antiga agenda em clipper:
require 'dbf' tabela = DBF::Table.new('AGENDA.DBF') #manipulando o primeiro registro: puts tabela.record(1).atributes["NOME"] Fabiano Rech =>nil #utilizando um loop tabela.records.each do |t| puts t.attributes["NOME"] end Fabiano Rech Joao Da Silva Jose Da silva => nil
Montando o migration para criar a base de dados em outro banco:
puts tabela.schema
E por ai vai, existem outros métodos, para visualizar todos basta digitar:
puts tabela.methods
Pronto, rápido e facíl, espero ter ajudado 🙂
Shoes, Aplicações estilo Web no Desktop
outubro 9, 2007 às 11:52 pm | Publicado em Desktop, Ruby | Deixe um comentárioShoes é um pequeno toolkit gráfico, é cross-plataform, ou seja, funciona tanto em Linux, Windows e Mac OS X, que promete proporcionar um desenvolvimento estilo web para desktop.
Testei alguns exemplos contidos no pacote e outros encontrados na internet e realmente é muito fácil, já que a sintaxe é estilo Ruby (alias não confirmei, mas o shoes é feito a partir do ruby)
Veja um exemplo que encontramos na primeira página
exemplo
Shoes.app { button("Press Me") { alert("You pressed me") } }
O único problema é que a documentação é bem escassa, ficando limitada quase que somente aos exemplos do autor.
Veja que interessante praticamente um formulário que pode ser executado no estilo desktop:
name, phone, address = nil Shoes.app :width => 320, :height => 350 do background "static/menu-gray.png" background "static/menu-top.png", :height => 50 background "static/menu-left.png", :top => 50, :width => 55 background "static/menu-right.png", :right => 0, :top => 50, :width => 55 image "static/menu-corner1.png", :top => 0, :left => 0 image "static/menu-corner2.png", :right => 0, :top => 0 stack :margin => 40 do stack :margin => 10 do text "Name" name = list_box :items => ["Yes, please!", "NO. No thankyou."] end stack :margin => 10 do text "Address" address = edit_line end stack :margin => 10 do text "Phone" phone = edit_line end stack :margin => 10 do button "Save" do Shoes.p [name.text, address.text, phone.text] end end end end
Veja o resultado
Para instalar shoes basta fazer o download da ultima Versão e logo após :
# tar xzvf shoes-0.r177-linux.tar.gz
# cd shoes
# ./shoes samples/timer.rb
Mais informações em: http://code.whytheluckystiff.net/shoes
Criando arquivos retorno com Ruby
setembro 22, 2007 às 12:24 pm | Publicado em Ruby | Deixe um comentárioÉ difícil encontrar um sistema que nunca precisou gerar ou ler um arquivo texto, muitos servem para comunicação entre banco e sistemas financeiros, aqueles velhos e complexos layouts com intermináveis tamanhos e formatos de string.
E eu não poderia fugir a regra, e tive que criar algo assim em um sistema ruby, (a como adoro o ruby), e não foi surpresa nenhuma saber que o ruby tinha isto pronto, bastava somente escrever algumas linhas de códigos e usar os métodos certos com a classe string e pum pronto.
Para fazer isto basta somente invocar o método ljust justificar com elementos a esquerda (left) e rjust para justificar com elementos a direita (right).
Ficaria algo mais ou menos assim com um layout pré-definido:
Campo Tamanho Mascara Exemplo Observação Cnpj/cpf 14 99999999999999 012345678901 Preencher com 0 (zeros) Nome 50 AAAAAA Fabiano Rech Preencher com espaços Telefone 20 999999999999 123456789 Preencher com espaços
Dado o modelo anterior, caso tivéssemos os dados a seguir:
Cpnj/cpf: 123456
Nome: Fabiano Rech
telefone: 654321
Teríamos a seguinte linha:
“12345600000000fabiano rech 654321 ”
* O wordpress não considera os espaços em branco, mas posso garantir que eles existem 🙂
Para gerar isto, foi relativamente fácil, vejam como usei o método ljust:
irb(main):001:0> nome="fabiano rech" => "fabiano rech" irb(main):002:0> cpf="123456" => "123456" irb(main):003:0> telefone="654321" => "654321" irb(main):004:0> linha=cpf.ljust(14, '0') +nome.ljust(50) +telefone.ljust(20) => "12345600000000fabiano rech 654321 " irb(main):005:0>
Veja estes passos, cpf.ljust(14, “0”) aqui indico que a string cpf deve ser justificada a esquerda no tamanho 14 com o que faltar com 0 (zeros) e nome.just(50) aqui é quase o mesmo que nome.ljust(50, ‘’) so que de uma forma mais clean, ele justificara a esquerda com espaços em branco.
Caso seja necessário justificar a direita basta usar o rjust que os parâmetros são os mesmos.
Bom é isto, acredito que possam ou devam existir formas mais inteligentes ou fáceis de resolver isto, mas para min funcionou perfeitamente.
Blog no WordPress.com.
Entries e comentários feeds.