class RMD::Processor

Attributes

options[R]

Public Class Methods

new(link, options = {}) click to toggle source
# File lib/rmd/processor.rb, line 9
def initialize(link, options = {})
  @link = link
  @options = options
end
process(link, options = {}) click to toggle source
# File lib/rmd/processor.rb, line 28
def self.process(link, options = {})
  begin
    new(link, options).process
  rescue => error
    puts error.message.red
    puts 'Errors! Can not continue!'.red
  end
end

Public Instance Methods

process() click to toggle source
# File lib/rmd/processor.rb, line 14
def process
  puts "Start processing #{link}...".green
  playlist = RMD::Factory::Main.build(link)
  playlist.fetch

  if playlist.success?
    strategy.process(playlist.songs)
  end

  playlist.errors.each do |error|
    puts error.red
  end
end

Private Instance Methods

strategy() click to toggle source
# File lib/rmd/processor.rb, line 39
def strategy
  @strategy ||= if options[:fast]
                RMD::ProcessStrategy::MultiThread.new(options)
              else
                RMD::ProcessStrategy::SingleThread.new(options)
              end
end