FeaturesPluginsDocs & SupportCommunityPartners

Colocando Flickr on Rails

Este tutorial descreve como criar uma aplicação Ruby on Rails que pesquisa o banco de dados Flickr.

Observação: este tutorial requer conexão direta com a Internet e não funciona se você estiver trabalhando por trás de um proxy.

Conteúdo

 O conteúdo desta página se aplica ao IDE NetBeans 6.0
Requisitos do tutorial
Obtendo uma chave de API do Flickr
Instalando a biblioteca do Flickr
Criando o projeto Ruby on Rails
Adicionando estilo ao projeto
Criando um controlador
Definindo o método de pesquisa
Executando a aplicação
Aprimorando a experiência do usuário

Requisitos do tutorial

Este tutorial requer a seguinte tecnologia:

Obtendo uma chave de API do Flickr

Você deve ter uma chave de API par usar a API do Flickr.
  1. Em seu navegador da Web, vá para http://www.flickr.com/services/api/misc.api_keys.html.
  2. Clique em Aplicar para a sua chave online agora.
  3. Siga as etapas para obter a chave do Flickr.
  4. Copie a chave da API gerada pelo Flickr e salve-a em um arquivo de texto ou em outro local conveniente.

Instalando a biblioteca do Flickr

  1. No menu Ferramentas, escolha Gems Ruby.
  2. Na caixa de diálogo Gems Ruby, clique na aba Novos Gems.
  3. Digite flickr no campo Pesquisa e pressione Enter.
  4. Selecione flickr e, em seguida, clique em Instalar. Clique em OK na caixa de diálogo Configurações de instalação do Gem.
  5. Garanta a obtenção de uma mensagem de êxito e feche as caixas de diálogo.

Criando o projeto Ruby on Rails

  1. Escolha Arquivo > Novo projeto.
  2. Selecione Ruby no campo Categorias e Aplicação Ruby on Rails no campo Projetos e clique em Avançar.
  3. Digite flickr no campo Nome do projeto e clique em Terminar.

    A biblioteca Flickr espera que você adicione a sua chave da API do Flickr diretamente a seu script. Você poderia fazer isso, entretanto, a abordagem descrita nas etapas seguintes permite que você use a biblioteca Flickr sem tocá-la.
  4. Na janela Projetos, expanda o nó Configuração, em seguida, abra environment.rb.
  5. Adicione o código seguinte na parte inferior do arquivo environment.rb. Garanta a indicação da sua chave de API do Flicker na variável MY_KEY. Você precisa da chave para acessar as APIs do Flickr.

    Amostra de código 1: adicionando a sua chave da API do Flickr
    require 'rubygems'
    require 'flickr'
    MY_KEY='Enter your Flicker API Key'
    class Flickr
      alias old_initialize initialize
      def initialize(api_key=MY_KEY, email=nil, password=nil)
        puts "new_initialize " + MY_KEY
        old_initialize(api_key, email, password)
        @host="http://api.flickr.com"
        @activity_file='flickr_activity_cache.xml'
      end
    end

  6. No menu principal do , escolha Arquivo > Salvar todos.

Adicionando estilo ao projeto

  1. Na janela Projeto, expanda o nó Visualizações, clique com o botão direito do mouse no nó layouts, e escolha Novo -> arquivo RHTML. Chame o arquivo de application e clique em Terminar.
  2. Substitua o código existente em application.rhtml pelo código seguinte:

    Amostra de código 2: código para application.rhtml
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html>
        <head>
        <title>Flickr</title>
          <%= javascript_include_tag :defaults %>
          <%= stylesheet_link_tag 'flickr' %>
        </head>
    <body>
          <%= yield %>
    </body>
    </html>

  3. Expanda o nó Público, clique com o botão direito do mouse nas folhas de estilo e escolha Novo > Outro.
  4. Na caixa de diálogo Novo arquivo, defina a Categoria como Outro e o Tipo de arquivo como Folha de estilo em cascata. Clique em Próximo.
  5. Chame o arquivo de flickr e clique em Terminar.

    O arquivo flickr.css se abre na área de edição.
  6. Adicione os seguintes estilos a flickr.css:

    Amostra de código 3: código de estilo
    body {
        background-color: #888;
        font-family: Lucida Grande;
        font-size: 11px;
        margin: 25px;
    }

    form { margin: 0; margin-bottom: 10px; background-color: rgb(222,231,236); border: 5px solid #333; padding: 25px; }
    fieldset { border: none; } #spinner {
    float: right;
    margin: 10px;
    }

    #photos img { border: 1px solid #000; width: 75px; height: 75px; margin: 5px; }

