I was going to start working on the Search that's mentioned in the README but wanted to see what your vision for the API was.
songs = RapGenius.search("Big Sean") # or '.find' to be consistent.
songs.class # => Array
songs.first.class # => SearchResult
song = songs.first
song.id # => 203961
song.title # => "Big Sean (Ft. Jay Electronica & Kendrick Lamar) – Control"
song.url # => "/Big-sean-control-lyrics"
lyrics = RapGenius::Song.find(song.url)
# ...
You can see the kind of results returned by their server for their autocomplete by running this:
curl "http://rapgenius.com/search/quick?q=Big+Sean+Cont" -H "X-Requested-With:XMLHttpRequest" -H "Referer:http://rapgenius.com/" -H "Accept:application/x-javascript, text/javascript"
Big Sean (Ft. Jay Electronica & Kendrick Lamar) – Control (French Version)|/Big-sean-control-french-version-lyrics|205998
Big Sean (Ft. Jay Electronica & Kendrick Lamar) – Control|/Big-sean-control-lyrics|203961
Sa-roc (Ft. Big Sean - No I.D., Jay Electronica, Kendrick Lamar & Sa-roc) – CONTROL|/Sa-roc-control-lyrics|204686
C3 – Control ( Disses Kendrick Lamar , Jay-Z, Tyler The Creator, Big Sean, Meek Mill & More )|/C3-control-disses-kendrick-lamar-jay-z-tyler-the-creator-big-sean-meek-mill-and-more-lyrics|205362
You can omit the "Accept" header and get back an HTML partial that we could parse directly in Nokogiri; whichever's easier.