class Chaussettes::Info
encapsulates info about an audio file
Public Class Methods
new(filename)
click to toggle source
# File lib/chaussettes/info.rb, line 7 def initialize(filename) command = Tool.new('soxi') << filename output = `#{command}` @data = _parse(output) end
Public Instance Methods
_parse(output)
click to toggle source
# File lib/chaussettes/info.rb, line 13 def _parse(output) output.lines.each.with_object({}) do |line, hash| next if line.strip.empty? key, value = line.split(/:/, 2) hash[key.strip] = value.strip end end
bit_rate()
click to toggle source
# File lib/chaussettes/info.rb, line 52 def bit_rate @_bit_rate ||= @data['Bit Rate'] end
bits()
click to toggle source
# File lib/chaussettes/info.rb, line 33 def bits @_bits ||= @data['Precision'].to_i end
channels()
click to toggle source
# File lib/chaussettes/info.rb, line 25 def channels @_channels ||= @data['Channels'].to_i end
duration()
click to toggle source
# File lib/chaussettes/info.rb, line 37 def duration @_duration ||= begin timespec = @data['Duration'].split(/ /).first h, m, s = timespec.split(/:/) h.to_i * 3600 + m.to_i * 60 + s.to_f end end
filename()
click to toggle source
# File lib/chaussettes/info.rb, line 21 def filename @_filename ||= @data['Input File'] end
rate()
click to toggle source
# File lib/chaussettes/info.rb, line 29 def rate @_rate ||= @data['Sample Rate'].to_i end
size()
click to toggle source
# File lib/chaussettes/info.rb, line 48 def size @_size ||= @data['File Size'] end