Sha256: 1410e5578d0df77159ae2bd383f648a39a6b71b0d07a04fa5fae7b4ed2d7fbd1

Contents?: true

Size: 774 Bytes

Versions: 3

Compression:

Stored size: 774 Bytes

Contents

require "net/http"

module DashTimelineValidator
  class DashFile
    def self.fetch_file(origin, file_path = Options::ANALYZER_MANIFEST_PATH)
      dirname = File.dirname(file_path)
      unless File.directory? dirname
        FileUtils.mkdir_p(dirname)
      end

      if uri? origin
        download_and_save(origin, file_path)
      else
        FileUtils.cp origin, file_path
        File.read file_path
      end
    end

    def self.download_and_save(uri, path)
      content = Net::HTTP.get(URI.parse(uri))
      File.write(path, content)
      content
    end

    def self.uri?(string)
      uri = URI.parse(string)
      %w( http https ).include?(uri.scheme)
    rescue URI::BadURIError
      false
    rescue URI::InvalidURIError
      false
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
dash_timeline_validator-0.1.2 lib/dash_timeline_validator/file.rb
dash_timeline_validator-0.1.1 lib/dash_timeline_validator/file.rb
dash_timeline_validator-0.1.0 lib/dash_timeline_validator/file.rb