domingo, 30 de setembro de 2007

Primeira oferta de emprego em Ruby on Rails em Portugal

Até ao momento foi a primeira oferta de emprego que tenho conhecimento para a posição Programador Ruby / Ruby on Rails.

A empresa é PrimeIT consulting.

Será esta a primeira oferta de muitas? Só o tempo o dirá...

domingo, 23 de setembro de 2007

Paginar utilizando AJAX

Perguntaram-me recentemente como paginar sem ter a necessidade de "carregar" novamente todo o layout da página. A resposta é bem simples, utilizar AJAX.

O exemplo que vou utilizar é o que está implementado na página http://complethotel.publituris.pt/entidades/alfa?letter=A

Como podem ver existe uma listagem de empresas que está paginada, 15 empresas por página.

Colocar a seguinte função no application_helper.rb:

def pagination_links_remote(paginator)
page_options = {:window_size => 2}
pagination_links_each(paginator, page_options) do |n|
options = {
:url => {:action => 'list', :params => @params.merge({:page => n})},
:update => 'table',
:before => "Element.show('spinner')",
:success => "Element.hide('spinner')"
}
html_options = {:href => url_for(:action => 'list', :params => @params.merge({:page => n}))}
link_to_remote(n.to_s, options, html_options)
end
end

Fonte do Código : http://wiki.rubyonrails.org/rails/pages/How+to+Paginate+With+Ajax


No controlador defino um método "list_alfa":

def list_alfa

@entidades_pages, @entidades= (paginate :entidades, :per_page => 15,
:order => 'entidades.nome ASC',
:conditions=> "entidades.nome LIKE '#{params[:letter]}%'")

render :partial => "list_alfa", :layout => false

end



Este método não faz mais do que uma query à base de dados, recebendo como parâmetro a letra pela qual queremos filtrar. Em seguida faz um render a um partial "list_alfa" e como queremos que o layout não seja carregado novamente para este partial colocamos layout=> false.

O Ruby on Rails tem algo fantástico que se chamam "partials" que não são mais que zonas da nossa página, ou seja uma parte de um todo. Todos os "partials" são identificados facilmente nas Views pois os ficheiros começam com "_", neste caso utilizo um partial chamado "_list_alfa.rhtml":

<% if @entidades_pages.page_count > 1%>
Pagina
<%= pagination_links_remote @entidades_pages %>
<%= image_tag("spinner.gif", :align => 'absmiddle',
:border => 0,
:id => 'spinner',
:style=> "display:none;")%>
<% end%>

( ... )

<% end %>


O "if" vai confirmar a necessidade de paginar, se o "page_count" for menor que 1 significa que existiram 15 ou menos resultados para apresentar não existindo necessidade de paginar. Em seguida é chamado o método "paginate_links_remote", que é responsável por apresentar os números de página com os respectivos links.

Muito simples!!


NOTA: Apenas coloquei o código que me pareceu mais importante. Portanto se tiverem problemas na implementação coloquem as vossas dúvidas.

quinta-feira, 30 de agosto de 2007

Ruby on Rails Cheat Sheet

Numa única folha A4 o essencial de Ruby on Rails!!

Dave Child, com a ajuda de Amy Hoy (Slash7) e David Heinemeier Hansson (criador do Ruby on Rails), conseguiu juntar a descrição da estrutura de directórios, as variáveis pré-definidas, as palavras reservadas, a sintaxe das expressões regulares e os métodos.

Ideal para ter na nossa secretária de trabalho.

quarta-feira, 29 de agosto de 2007

Noobkit Docs - API user friendly

O Noobkit é uma excelente forma de navegar na documentação da API da framework RubyonRails.

A documentação está dividida em três áreas: Gems, Rails e Ruby. As grandes vantagens que encontro são mesmo a organização e acima de tudo a pesquisa.

Existe a possibilidade de fazermos bookmarks e deixar comentários, no entanto para isso é necessário autenticação com OpenID.

Talvez a única parte menos boa é a grande dimensão dos anúncios Google que ocupam o topo de uma página de documentação, mas acaba por ser um pormenor que nada afecta a excelente qualidade deste projecto.

Emprego - Consultor Suporte Aplicacional

No ITJobs surgiu recentemente uma proposta de emprego para Consultor Suporte Aplicacional da empresa Indra - Sistemas, SA. RubyonRails não faz parte da lista de conhecimentos fundamentais, no entanto são valorizados.

RailsForge

Será que um RailsForge é necessário?

Existe um curto questionário no site http://railsforge.com/ acerca da necessidade de uma centralizar a informação e ideias da comunidade Rails.

Os 56 melhores Sites em RubyonRails

Podemos encontrar no softwaredeveloper.com uma lista dos 56 melhores sites desenvolvidos em RubyonRails. Estão organizados por diferentes categorias tais como Business, Travel, Local, Multimedia, Social Networks, Web Developers, Miscellaneous e como não podia deixar de ser fazem uma referência às 4 aplicações desenvolvidas pela empresa 37Signals, responsável pela génese e rápido desenvolvido do RubyonRails.

Alguns já conhecia, como o Shopify e os da 37Signals, mas de facto existem muito boas aplicações web por esse mundo fora, todas desenvolvidas com RubyonRails.

Vale a pena dar uma vista de olhos.