]> git.r.bdr.sh - rbdr/lyricli.rb/blobdiff - lib/lyricli.rb
Merge pull request #3 from orlando/master
[rbdr/lyricli.rb] / lib / lyricli.rb
index 1c908b0f1bce666553e266f3b89e9fa4e404685f..73c5811a0e7a102d39f34ea2057407efb050a8c7 100755 (executable)
@@ -1,4 +1,5 @@
 require 'uri'
+require 'cgi'
 require 'net/http'
 require 'multi_json'
 require 'nokogiri'
@@ -17,9 +18,19 @@ require "lyricli/configuration"
 require "lyricli/lyricli"
 require "lyricli/lyrics_engine"
 require "lyricli/source_manager"
+require "lyricli/sources"
 require "lyricli/sources/arguments"
 require "lyricli/sources/rdio"
 require "lyricli/sources/itunes"
+require "lyricli/exceptions"
+require "lyricli/exceptions/disable_source_error"
+require "lyricli/exceptions/enable_source_error"
+require "lyricli/exceptions/invalid_lyrics_error"
+require "lyricli/exceptions/lyrics_not_found_error"
+require "lyricli/exceptions/reset_source_error"
+require "lyricli/exceptions/source_configuration_error"
+require "lyricli/exceptions/start_source_error"
+require "lyricli/exceptions/unknown_source_error"
 
 # The Lyricli module allows you to easily search for lyrics by looking for
 # song and artist data from diverse sources.
@@ -49,18 +60,37 @@ module Lyricli
   # Enables a source via the Source Manager
   def self.enable(source_name)
     source_manager = SourceManager.new
-    source_manager.enable(source_name)
+    begin
+      source_manager.enable(source_name)
+    rescue Exceptions::UnknownSourceError
+      "There is no such Source"
+    end
   end
 
   # Disables a source via the Source Manager
   def self.disable(source_name)
     source_manager = SourceManager.new
-    source_manager.disable(source_name)
+    begin
+      source_manager.disable(source_name)
+    rescue Exceptions::UnknownSourceError
+      "There is no such Source"
+    end
   end
 
   # Resets all configuration for a source via the Source Manager
   def self.reset(source_name)
     source_manager = SourceManager.new
-    source_manager.reset(source_name)
+    begin
+      source_manager.reset(source_name)
+    rescue Exceptions::UnknownSourceError
+      "There is no such Source"
+    end
+  end
+
+  # Returns the root of the Gem.
+  #
+  # @return [String] the root path for this gem
+  def self.root
+    File.expand_path('../..',__FILE__)
   end
 end