Sha256: 5b1e8df5a10041d7d3184213e517b4adcc4d2bedf569be9e7ebc065862ce7f8b

Contents?: true

Size: 1.34 KB

Versions: 2

Compression:

Stored size: 1.34 KB

Contents

module Abrizer
  module ReadAdaptations

    def read_adaptations
      # Either we have a filepath to an original or we make the assumption we
      # really have an identifier instead of a filepath and we use that
      # identifier to look for an adaptations.json file. Failing finding the
      # adaptations.json file we just use the adaptations based on the
      # vp9_filepath.
      if @filepath && File.exist?(@filepath) && !File.directory?(@filepath)
        @filename = @filepath
        find_adaptations
      elsif File.exist? adaptations_filepath
        # assume we have an identifier and look up for the adaptations file
        adaptations_json = File.read adaptations_filepath
        adaptations = MultiJson.load adaptations_json
        # TODO: There ought to be a class that recreates an Adaptation instance
        # based on the adaptations.json file. For now we fake it with a
        # OpenStruct.
        @adaptations = adaptations.map do |a|
          OpenStruct.new(a)
        end
      elsif File.exist? vp9_filepath
        # assume we just got an identifier and look for the webm
        @filename = vp9_filepath
        find_adaptations
      else
        raise ReadAdaptationsError
      end
    end

    def find_adaptations
      finder = AdaptationFinder.new(filepath: @filename)
      @adaptations = finder.adaptations
    end

  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
abrizer-0.6.0 lib/abrizer/read_adaptations.rb
abrizer-0.5.0 lib/abrizer/read_adaptations.rb