Meus brindes chegaram!

dezembro 16, 2007 às 1:13 am | Publicado em Diversos, Ruby | 1 Comentário

Domingo 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ários

database.gif

Tudo 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ário

Shoes é 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

null

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.