]> git.r.bdr.sh - rbdr/lyricli.rb/blobdiff - lib/lyricli/lyrics_engine.rb
Adds -t / --title option to show header
[rbdr/lyricli.rb] / lib / lyricli / lyrics_engine.rb
index 65e36dbf95d23786412225ee56a47f0f7f3509ec..1291d41131f497e453cba41da5862745da923777 100644 (file)
@@ -1,12 +1,21 @@
 module Lyricli
 module Lyricli
+
+  # This class gets the lyrics according to a given artist and song name.
   class LyricsEngine
 
     include Util
 
   class LyricsEngine
 
     include Util
 
+    # Starts a new instance of LyricsEngine
+    #
+    # @param [String] artist the artist
+    # @param [String] song the song to look for
     def initialize(artist, song)
       @provider = URI("http://lyrics.wikia.com/api.php?artist=#{sanitize_param artist}&song=#{sanitize_param song}&fmt=realjson")
     end
 
     def initialize(artist, song)
       @provider = URI("http://lyrics.wikia.com/api.php?artist=#{sanitize_param artist}&song=#{sanitize_param song}&fmt=realjson")
     end
 
+    # Asks Lyrics Wiki for the lyrics, also cleans up the output a little.
+    #
+    # @return [String] the lyrics
     def get_lyrics
       begin
         response = Net::HTTP.get(@provider)
     def get_lyrics
       begin
         response = Net::HTTP.get(@provider)
@@ -15,19 +24,22 @@ module Lyricli
         doc = Nokogiri::HTML(open(response['url']))
         node = doc.search(".lyricbox").first
       rescue
         doc = Nokogiri::HTML(open(response['url']))
         node = doc.search(".lyricbox").first
       rescue
-        raise Lyricli::LyricsNotFoundException
+        raise Exceptions::LyricsNotFoundError
       end
 
       node.search(".rtMatcher").each do |n|
         n.remove
       end
 
       end
 
       node.search(".rtMatcher").each do |n|
         n.remove
       end
 
+      node.search("script").each do |n|
+        n.remove
+      end
+
       node.search("br").each do |br|
         br.replace "\n"
       end
 
       node.search("br").each do |br|
         br.replace "\n"
       end
 
-      node.inner_text
+      node.inner_text.gsub(/\s+$/, "")
     end
     end
-
   end
 end
   end
 end