Posts Tagged ‘usando’

Ruby on Rails usando strip_tags nos controllers, models e libs

Postado em 15 jun 2009
Categoria(s) Ruby on Rails

O Ruby on Rails possui o métogo strip_tags para remover tags html. Esse método está apenas disponível na camada de view, uma vez que faz parte ActionView::Helpers::SanitizeHelper.

Eu não concordo com essa implementação do Rails, acho que deveria ser disponível também na camada de controller e model, onde são os lugares que esse método é mais útil.

Para implementar o strip_tags nos controllers, models e libs, nós podemos adicionar esse método na classe String, desta forma estará disponível em qualquer lugar.

Abra o arquivo config/initializers/new_rails_defaults.rb:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# Be sure to restart your server when you modify this file.
 
# These settings change the behavior of Rails 2 apps and will be defaults
# for Rails 3. You can remove this initializer when Rails 3 is released.
 
if defined?(ActiveRecord)
  # Include Active Record class name as root for JSON serialized output.
  ActiveRecord::Base.include_root_in_json = true
 
  # Store the full class name (including module namespace) in STI type column.
  ActiveRecord::Base.store_full_sti_class = true
end
 
# Use ISO 8601 format for JSON serialized times and dates.
ActiveSupport.use_standard_json_time_format = true
 
# Don't escape HTML entities in JSON, leave that for the #json_escape helper.
# if you're including raw json in an HTML page.
ActiveSupport.escape_html_entities_in_json = false

Adicione no final do arquivo as linhas:

1
2
3
4
5
class String
  def strip_tags
    ActionController::Base.helpers.strip_tags(self)
  end
end

As linhas acima criam o método strip_tags na classe String.

Ficando o arquivo completo assim:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# Be sure to restart your server when you modify this file.
 
# These settings change the behavior of Rails 2 apps and will be defaults
# for Rails 3. You can remove this initializer when Rails 3 is released.
 
if defined?(ActiveRecord)
  # Include Active Record class name as root for JSON serialized output.
  ActiveRecord::Base.include_root_in_json = true
 
  # Store the full class name (including module namespace) in STI type column.
  ActiveRecord::Base.store_full_sti_class = true
end
 
# Use ISO 8601 format for JSON serialized times and dates.
ActiveSupport.use_standard_json_time_format = true
 
# Don't escape HTML entities in JSON, leave that for the #json_escape helper.
# if you're including raw json in an HTML page.
ActiveSupport.escape_html_entities_in_json = false
 
class String
  def strip_tags
    ActionController::Base.helpers.strip_tags(self)
  end
end

Agora reinicie o seu servidor web para pegar essas novas configurações na inicialização da aplicação.

Agora quando você precisar do strip_tags pode usar assim, exemplos:

params['title'] = params['title'].strip_tags
 
ou
 
>> '<b>meu texto</b>'.strip_tags
=> "meu texto"

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark

Usando o Vim para Programar em Ruby on Rails

Postado em 21 abr 2009
Categoria(s) Ruby on Rails

Como todas as pessoas que procuram desenvolver com qualidade e agilidade, eu tive a minha saga até encontrar uma boa ferramenta de edição de código.

Eu só trabalho usando Linux, com certeza ele é o sistema operacional mais produtivo para trabalhar com desenvolvimento em tecnologias livres, para programar em PHP, Ruby on Rails, Java, Python e outras é uma maravilha. A quantidade de softwares e coisas legais é imensa.

Nessa minha saga e evolução no mundo dos editores/IDE já usei Dreamweaver, Gedit, Geany, Eclipse, Aptana, Komodo, Bluefish e por último o NetBeans. Sempre tinha alguns detalhes neles que acabava me irritando, algo que eles não conseguiam fazer. Alguns tinham tantos recursos que acabavam sendo pesados demais. Por último eu estava usando o NetBeans, ele tem umas sacadas legais e algumas coisas divertidas, mas é absurdamente pesado, outro detalhe é que algumas IDE’s tem a mania descontrolada de querer fazer tudo através de interface gráfica, trilhões de janelas para fazer coisas super simples, o terminal é um lance necessário em uma IDE, muitas coisas podem ser feitas em secundos através de um shell. Não a nada de errado em usar o shell, graças a ele que a produtividade aumenta muito, quem acha que interface gráfica aumenta a produtividade está enganado, as vezes ela só enrola mais as coisas.

