Sorteio: 5 convites para o Google Wave


Olá pessoal, post rápido!!
Tenho 5 convites do google wave para sortear para os visitantes do blog!
Peço desculpa pela falta de posts, mais assim que as provas passarem os posts voltam!

Seguinte: Cada comentário será numerado em ordem crescente! Para manter a linha ruby farei um pequeno aplicativo para gerar 5 números aleatórios.

A lista dos ganhadores será publicada no dia 05 de dezembro!

Deixe o comentário com seu nome, email e cidade!


Abraços a todos! Leia Mais!

Parâmetros para formatar data e hora

Há várias formas de mostrarmos a hora e a data em Ruby on Rails, para arrumarmos do nosso jeito devemos utilizar alguns parâmetros, mas são muitos, então é difícil de memorizá-los, por isso estou listando os parâmetros aqui e a forma de utilizá-los também:


%a The abbreviated weekday name (“Sun'’)
%A The full weekday name (“Sunday'’)
%b The abbreviated month name (“Jan'’)
%B The full month name (“January'’)
%c The preferred local date and time representation
%d Day of the month (01..31)
%H Hour of the day, 24-hour clock (00..23)
%I Hour of the day, 12-hour clock (01..12)
%j Day of the year (001..366)
%m Month of the year (01..12)
%M Minute of the hour (00..59)
%p Meridian indicator (“AM'’ or “PM'’)
%S Second of the minute (00..60)
%U Week number of the current year, starting with the first Sunday as the first day of the first week (00..53)
%W Week number of the current year, starting with the first Monday as the first day of the first week (00..53)
%w Day of the week (Sunday is 0, 0..6)
%x Preferred representation for the date alone, no time
%X Preferred representation for the time alone, no date
%y Year without a century (00..99)
%Y Year with century
%Z Time zone name
%% Literal “%'’ character

Exemplo de utilização:

<%=h Date.today.strftime("%A, %d de %B de %Y") %>
A data será mostrada assim:

Sexta-Feira, 02 de Outubro de 2009


Espero estar ajudando a todos.

Att,

Rafael Barcellos Leia Mais!

ERROR: Error installing rails: invalid gem format for /var/lib/gems/1.8/cache/rake-0.8.7.gem

Voltando a cair dentro na programação, consequentemente voltei a me deparar com erros.

Desta vez ao tentar instalar o rails ( usando $ sudo gem install rails --include-dependecies ) em uma outra máquina o erro que foi acusado foi o seguinte.

ERROR: Error installing rails: invalid gem format for /var/lib/gems/1.8/cache/rake-0.8.7.gem
Para solucionar o problema remova o arquivo rake-0.8.7.gem

$ sudo rm /var/lib/gems/1.8/cache/rake-0.8.7.gem

Depois de remove-lo, tente instalar o rails novamente, e deve funcionar.

Gostaria de lembrar que esse erro tambem pode acontecer com outros arquivos, que não sejam o rake-0.8.7.gem, como por exemplo os arquivos: actionpack-2.1.0.gem ; activerecord-2.0.2.gem ...

Espero ter ajudado! Leia Mais!

Ruby on Rails: Modificando tela de acesso negado Acl9

Post rápido hoje. Quando implementamos o acl9 para gerenciar 'roles' no sistema nos deparamos com a tela abaixo quando usamos um usuário sem permissão para executar uma ação dentro do sistema.



Para resolver isso é muito simples.
Basta adicionar o codigo abaixo no /controllers/application_controler.rb:

rescue_from 'Acl9::AccessDenied', :with => :negar_acesso

def negar_acesso
if current_user
render :template => 'acesso_negado'
else
flash[:notice] = 'Acesso negado. Você precisa estar logado.'
redirect_to login_path
end
end

Agora basta criar o arquivo acesso_negado.html.erb na raiz das views (/view/acesso_negado.html.erb) e adicionar uma mensagem de erro personalizada.

Até! Leia Mais!

Como instalar JRE no Linux


Olá, esse vai ser o meu primeiro post aqui no Blog, mas com certeza será o primeiro de muitos outros.

Essa dúvida pode parecer banal para muitos, mas sei também que para muitos outros, principalmente usuários que migraram para Linux recentemente, é muito útil.

A instalação do java serve para realizar a execução de applets, como por exemplo o Teclado Virtual do Banco do Brasil, que é utilizado para acessar sua conta no Internet Bank.

Siga os passos abaixo para realizar a instalação do JRE:

Abra o terminal e como usuário root e rode os seguintes comandos:

#apt-get install sun-java6-jre
Depois de baixados os pacotes do jre execute:

#apt-get install sun-java6-plugin
#apt-get -f install
Depois de rodar os comandos acima, reinicie o Firefox e o Java JRE estará funcionando. Leia Mais!

Github.com, o que é? como usar?


Olá pessoal, estava sem tempo para novos posts nas duas semanas que passaram! Obrigado pelas visitas que o blog tem tido! Vamos ao que interessa:

Primeiramente, você sabe o que é git? Se não sabe aconselho a ler o tutorial sobre git do Fabio Akita.

Github.com, o que é?

Github.com é um website feito em RoR que hospeda repositórios git. No plano gratuito seu projeto será publico, e no plano pago existe a possibilidade do projeto ficar no modo private. Ao colocar seu projeto no github, todos poderão olhar seu codigo, colaborar para a melhoria do mesmo, formando uma rede "Social Coding", de modo grosseiro um "Orkut" dos webdevelopers.
O projeto do framework Rails está hospedado lá, e qualquer um pode ver.

Como usar?

Vamos listar passos para conseguirmos hospedar um projeto git contendo um arquivo texto no Github.

  • Criar um conta no Github.com
  • Iniciar um novo projeto no Github.com
  • Adicionar permissões com public key ssh
  • Criar e configurar o projeto localmente usando git
  • Efetuar o primeiro commit e em seguida o push para o Github.com
Iniciar um novo projeto

Feito o primeiro login, vá no link Create a new repository.
Preencha as informações referentes ao seu novo projeto.


Adiocionar chave public no Github

Para este passo precisamos gerar primeiramente uma chave public em seu linux.
Execute o comando no terminal:

$ ssh-keygen -t rsa

Aperte enter em todas as perguntas sem especificar nada.
Após isto copie o conteúdo do arquivo ~/.ssh/id_pub.rsa

$ cat ~/.ssh/id_pub.rsa


Vá no link Account.
Clique no
add another public key e cole o conteúdo do id_pub.rsa copiado no passo acima no espaço.

Para testar execute no terminal o seguinte comando:
$ ssh git@github.com

Se der certo você vai ver uma menssagem de boas vindas.

Criar e configurar o projeto local

Crie uma pasta
$ mkdir projeto


Crie um arquivo teste dentro da pasta
$ cd projeto
$ echo Aprendendo a usar Github.com > README


Inicie um projeto git e adicione o arquivo
$ git init
$ git add README

Efetuar o primeiro commit e push

Primeiro commit
$ git commit -a -m "Primeiro commit"


Informando o endereço do seu repositório no GitHub.com
$ git remote add origin git@github.com:seu-usuario-no-Github/nome-do-projeto-criado.git


Exemplo:
$ git remote add origin git@github.com:jcmaciel/Sysobras.git


Primeiro Push
$ git push origin master


Até! Leia Mais!

Ruby on Rails: Implementando AutoFill com Jquery




Olá pessoal, hoje vou compartilhar um método que pode ser bobo para usuários avançados mais acho interessante por quase não existir material na internet.
Precisei desenvolver esse script para implementar uma função autofill em um sistema que desenvolvo para UENF (Universidade Estadual Norte Fluminense).

Todo mundo já usou sites com preenchimento automatico de campos.
Exemplo clássico deste recurso é quando se coloca o CEP em um formulário de endereço, e os campos contendo rua, bairro, cidade, são automaticamente preenchidos (AutoFill).

Neste exemplo uso a biblioteca JavaScript Jquery.

Vamos lá:

Criando uma aplicação teste em Ruby on Rails

Começamos criando uma aplicação "teste" para implementar o autofill.

$ rails autofill -d postgresql


* perceba que eu uso o postgresql como banco de dados, use o banco que esteja acostumado

Feito isso vamos geral um scaffold rapidamente.

$ cd autofill
$ script/generate scaffold Cadastro nome:string telefone:string email:string


Criar banco de dados e rodar a migração
Abra o arquivo config/database.yml e altere os dados de login do seu banco de dados.
Depois disso execute os comandos:

$ rake db:create
$ rake db:migrate


Com essa parte pronta podemos começar a implementar.

Abrindo a view new.html.erb (apps/views/cadastros/new.html.erb)
Insira o trecho abaixo antes da tag <% form_for(@cadastro) do |f| %>

Trecho:
<button id="autofill" name="autofill">Autofill?</button>
<div id="pegardados_autofill" style="display: none;">

<br>ID: <input id="id_autofill" name="id_autofill"> </input>
<button id="load_autofill" name="load_autofill">carregar</button>
</div>
<div id="msg_autofill" style="display: none;">
</div>

Screenshot:


Ajustando o controller (apps/controllers/cadastros_controller.rb)
Como este é apenas um exemplo e normalmente em exemplos temos que simular uma fonte de dados para fazer o autofill, vamos pegar dados do próprio cadastro, integrando com JSON.
Muito simples.

No controller ative o formato JSON no método show:

def show
@cadastro = Cadastro.find(params[:id])

respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @cadastro }
format.json { render :json => @cadastro } // ADICIONE ESTA LINHA
end
end


Baixando Jquery e criando o arquivo autofill.js

Se você não tem jquery em sua aplicação faça isto:
Baixe o arquivo jquery-1.3.2.js e coloque na pasta da sua aplicação rails
$ mv jquery-1.3.2.js /pathdasuaaplicação/public/javascripts/jquery-1.3.2.js


Crie dentro desta mesma pasta (../public/javascripts/) um arquivo com nome autofill.js e coloque o seguinte conteudo:

$(function(){ // FUNÇÃO PARA EXIBIR A DIV
$("#autofill")
.click(function(){
$("#pegardados_autofill").show(1300);

});
});

$(function(){
$("#load_autofill")
.click(function(){
var id = $('#id_autofill').val();
if(id == ""){
alert("Campo em branco, coloque o id.")
}
$.getJSON("http://localhost:3000/cadastros/" + id + ".json", function(data){ //pegando dados via JSON

$('#cadastro_nome').val(data.cadastro.nome);// completando os campos
$('#cadastro_telefone').val(data.cadastro.local);
$('#cadastro_email').val(data.cadastro.preco);

$("#msg_autofill").html("Dados carregados com sucesso..");

$("#msg_autofill").show(1100);
$("#msg_autofill").fadeOut(1800);

});
});
})


Finalizando
Seguindo todos esses passos, resta somente colocar a biblioteca no arquivo new.html.erb e o autofill.js

Abra new.html.erb e adicione antes da tag <h1>....</h1>

<%= javascript_include_tag 'jquery' %>
<%= javascript_include_tag 'autofill' %>


Salve e rode o servidor

$ script/server


Testando

Como não temos nenhum cadastro, consequentemente não temos da onde efetuar o autofill.
Efetue um cadastro então:
http://localhost:3000/cadastros/new

Não clique no botão AutoFill? por enquanto, apenas preencha os campos com nome telefone e email.
Com o cadastro efetuado já temos o primeiro ID para testar o auto fill.

Retorne ao endereço http://localhost:3000/cadastros/new e agora sim clique no botão Autofill?
Uma div com efeito deverá surgir e no campos ID: coloque o id 1 , clique em carregar e veja o resultado!



Com esse exemplo acho que da para adaptar em qualquer situação.
depois posto a função usando XML como padrão de dados.

Até! Leia Mais!