download.rb 1.01 KB
#FIX ME: Turn this into a proper model(next release)
class Download
  def initialize data
    @name = data[:name]
    @link = data[:link]
    @software_description = data[:software_description]
    @minimum_requirements = data[:minimum_requirements]
    @size = data[:size]

    @total_downloads = if data[:total_downloads]
      data[:total_downloads]
    else
      0
    end
  end

  def self.validate_download_list download_list
    download_list.select! do |download|
      not download[:name].blank?
    end

    download_list.map do |download|
      Download.new(download).to_hash
    end
  end

  def to_hash
    {
      :name => @name,
      :link => @link,
      :software_description => @software_description,
      :minimum_requirements => @minimum_requirements,
      :size => @size,
      :total_downloads => @total_downloads
    }
  end

  def total_downloads= value
    if value.is_a? Integer
      @total_downloads = value
    end
  end

  def total_downloads
    @total_downloads
  end

  def link
    @link
  end
end