class AudioMixer::Sox::Composition
Attributes
sounds[R]
Public Class Methods
new(filename)
click to toggle source
# File lib/audio_mixer/sox/composition.rb, line 8 def initialize(filename) @filename = filename update! end
Public Instance Methods
has_changed?()
click to toggle source
# File lib/audio_mixer/sox/composition.rb, line 13 def has_changed? File.new(@filename, "r").mtime > @last_mtime rescue Errno::ENOENT puts "Composition file unavailable!" end
update!()
click to toggle source
# File lib/audio_mixer/sox/composition.rb, line 19 def update! YAML.load_file(@filename).tap do |collection| if collection_is_valid?(collection) @sounds = collection puts "Composition file updated..." end end rescue Psych::SyntaxError puts "Composition file corrupted, ignoring..." ensure @last_mtime = Time.now end
Private Instance Methods
collection_is_valid?(collection)
click to toggle source
# File lib/audio_mixer/sox/composition.rb, line 34 def collection_is_valid?(collection) collection.is_a?(Enumerable) && collection.all? { |sound| sound_is_valid?(sound) } end
sound_is_valid?(sound)
click to toggle source
# File lib/audio_mixer/sox/composition.rb, line 38 def sound_is_valid?(sound) sound.respond_to?(:[]) && sound["url"] != nil && File.exists?(File.expand_path(sound["url"])) end