Class: RailscastsDownload::Saver

Inherits:
Object
  • Object
show all
Defined in:
lib/railscasts_download/saver.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Saver

Returns a new instance of Saver.



7
8
9
10
11
12
13
14
# File 'lib/railscasts_download/saver.rb', line 7

def initialize( options={} )
  @downloader = options[:downloader] || Downloader.new
  options[:rss_uri] ||= "http://feeds.feedburner.com/railscasts" unless options[:pro]
  options[:login_uri] ||= "http://railscasts.com/login" if options[:pro]
  @page = options[:page_explorer] || PageExplorer.new( options )
  @rss = options[:rss_explorer] || RssExplorer.new( @page.get_rss_body )
  @after = options[:after]
end

Instance Method Details

#get_allObject



16
17
18
# File 'lib/railscasts_download/saver.rb', line 16

def get_all
  missing_videos_uris.each{ |video_uri| get_file( video_uri ) }
end

#get_file(uri) ⇒ Object



20
21
22
# File 'lib/railscasts_download/saver.rb', line 20

def get_file( uri )
  @downloader.get( uri )
end

#missing_videos_urisObject



28
29
30
31
32
# File 'lib/railscasts_download/saver.rb', line 28

def missing_videos_uris
  videos_filenames = videos_uris.map { |url| url.split( '/' ).last }
  missing_files = videos_filenames - Dir.glob( '*.mp4' )
  videos_uris.select{ |uri| missing_files.any? { |filename| uri.match filename } }
end

#videos_urisObject



24
25
26
# File 'lib/railscasts_download/saver.rb', line 24

def videos_uris
  @rss.get_uris( after: @after )
end