class AudioSwitch::Pactl::Out
Public Class Methods
new(string)
click to toggle source
# File lib/audio_switch/pactl.rb, line 113 def initialize(string) @string = string end
Public Instance Methods
parse_event()
click to toggle source
# File lib/audio_switch/pactl.rb, line 140 def parse_event parts = @string.split(' ') { type: parts[1].delete('\'').to_sym, object: parts[3].to_sym, id: parts[4].sub('#', '') } end
parse_objects(fields)
click to toggle source
# File lib/audio_switch/pactl.rb, line 117 def parse_objects(fields) objects = [] field_id = 0 object = nil @string.each_line do |line| field = fields[field_id] next unless line =~ Regexp.new(field[:marker]) object = {} if field_id.zero? update(object, line, field) field_id += 1 next unless field_id == fields.size objects << object object = nil field_id = 0 end objects end
parse_property(marker)
click to toggle source
# File lib/audio_switch/pactl.rb, line 149 def parse_property(marker) read_property(@string, marker) end
Private Instance Methods
read_property(line, marker)
click to toggle source
# File lib/audio_switch/pactl.rb, line 160 def read_property(line, marker) line.match(Regexp.new("#{marker}\\s*(.*?)\\s*$"))[1] end
update(object, line, field)
click to toggle source
# File lib/audio_switch/pactl.rb, line 155 def update(object, line, field) property = field[:property] object[property] = read_property(line, field[:marker]) if field[:property] end