Criando um controlador

  1. Clique com o botão direito do mouse no nó Controladores e escolha Gerar
  2. Na caixa de diálogo Gerador do Rails, digite flickr no campo Nome e index no campo Visualizações e, em seguida, clique em OK.

    Esta ação cria o arquivo flickr_controller.rb e abre o arquivo na área de edição.
  3. Expanda Visualizações > flickr e abra index.rhtml.
  4. Substitua o código existente em index.rhtml pelo código seguinte:

    Amostra de código 4: código para index.rhtml
    <% form_remote_tag :url => {:action => 'search'}, :update => 'photos' do %>
        <fieldset>
            <label for="tags">Tags:</label>
    
            <%= text_field_tag 'tags' %>
            <%= submit_tag 'Find' %>
        </fieldset>
    <div id="photos"></div> <% end %>

Definindo o método de pesquisa

  1. Abra flickr_controller.rb.
  2. Edite o código, excluindo o método index e substituindo-o pelo método de pesquisa mostrado em negrito:

    Amostra de código 5: código FlickrController Classe
    class FlickrController < ApplicationController
      def search
        flickr = Flickr.new
    
        if params[:tags].empty?
          render :text => '<h2>Please enter a search string&lt/h2>'
        else
          begin
            photos = flickr.photos(:tags => params[:tags], :per_page => '24')
            render :partial => 'photo', :collection => photos
          rescue NoMethodError
            render :text => '<h2>No matching photos found</h2>'
          end
        end
      end
    end

  3. No nó Visualizações, clique com o botão direito do mouse no nó flickr e escolha Novo -> arquivo RHTML. Chame o arquivo de _photo e clique em Terminar.

  4. Substitua o conteúdo do arquivo, para que ele inclua somente a linha seguinte:

    <img class='photo' src="<%= photo.sizes[0]['source'] %>">
                

Executando a aplicação

Aqui você configura o ambiente de forma que a execução do projeto inicie a aplicação.
  1. No nó Público, exclua index.html.
  2. No nó Configuração, abra routes.rb. Encontre a linha:

    # map.connect '', :controller => "welcome"
                
  3. Edite a linha removendo o sinal de comentário (#) e alterando welcome para flickr.
  4. Clique no botão Executar projeto principal na barra de ferramentas para iniciar o servidor WEBrick e inicie o navegador, como mostrado na figura seguinte.

    Figura 1: Aplicação flickr

    Figura 1: Aplicação Flickr
  5. Indique uma string de pesquisa, tal como NetBeans e clique em Localizar. Espere alguns segundos para as imagens serem carregadas.

    Figura 2: Carregando imagens

    Figura 2: Carregando uma imagem

Aprimorando a experiência do usuário

Quando você clica no botão Localizar, não há indicação de que algo esteja ocorrendo nos bastidores. Aqui você adiciona um simples gif animado para ajudar a lidar com esse problema e altera o efeito das imagens conforme elas são carregadas.
  1. Salve esse gif animado a partir do seu navegador para um arquivo em sua área de trabalho. Em seguida, arraste o arquivo sob Público > nó imagens na janela Projeto no NetBeans IDE.
  2. Abra Visualizações > flickr > index.rhtml. Exclua o código existente e subsitua-o pelo código mostrado na amostra seguinte:

    Amostra de código 6: código para index.rhtml
    <% form_remote_tag :url => {:action => 'search'}, :update => 'photos',
        :complete => visual_effect(:blind_down, 'photos'),
        :before   => %(Element.show('spinner')),
        :success  => %(Element.hide('spinner')) do %>
    
        <%= image_tag 'spinner.gif', :id => 'spinner', :style => 'display: none' %>
        <fieldset>
            <label for="tags">Tags:</label>
            <%= text_field_tag 'tags' %>
    
            <%= submit_tag 'Find' %>
        </fieldset>
    
        <div id="photos" style="display: none"></div>
    
    <% end %>

  3. No menu principal do , escolha Arquivo > Salvar todos. Atualize o navegador e experimente outra string de pesquisa, tal como JRuby.

    Figura 3: Adicionando animação

    Figura 3: Adicionando animação

    Agora você vê uma animação simples que permite que saiba que o servidor está trabalhando em sua solicitação. Quando as imagens aparecem, elas são retiradas como um conjunto de vendas.

Próximas etapas



>> Mais documentação do NetBeans Ruby


Bookmark this page

del.icio.us furl simpy slashdot technorati digg
Companion
Projects:
MySQL Database Server   Open JDK: an Open SourceJDK   GlassFish Community: an Open Source Application Server    Mobile & Embedded Community    Open Solaris   java.net - The Source for Java Technology Collaboration   Virtual Box - full virtualizer  Open ESB - The Open Enterprise Service Bus Powered by