beanieboi/ffprober

View on GitHub
lib/ffprober/ffmpeg/version_validator.rb

Summary

Maintainability
A
0 mins
Test Coverage
# typed: strict
# frozen_string_literal: true

module Ffprober
  module Ffmpeg
    class VersionValidator
      extend T::Sig

      MIN_VERSION = T.let(Gem::Version.new('0.9.0'), Gem::Version)

      sig { params(ffmpeg_version: Ffprober::Ffmpeg::Version).void }
      def initialize(ffmpeg_version)
        @ffmpeg_version = ffmpeg_version
      end

      sig { returns(T::Boolean) }
      def valid?
        ffmpeg_version.nightly? || version_requirement_statisfied?
      end

      private

      sig { returns(T::Boolean) }
      def version_requirement_statisfied?
        ffmpeg_version.version >= MIN_VERSION
      end

      sig { returns(Ffprober::Ffmpeg::Version) }
      attr_reader :ffmpeg_version
    end
  end
end