]> gitweb.michael.orlitzky.com - dead/whatever-dl.git/blobdiff - src/downloader.rb
Added configurable downloaders.
[dead/whatever-dl.git] / src / downloader.rb
diff --git a/src/downloader.rb b/src/downloader.rb
new file mode 100644 (file)
index 0000000..eac7c18
--- /dev/null
@@ -0,0 +1,42 @@
+#
+# Copyright Michael Orlitzky
+#
+# http://michael.orlitzky.com/
+#
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# http://www.fsf.org/licensing/licenses/gpl.html
+#
+
+class Downloader
+
+  def self.create(download_method)
+    # Return the subclass corresponding to download_method.
+    case download_method
+    when :openuri
+      return OpenUriDownloader.new()
+    when :wget
+      return WgetDownloader.new()
+    end
+  end
+
+  
+  # Abstract
+  def download(url, outfile)
+    raise NotImplementedError
+  end
+  
+end
+
+
+# This is wacky, but seems to work.
+require 'src/wget_downloader'
+require 'src/open_uri_downloader'