lib/ffprober.rb in ffprober-0.3.7 vs lib/ffprober.rb in ffprober-0.4.0

- old
+ new

@@ -1,23 +1,27 @@ -require "ffprober/version" -require "ffprober/parser" -require "ffprober/format" -require "ffprober/stream" -require "ffprober/audio_stream" -require "ffprober/video_stream" -require "ffprober/ffprobe_version" -require "json" +require_relative 'ffprober/version' +require_relative 'ffprober/parser' +require_relative 'ffprober/format' +require_relative 'ffprober/stream' +require_relative 'ffprober/audio_stream' +require_relative 'ffprober/video_stream' +require_relative 'ffprober/chapter' +require_relative 'ffprober/ffprobe_version' +require 'json' module Ffprober def self.path - name = 'ffprobe' - name << '.exe' if self.windows? + @path ||= begin + path = ENV['PATH'].split(File::PATH_SEPARATOR).find do |path_to_check| + File.executable?(File.join(path_to_check, executable_name)) + end - path = ENV['PATH'].split(File::PATH_SEPARATOR).find do |path| - File.executable?(File.join(path, name)) + path && File.expand_path(executable_name, path) end + end - path && File.expand_path(name, path) + def self.executable_name + @executable_name ||= self.windows? ? 'ffprobe.exe' : 'ffprobe' end def self.windows? !!(RUBY_PLATFORM =~ /(mingw|mswin)/) end