Através de toda essa saga acima eu acabei chegando no VIM, usando especificamente o Gvim no Gnome para desenvolver em Ruby on Rails. Até o presente momento só são ótimas opiniões formadas sobre ele.

Nesse post vou mostrar como ganhar mais produtividade usando o Gvim.

Todos os passos abaixo foram feitos no Ubuntu 8.04, por que no Ubuntu? Porque ele é simples, tem uma porção de distribuições Linux por ae que complicam demais as coisas, o Ubuntu é sucesso porque é simples de usar. Existe uma grande chance de coisas simples fazerem mais sucesso que as coisas complicadas. :-)

Instalação do Gvim

1
sudo apt-get install vim vim-gnome vim-addon-manager vim-common vim-full vim-gtk vim-gui-common vim-rails vim-ruby vim-runtime vim-tiny exuberant-ctags ncurses-term

Instalação do Git

1
sudo apt-get install git

Instalação da gem para busca de arquivos

Essa gem está no github, desta forma é necessário adicionar o seu repositório: gem sources -a http://gems.github.com

1
sudo gem install jamis-fuzzy_file_finder

Instalação do pacote de configurações para o vim

Agora vamos instalar um pacote de configurações prontas para o vim, esse pacote foi criado pelo Fabio Akita, esse pacote já tem uma série de plugins, temas e snippets.

1
git clone git://github.com/akitaonrails/vimfiles.git ~/.vim

Você precisa criar o arquivo ~/.vimrc e adicionar o conteúdo abaixo:

1
2
3
4
5
6
7
source ~/.vim/vimrc
 
colorscheme vibrantink
set nu
set sts=2
set sw=2
let g:fuzzy_ignore = "gems/*"

Essas configurações irão fazer o número de linhas aparecer, ignorar os diretórios de gems e outros ajustes.

Os snippets estão em um repositório separado, desta forma precisamos obter esses arquivos, faça os passos abaixo:

1
2
3
cd ~/.vim
git submodule init
git submodule update

Existe um outro ajuste que pode ser feito, mas esse é opcional, da forma como está agora sempre irá aparecer um $ no final de cada linha, para marcar o fim, particularmente eu não gosto disso. Se você quiser é possível retirar essa marcação, edite o arquivo ~/.vim/vimrc procure pelas linhas:

1
2
"display tabs and trailing spaces
set list

E deixe a configuração set list comentada, desta forma:

1
2
"display tabs and trailing spaces
"set list

Feito isso nós já temos uma nova gama de funcionalidades adicionadas ao vim, mas é possível melhorar mais ainda, vamos agora instalar a fonte Monaco usada no TextMate. Essa fonte deixa o código com um visual legal.

Instalação da fonte Monaco

1
2
3
4
5
6
7
8
cd /usr/share/fonts/truetype
sudo mkdir myfonts
cd myfonts
sudo wget http://www.gringod.com/wp-upload/software/Fonts/Monaco_Linux.ttf
sudo chown root.root *.ttf
sudo mkfontdir
cd ..
fc-cache

Agora se você digitar no terminal:

1
gvim

Vai ver o gvim com a fonte Monaco e o tema desert.

Gvim

