Fazendo requisições HTTP com Ruby
01/09/07
Se você precisa fazer alguma requisição HTTP e precisa enviar algum cabeçalho como User-Agent, X-Requested-With ou um outro qualquer, basta você utilizar a biblioteca Net. Veja um exemplo de como fazer isto:
require 'net/http'
require 'uri'
# creating the headers hash
headers = {
'User-Agent' => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.1) Gecko/20060111 Firefox/2.0.0.6',
'X-Requested-With' => 'Javascript'
}
# parse the url we want to access
uri = URI.parse('http://example.com/some/page/?foo=bar')
# creating a request object
http = Net::Http.new(uri.host)
# GET request
puts http.get(uri.path, headers)
# POST request
puts http.post(uri.path, headers) - Permalink
- Trackback
- Comentários (3)
- Ao som de: Punchline – Just Getting Started
Removendo caracteres com o método trim no Ruby
02/08/07
Já precisou remover caracteres de uma string, com funções semelhantes a trim, rtrim e ltrim do PHP? Pois é! No Ruby você não tem isso nativamente. Para adicionar tais funcionalidades, basta estender a classe String com os métodos abaixo.
class String
def trim!(chars)
rtrim!(chars)
ltrim!(chars)
end
def rtrim!(chars)
gsub!(/(#{trim_prepare(chars)})+$/, '')
end
def ltrim!(chars)
gsub!(/^(#{trim_prepare(chars)})+/, '')
end
def trim(chars)
dup.rtrim(chars).ltrim(chars)
end
def rtrim(chars)
dup.rtrim!(chars)
end
def ltrim(chars)
dup.ltrim!(chars)
end
private
def trim_prepare(chars)
chars = chars.split("").collect { |char| Regexp.escape(char) }
chars.join('|')
end
end
Seu funcionamento é muito semelhante às funções do PHP. Veja:
text = '|_ ruby _|'
puts text.trim(' _|') # both sides
puts text.ltrim(' _|') # left side
puts text.rtrim(' _|') # right side
Lembre-se que você não precisa passar os caracteres que serão removidos na ordem em que eles aparecem.
- Permalink
- Trackback
- Comentários (2)
- Ao som de: Sugarcult – A Hard Day's Night
Lista de Plugins para o gEdit
04/04/07
Neste post, listo todos os plugins que uso no meu gEdit com links para os respectivos downloads. Além disso, é possível baixar o tema que uso atualmente, baseado no tema Blackboard do Textmate. Diverta-se!
Advanced Editing
Adiciona uma série de funcionalidades como duplicar linha, remover linha, etc.
http://live.gnome.org/Gedit/AdvancedEditingPlugin
Autocomplete
Autocompletar com base no dicionário de palavras encontrado nos arquivos abertos.
http://sourceforge.net/projects/gedit-autocomp
Class Browser
Exiba a estrutura de seus arquivos com a possibilidade de ir a um determinado ponto rapidamente.
http://www.stambouliote.de/tarballs/gedit_classbrowser-0.0.3.tar.gz
Code Comment
Comente ou descomente um bloco de código com uma simples tecla de atalho.
http://live.gnome.org/Gedit/
Current Line Highlight
Pode parecer frescura, mas para algumas pessoas — eu — mudar a cor de fundo da linha corrente faz a diferença.
http://simplesideias.com.br/current-line-highlight/
Draw Spaces
Exibe espaços (ponto) e tabulações (seta) com aparência distinta.
http://live.gnome.org/Gedit
External Tools
Permite executar comandos externos e shell script. Excelente se usado com o comando Run File.
http://live.gnome.org/Gedit/ToolLauncherPlugin
File Browser Pane
Navegue pelos diretórios através de uma barra lateral adicionada com este plugin.
http://live.gnome.org/Gedit/ToolLauncherPlugin
Gemini
Autocompleta caracteres como colchetes, parenteses e aspas.
http://www.garyharan.com/index.php/2006/11/16/gemini-gedit-plugin-for-all-those-Textmate-fans/
Indent Lines
Aumenta ou diminui a indentação de código.
http://live.gnome.org/Gedit/Plugins
Markup Preview
Permite que você visualize no painel inferior, arquivos formatos com HTML, Textile e Markdown.
http://textmethod.com/wiki/ReStructuredTextToolsForGedit#preview-plugin
Quick Highlight Mode
Mudar o tipo de highlight do documento que está sendo editado nunca foi tão simples. Basta pressionar Ctrl+Shift+H e digitar as primeiras letras do formato.
http://simplesideias.com.br/quick-highlight-mode/
RubyDoc
Exibe a documentação do Ruby na barra lateral.
http://grad.icmc.usp.br/~vinibf/rubyide/
Smart Spaces
Trata tabulações — espaços e tabs — como se fosse um único caracter. Ótimo para quem trabalha com tabulações por espaço.
http://live.gnome.org/Gedit
SnapOpen
Diálgo de arquivos semelhante ao existente no Textmate. Permite buscas por expressão regular.
http://www.upperbound.net/upperbound/show/SnapOpen+plugin+for+Gedit
Snippets
Trechos de códigos adicionados através de disparadores — palavra-chave ou atalho de teclado — que aumentam de maneira estúpida a produtividade.
http://live.gnome.org/Gedit/Plugins/Snippets
Terminal
Exibe um terminal no painel inferior.
http://live.gnome.org/Gedit
Tab Coverter
Converte espaços para tab e vice-versa.
http://www.stambouliote.de/projects/gedit_plugins.html
Tabulation
Força tabulação para arquivos PHP, Ruby e Python. Outros documentos utilizam o padrão definido nas preferências.
http://simplesideias.com.br/gedit-e-tabulacao-por-arquivo/
Instalando tudo isso
Para instalar todos esses plugins e ainda ter um highlight todo modificado, siga os passos abaixo.
Tema
Baixe o arquivo gconf.tar.gz e extraia seus arquivos para ~/.gconf/apps/, substituindo o diretório "gedit-2", caso ele já exista. Veja como deve ser a estrutura de diretórios.

As cores foram retiradas do próprio Textmate, e ficaram muito legais. Não apliquei para todas as linguagens, mesmo porque não uso todas. Mas Ruby/RHTML, PHP, CSS, Python, Javascript e HTML estão devidamente formatados.
Após copiar os arquivos rode o comando kill -HUP `pidof gconfd-2` para recarregar as configurações do GConf.

Plugins
Instale os plugins que já vem no pacote do gEdit com o comando abaixo:
$~ sudo aptitude install gedit-plugins
Depois, baixe o arquivo plugins.tar.gz e extraia os arquivos para ~/.gnome2/gedit/, substituindo os diretórios, caso existam. Veja como deve ser a estrutura de diretórios.

Para sugestões e dúvidas, poste um comentário! :)
- Permalink
- Trackback
- Comentários (47)
- Ao som de: No Fun At All – Your Feeble Mind
