Sha256: 365155a27687e1bddc34f3f14737eae0fe74f1d8d350c44a033bc72220d66f5c

Contents?: true

Size: 826 Bytes

Versions: 8

Compression:

Stored size: 826 Bytes

Contents

class EroGetter
  autoload :Base, 'ero_getter/base'
  autoload :Livedoor, 'ero_getter/livedoor'

  def detect(url)
    self.class.url_mapping.each_pair do |regex, klazz|
      return klazz if url.match regex
    end
    nil
  end

  def download(url)
    klazz = detect(url)
    raise unless klazz
    klazz.new(url).run
  end


  class << self
    def directory
      path = File.join ENV['HOME'], 'ero_getter'
      puts path unless Dir.exists?(path)
      path
    end

    def url_mapping
      @url_mapping ||= {}
    end

    def add_mapping(regex, strategy)
      url_mapping[regex] = strategy
    end

    def clean
      @url_mapping = {}
    end
  end
end

Dir.glob(File.expand_path(File.dirname(__FILE__) + '/downloader/*.rb')) do |file|
  begin
    require file
  rescue
    puts "Load error in #{file}"
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
ero_getter-1.7.0 lib/ero_getter.rb
ero_getter-1.6.3 lib/ero_getter.rb
ero_getter-1.6.2 lib/ero_getter.rb
ero_getter-1.6.1 lib/ero_getter.rb
ero_getter-1.6.0 lib/ero_getter.rb
ero_getter-1.5.1 lib/ero_getter.rb
ero_getter-1.5.0 lib/ero_getter.rb
ero_getter-1.4.0 lib/ero_getter.rb