Google Music Trends com Ruby
10/08/07
O Google tem um serviço interessante chamado Music Trends que, baseado nas informações enviadas pelos usuários que utilizam GTalk, cria um ranking de músicas mais ouvidas. Em alguns países como EUA e Índia é possível até visualizar as estatísticas por estilo musical.
Infelizmente, o Google não possui API para estas estatísticas e, por isso, a única solução para obter tais informações é com scraping. Tendo este problema em mente, fiz uma classe que acessa o Google Music Trends e retorna as informações de maneira bastante simples.
require 'google_music_trends'
trends = GoogleMusicTrends.new
s = "GOOGLE MUSIC TRENDS\n===================\n"
trends.get(:genre => 'alternative & punk', :where => 'USA').each do |item|
s << "Artist: %s\n" % item[:artist]
s << "Song: %s\n" % item[:song]
s << "Rank: #%s\n\n" % item[:rank]
end
puts s
Você precisará ter o Hpricot instalado, então, se você ainda não o tiver, execute o comando gem install hpricot.
A classe está disponível no Subversion. Para pegar a versão mais recente, execute o comando svn co http://svn.simplesideias.com.br/general/ruby/google_music_trends
- Permalink
- Trackback
- Comentários (2)
- Ao som de: Millencolin – Lozin' Must
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
Código-fonte do Sounds Like
25/06/07
A Long Time Ago in a Galaxy Far, Far Away…
Conforme prometido, aqui está o código-fonte do Sounds Like, projeto enviado ao Rails Rally 2007: soundslikenow.tar.gz.
Vale lembrar que o código-fonte é o da mesma versão que foi enviado para o concurso e, portanto, é muito mais simples do que o que está atualmente em soundslikenow.org.
Divirta-se!
- Permalink
- Trackback
- Comentários (5)
- Ao som de: Death Cab for Cutie – Blacking Out the Friction
