class Soxi::Wrapper::File

Attributes

filename[R]

Public Class Methods

new(filename) click to toggle source
# File lib/soxi/wrapper/file.rb, line 8
def initialize filename
  @filename = filename
end

Public Instance Methods

average_bitrate() click to toggle source
# File lib/soxi/wrapper/file.rb, line 40
def average_bitrate
  @average_bitrate ||= run('B')
end
bits_per_sample() click to toggle source
# File lib/soxi/wrapper/file.rb, line 36
def bits_per_sample
  @bits_per_sample ||= run('b').to_i
end
channels() click to toggle source
# File lib/soxi/wrapper/file.rb, line 20
def channels
  @channels ||= run('c').to_i
end
comments() click to toggle source
# File lib/soxi/wrapper/file.rb, line 48
def comments
  @comments ||= run_multiline('a')
end
duration() click to toggle source
# File lib/soxi/wrapper/file.rb, line 28
def duration
  @duration ||= run('d')
end
encoding() click to toggle source
# File lib/soxi/wrapper/file.rb, line 44
def encoding
  @encoding ||= run('e')
end
filetype() click to toggle source
# File lib/soxi/wrapper/file.rb, line 12
def filetype
  @filetype ||= run('t')
end
samplerate() click to toggle source
# File lib/soxi/wrapper/file.rb, line 16
def samplerate
  @samplerate ||= run('r')
end
samples() click to toggle source
# File lib/soxi/wrapper/file.rb, line 24
def samples
  @samples ||= run('s').to_i
end
seconds() click to toggle source
# File lib/soxi/wrapper/file.rb, line 32
def seconds
  @seconds ||= run('D').to_f
end

Private Instance Methods

run(option) click to toggle source
# File lib/soxi/wrapper/file.rb, line 58
def run(option)
  run_soxi(option).delete("\n")
end
run_multiline(option) click to toggle source
# File lib/soxi/wrapper/file.rb, line 54
def run_multiline(option)
  run_soxi(option)
end
run_soxi(option) click to toggle source
# File lib/soxi/wrapper/file.rb, line 62
def run_soxi(option)
  val, std_err, status = Open3.capture3('soxi', "-#{option}", filename)
  return val if status.success?
  raise SoxiFailedError.new(
    std_err: std_err,
    std_out: val,
    option: option,
    filename: filename
  )
end