String to lower Ruby
Dica básica e rapidíssima:
Como “transformar” uma string em minúscula (caixa baixa) no Ruby?
simples
"Ruby on Rails".downcase
isso irá retornar ruby on rails
Atualize seu navegador
Muitos usuários nem imaginam que utilizar um navegador desatualizado pode comprometer tanto sua experiência na web.
Nós desenvolvedores fazemos verdadeiros malabarismos para que nossas aplicações sejam compatíveis com diversos browsers e diversas versões.
Vamos colaborar com a campanha: Atualize seu Navegador (pelo amor de Deus huauhauuha)
Rails Summit 2009
Sábado passado ocorreu o Rails for Kids, excelente evento da comunidade Rails. Foram várias palestras on-line durante 12 horas. A grana arrecadada foi doada para uma instituição de caridade, é a comunidade rails ajudando as criancinhas =)
Este post é para divulgar o Rails Summit 2009 (e aproveitar para concorrer a 2 ingressos).
O Rails Summit é uma conferência para a comunidade Ruby e Ruby on Rails. No ano passado foram 21 palestrantes internacionais, muito rails e desenvolvimento ágil. A Locaweb foi quem organizou o evento, graças ao Fábio Akita (talvez o maior evangelizador Ruby on Rails do Brasil).
É muito legal para o Brasil um evento dessa categoria, mostra que temos pessoas interessadas em tecnologia e com grande conhecimento técnico.
Ano passado eu não pude comparecer ao evento (uma das coisas ruins é o fato de ser em dia de semana, quem tem faculdade e trabalho complica), espero que esse ano eu possa estar presente.
CouchDB
Movido para
Requisição HTTP no Ruby on Rails
Se você já teve a necessidade de submeter requisições HTTP a outro servidor, como por exemplo para consultar uma API (como a do Twitter, Flickr, Last FM, etc) e supondo que a linguagem utilizada por você fosse o PHP, com certeza você pelo menos ouviu falar da biblioteca cURL, é óbvio que a aplicação ser desenvolvida em PHP é mero detalhe, já que para quem usa Linux o cURL pode ser utilizado muito facilmente, através do shell.
Agora que eu estou no mundo Ruby on Rails (sim é realmente legal programar utilizando Rails), tive a necessidade de realizar determinadas requisições HTTP, para obter o código de resposta (eu queria verificar se o site estava com algum problema) e encontrei uma alternativa muito boa, utilizando o módulo Net do Ruby.
Exemplificando:
Crie um controller qualquer e coloque o seguinte código:
require 'net/http'
@requisicao = Net::HTTP.get_response(URI.parse('http://www.freelancersbrasil.com/'))
Na view desse controller:
<% unless @requisicao.code == "200" %>
<%= "O codigo retornado foi: " + @requisicao.code %>
<% else %>
<%= @requisicao.body %>
<% end %>
Unless é uma forma condicional do Ruby, que eu achei interessante.
A menos que o código da requisição seja 200 (sucesso), será mostrado na tela o código retornado,
se não, será impresso na tela o conteúdo retornado pela requisição.
Solicite emprego ao Sarney
Procurando emprego?
Solicite ao Sarney através do Sarney Jobs
http://www.sarneyjobs.com.br/
siga as atualizações no twitter
http://twitter.com/sarneyjobs
saiu até no G1
http://g1.globo.com/Noticias/Politica/0,,MUL1264402-5601,00.html
Eu pedi um emprego de Engenheiro de Software huahuahuhauhahuuah atra
Db Migrate Production no Ruby on Rails
Mais uma dica rápida hoje sobre Ruby on Rails, de algo que é realmente muito bom.
Você que se interessa pelo mundo Rails, provavelmente já ouviu falar sobre as migrations. É uma maneira de se trabalhar com um banco de dados de forma organizada, principalmente quando existem vários desenvolvedores no projeto e esse projeto é desenvolvido sobre alguma metodologia ágil, onde se desenvolve incrementalmente. Já que o banco também é desenvolvido “aos poucos”. Se você quer saber mais sobre migrations, visite http://guias.rubyonrails.pro.br/migrations.html.
Quando desenvolvo em PHP por exemplo, e quero atualizar algo no banco de dados em produção, eu conecto na base e faço as alterações, executo determinados scripts, etc. Essa é uma tarefa que pode exigir muito tempo e um certo cuidado, já que estamos falando do ambiente de produção.
No Rails a praticidade fala mais alto, basta configurar o arquivo de banco de dados (database.yml) para o ambiente de produção, no caso estou utilizando o MySQL:
production: adapter: mysql encoding: utf8 database: nome_do_banco username: usuario password: senha host: ip do servidor
e executar a seguinte linha no console:
rake db:migrate RAILS_ENV="production"
Se tudo estiver certo, as migrações que ainda não foram “mandadas” para o servidor de produção, seram executadas, e seu banco de dados em produção estará atualizado.
Will_paginate em português
Outra dica rápida de hoje, para você que está se aventurando no mundo Ruby on Rails (assim como eu), existe um plugin muito bom para realizar paginação de dados, chama-se will_paginate, existe uma infinidade de tutoriais sobre ele na internet, por isso vou explicar aqui diretamente o seu uso.
Vamos supor que temos uma aplicação de um blog em Rails, e que queremos fazer a paginação dos posts (estou considerando que já temos criado o Model, o Controller, uma View e que o plugin já está instalado).
Na action do controller (que eu chamei de list_posts):
def list_posts
@posts = Post.paginate :page => params[:page], :per_page => "10", :conditions => "status = 'A'", : order => "id DESC"
end
O parâmetro page identifica a página atual.
O parâmetro per_page indica o número de registros a serem exibidos por página.
Inventei uma condição status igual a A(ativo), imaginando que na tabela existisse um campo status.
E o order para aparecerem primeiro sem os ultimos posts.
Na view list_posts:
<% @posts.each do |post| %>
<div class="posts">
<%= link_to post.titulo, :controller => "posts", :action => "show_post", :id => post %>
</div>
<% end %>
<%= will_paginate @posts, :previous_label => "« Anterior", :next_label => "Próxima »" %>
Primeiro vem o looping para mostrar o titulo dos posts com um link para uma possivel action show_post, passando como parâmetro o id do post.
Depois o menu criado pelo plugin will_paginate, passando o previous e next label em português.
Muito possivelmente para funcionar esse link será necessário acrescentar a seguinte linha no arquivo de rotas:
map.connect 'posts/:id', :controller => 'posts', :action => 'show_post'
nl2br do PHP no Rails
Uma dica rápida para hoje, você que é programador PHP e está acostumado com a função nl2br, existe uma forma de fazer a mesma coisa no Ruby on Rails.
A função nl2br coloca tags br a cada nova linha de uma string.
alguma_string.gsub!(/\n/, '<br />')
Prepared Statment em Stored Procedure no MySQL
No artigo de hoje, mostro como criar um Prepared Statment dentro de uma Stored Procedure no MySQL.
Outro recurso interessante apresentado é o da concatenação de strings dentro do banco de dados. Teoricamente você pode se perguntar o por que eu resolvi mostrar a concatenação de strings no MySQL nesse mesmo tutorial. O Fato é que certa vez precisei (e preciso constantemente hahaha) criar um esquema de paginação de dados utilizando Stored Procedures. Você que está familiarizado com o MySQL já deve conhecer a cláusula LIMIT, que é fundamental para realizar paginação dos dados. A minha aplicação necessitava passar valores para o banco, dois desses valores eram para indicar a quantidade de registros a serem buscadas (de acordo com a página visualizada), porém me deparei com o seguinte problema (ou talvez bug), o MySQL não aceita concatenação de variáveis ou parâmetros na cláusula LIMIT. A solução que eu encontrei foi concatenar os valores para “setar” a consulta a ser realizada. Com essa string seria criado o prepared statment e seria executado, buscando assim os registros da determinada página.
Talvez em um próximo tutorial eu mostre um exemplo de paginação de dados com PHP e MySQL utilizando stored procedures, por enquanto segue o exemplo da procedure que nomei como sp_prepared.
DELIMITER $$
DROP PROCEDURE IF EXISTS `sp_prepared`$$
CREATE PROCEDURE `sp_prepared` (pInicio TINYINT(3), pQtde TINYINT(3))
BEGIN
-- concatena os valores do limit a consulta
SET @vSql = CONCAT('SELECT * FROM tabela LIMIT ', pInicio, ',' , pQtde);
-- cria o prepared statment
PREPARE stmt FROM @vSql;
-- executa o prepared statment
EXECUTE stmt;
-- desaloca a memoria
DEALLOCATE PREPARE stmt;
END$$
DELIMITER ;
Para executá-la:
-- buscando 10 registros a partir do primeiro CALL `nome_banco`.`sp_prepared`(0, 10);