Com o gvim aberto vamos criar um projeto em Ruby on Rails, e ver as funcionalidades novas que temos no vim. Graças ao plugin rails.vim (http://rails.vim.tpope.net/) foram adicionadas uma série de features.

Criando um projeto Ruby on Rails

Digite no gvim:

1
tecla esc + :Rails autocomplete

Onde autocomplete é o nome da minha aplicação Ruby on Rails nesse exemplo.

A opção irá criar a aplicação com suporte ao banco de dados SQLite, se você quiser suporte ao outro banco de dados digite:

1
2
3
4
tecla esc + :Rails autocomplete -d mysql
ou
tecla esc + :Rails autocomplete -d postgresql
...

Esse comando irá criar uma aplicação Ruby on Rails nova.

Nova Aplicação

Pressione a tecla enter como informado na mensagem.

O plugin rails.vim é bem esperto, ele já vai abrir para você o database.yml para você configurar o banco de dados:

Database

Pressione a tecla i ou insert para editar os dados, faça as alterações necessárias e salve digitando:

1
tecla esc + :w

Uma breve descrição sobre as operações básicas do vim:

  • tecla esc + :w serve para salvar sua alteração (write)
  • tecla esc + :q serve para fechar o arquivo (quit)
  • tecla esc + :x serve para salvar e fechar o arquivo

Criando o banco de dados

1
tecla esc + :Rake db:create

DB Create

Pressione a tecla enter como informado na mensagem.

Criado um scaffold

1
tecla esc + :Rgenerate scaffold car name:string description:text color:string

Será gerado o scaffold para o model car, logo em seguida será exibido o cars_controller.rb:

Cars Controller

Rodando as migrações

1
tecla esc + :Rake db:migrate

Migrate

Visualizando a aplicação

Caso você queira visualizar aplicação nesse momento, você pode inicializar o servidor e ver um preview da aplicação rodando no navegador:

Inicializando o servidor

1
tecla esc + :Rserver

Servidor

Vendo preview no navegador

1
tecla esc + :Rpreview

Preview

Nesse momento o gvim ficará travado e o navegador será aberto para você visualizar o andamento do projeto, quando você fechar o navegador o gvim será destravado.

Navegador

Navegação de arquivos

Eu conheço duas formas de navegação de arquivos, a primeira é muito rápida:

1
tecla esc + ctrl + f

Busca arquivo

Digite o nome do arquivo desejado, por exemplo new:

Busca Arquivo New

A outra forma de navegação é em diretórios, digite:

1
tecla esc + :Vex

Vex

Snippets

Esse pacote que instalamos para o vim, tem muitos snippets já configurados para acelerar a condificação, eles podem ser encontrados no diretório ~/.vim/snippets:

Snippets

Se você olhar nesses diretórios vai poder descobrir as siglas para acessar o snippets, dê uma boa olhada e teste.

Snippets Ruby on Rails

Vamos testar um pouco os snippets, agora que você já sabe procurar arquivos, abra o arquivo car.rb:

1
2
3
tecla esc + ctrl + f
digite car.rb
enter

Model

Digite i ou insert para colocar o gvim em modo de edição e digite:

1
vp + tecla tab

Model vp

Model vp tab

Agora e só apertar tab e ir substituindo os valores.

Caso o snippet não funcione, feche o gvim, acesse o diretório da aplicação Ruby on Rails (autocomplete), estando dentro do diretório autocomplete abra o gvim, agora os snippets tem que funcionar.

A ideia desse post é apenas dar um visão geral, existe várias outras coisas possíveis de fazer, e muitos outros comandos poderosos para trabalhar com Ruby on Rails no vim, por isso eu sugiro que você leia esses outros artigos:

Se você gostou desse texto e acha que ajudou você, me recomende: Recommend Me.

  • Share/Bookmark

Desenvolvimento para iPhone

Postado em 17 abr 2009
Categoria(s) Reflexões

Ontem teve um seminário em Curitiba/PR sobre desenvolvimento para o iPhone, alguns conhecidos foram e nós iniciamos uma discussão sobre o assunto no grupo CuritibaDev (http://groups.google.com/group/curitibadev).

A minha opinião sobre o assunto é a seguinte:

  • O lance da falta de documentação e as limitações da difusão do conhecimento sobre o iPhone que são as grandes limitações dessa tecnologia.
  • Particularmente eu não me sinto animado em programar para o iPhone por essas características da Apple, com certeza são táticas para defender mercados. No momento pra mim o iPhone e os produtos da Apple fazem parte da AppleMania, todo mundo quer ter por que é moda e dá status social com eles, só uma forma de fazer o ser humano se sentir bem através dos seus brinquedos.
  • Eu acho que o mercado para symbian, python, java me, android e flash são fortes, os caras que manjam dessas tecnologias só falam mal do iPhone nos blogs por ae.
  • Tem um lance que não tem como falar mal da Apple, as piras que touch que eles criaram são muito legais e o sensores presentes no iPhone e iPod Touch de movimento são muito fodas, o foda que eles patentearam todas essas piras touch.
  • É a Apple está muito longe de ser uma empresa de software livre, por enquanto eu vou continuar usando e abusando do software livre. ;-)

Contribua deixe sua opinião nos comentários.

  • Share/Bookmark