pulseaudio 0.0.5 → 0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -0
- data/Gemfile.lock +13 -0
- data/VERSION +1 -1
- data/gui/choose_active_sink_gtk3/choose_active_sink.glade +29 -9
- data/gui/choose_active_sink_gtk3/choose_active_sink_gtk3.rb +93 -29
- data/include/pulseaudio_gui.rb +1 -1
- data/pulseaudio.gemspec +5 -2
- data/test_scripts/choose_active_sink_gtk3.rb +10 -4
- metadata +22 -11
    
        data/Gemfile
    CHANGED
    
    
    
        data/Gemfile.lock
    CHANGED
    
    | @@ -1,6 +1,7 @@ | |
| 1 1 | 
             
            GEM
         | 
| 2 2 | 
             
              remote: http://rubygems.org/
         | 
| 3 3 | 
             
              specs:
         | 
| 4 | 
            +
                datet (0.0.20)
         | 
| 4 5 | 
             
                diff-lcs (1.1.3)
         | 
| 5 6 | 
             
                ffi (1.0.11)
         | 
| 6 7 | 
             
                gettext (2.3.1)
         | 
| @@ -14,6 +15,7 @@ GEM | |
| 14 15 | 
             
                gtk3assist (0.0.5)
         | 
| 15 16 | 
             
                  gir_ffi-gtk
         | 
| 16 17 | 
             
                  xml-simple
         | 
| 18 | 
            +
                http2 (0.0.11)
         | 
| 17 19 | 
             
                indentation (0.0.6)
         | 
| 18 20 | 
             
                jeweler (1.8.4)
         | 
| 19 21 | 
             
                  bundler (~> 1.0)
         | 
| @@ -21,7 +23,16 @@ GEM | |
| 21 23 | 
             
                  rake
         | 
| 22 24 | 
             
                  rdoc
         | 
| 23 25 | 
             
                json (1.7.5)
         | 
| 26 | 
            +
                knjrbfw (0.0.99)
         | 
| 27 | 
            +
                  datet
         | 
| 28 | 
            +
                  http2
         | 
| 29 | 
            +
                  php4r
         | 
| 30 | 
            +
                  tsafe
         | 
| 31 | 
            +
                  wref
         | 
| 24 32 | 
             
                locale (2.0.8)
         | 
| 33 | 
            +
                php4r (0.0.3)
         | 
| 34 | 
            +
                  datet
         | 
| 35 | 
            +
                  http2
         | 
| 25 36 | 
             
                rake (0.9.2.2)
         | 
| 26 37 | 
             
                rdoc (3.12)
         | 
| 27 38 | 
             
                  json (~> 1.4)
         | 
| @@ -33,6 +44,7 @@ GEM | |
| 33 44 | 
             
                rspec-expectations (2.8.0)
         | 
| 34 45 | 
             
                  diff-lcs (~> 1.1.2)
         | 
| 35 46 | 
             
                rspec-mocks (2.8.0)
         | 
| 47 | 
            +
                tsafe (0.0.11)
         | 
| 36 48 | 
             
                wref (0.0.5)
         | 
| 37 49 | 
             
                xml-simple (1.1.1)
         | 
| 38 50 |  | 
| @@ -45,6 +57,7 @@ DEPENDENCIES | |
| 45 57 | 
             
              gir_ffi
         | 
| 46 58 | 
             
              gtk3assist
         | 
| 47 59 | 
             
              jeweler (~> 1.8.3)
         | 
| 60 | 
            +
              knjrbfw
         | 
| 48 61 | 
             
              rdoc (~> 3.12)
         | 
| 49 62 | 
             
              rspec (~> 2.8.0)
         | 
| 50 63 | 
             
              wref
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            0.0. | 
| 1 | 
            +
            0.0.6
         | 
| @@ -27,12 +27,25 @@ | |
| 27 27 | 
             
                            <property name="can_focus">False</property>
         | 
| 28 28 | 
             
                            <property name="left_padding">12</property>
         | 
| 29 29 | 
             
                            <child>
         | 
| 30 | 
            -
                              <object class=" | 
| 30 | 
            +
                              <object class="GtkViewport" id="viewport1">
         | 
| 31 31 | 
             
                                <property name="visible">True</property>
         | 
| 32 | 
            -
                                <property name="can_focus"> | 
| 33 | 
            -
                                < | 
| 34 | 
            -
             | 
| 35 | 
            -
             | 
| 32 | 
            +
                                <property name="can_focus">False</property>
         | 
| 33 | 
            +
                                <child>
         | 
| 34 | 
            +
                                  <object class="GtkScrolledWindow" id="scrolledwindow2">
         | 
| 35 | 
            +
                                    <property name="visible">True</property>
         | 
| 36 | 
            +
                                    <property name="can_focus">True</property>
         | 
| 37 | 
            +
                                    <property name="shadow_type">in</property>
         | 
| 38 | 
            +
                                    <child>
         | 
| 39 | 
            +
                                      <object class="GtkTreeView" id="tvSinks">
         | 
| 40 | 
            +
                                        <property name="visible">True</property>
         | 
| 41 | 
            +
                                        <property name="can_focus">True</property>
         | 
| 42 | 
            +
                                        <signal name="cursor-changed" handler="on_tvSinks_cursor_changed" swapped="no"/>
         | 
| 43 | 
            +
                                        <child internal-child="selection">
         | 
| 44 | 
            +
                                          <object class="GtkTreeSelection" id="treeview-selection1"/>
         | 
| 45 | 
            +
                                        </child>
         | 
| 46 | 
            +
                                      </object>
         | 
| 47 | 
            +
                                    </child>
         | 
| 48 | 
            +
                                  </object>
         | 
| 36 49 | 
             
                                </child>
         | 
| 37 50 | 
             
                              </object>
         | 
| 38 51 | 
             
                            </child>
         | 
| @@ -68,12 +81,19 @@ | |
| 68 81 | 
             
                                <property name="visible">True</property>
         | 
| 69 82 | 
             
                                <property name="can_focus">False</property>
         | 
| 70 83 | 
             
                                <child>
         | 
| 71 | 
            -
                                  <object class=" | 
| 84 | 
            +
                                  <object class="GtkScrolledWindow" id="scrolledwindow1">
         | 
| 72 85 | 
             
                                    <property name="visible">True</property>
         | 
| 73 86 | 
             
                                    <property name="can_focus">True</property>
         | 
| 74 | 
            -
                                    < | 
| 75 | 
            -
                                    <child | 
| 76 | 
            -
                                      <object class=" | 
| 87 | 
            +
                                    <property name="shadow_type">in</property>
         | 
| 88 | 
            +
                                    <child>
         | 
| 89 | 
            +
                                      <object class="GtkTreeView" id="tvSources">
         | 
| 90 | 
            +
                                        <property name="visible">True</property>
         | 
| 91 | 
            +
                                        <property name="can_focus">True</property>
         | 
| 92 | 
            +
                                        <signal name="cursor-changed" handler="on_tvSources_cursor_changed" swapped="no"/>
         | 
| 93 | 
            +
                                        <child internal-child="selection">
         | 
| 94 | 
            +
                                          <object class="GtkTreeSelection" id="treeview-selection"/>
         | 
| 95 | 
            +
                                        </child>
         | 
| 96 | 
            +
                                      </object>
         | 
| 77 97 | 
             
                                    </child>
         | 
| 78 98 | 
             
                                  </object>
         | 
| 79 99 | 
             
                                </child>
         | 
| @@ -9,6 +9,7 @@ class PulseAudio::Gui::Choose_active_sink_gtk3 | |
| 9 9 | 
             
                @tv_sinks = Gtk3assist::Treeview.new(
         | 
| 10 10 | 
             
                  :tv => @ui["tvSinks"],
         | 
| 11 11 | 
             
                  :model => :liststore,
         | 
| 12 | 
            +
                  :sort_col => :name,
         | 
| 12 13 | 
             
                  :cols => [
         | 
| 13 14 | 
             
                    {:id => :id, :title => _("ID")},
         | 
| 14 15 | 
             
                    {:id => :name, :title => _("Name")}
         | 
| @@ -20,7 +21,11 @@ class PulseAudio::Gui::Choose_active_sink_gtk3 | |
| 20 21 | 
             
                @tv_sources = Gtk3assist::Treeview.new(
         | 
| 21 22 | 
             
                  :tv => @ui["tvSources"],
         | 
| 22 23 | 
             
                  :model => :liststore,
         | 
| 23 | 
            -
                  : | 
| 24 | 
            +
                  :sort_col => :name,
         | 
| 25 | 
            +
                  :cols => [
         | 
| 26 | 
            +
                    {:id => :id, :title => _("ID")},
         | 
| 27 | 
            +
                    {:id => :name, :title => _("Name")}
         | 
| 28 | 
            +
                  ]
         | 
| 24 29 | 
             
                )
         | 
| 25 30 | 
             
                @ui["tvSources"].get_column(0).visible = false
         | 
| 26 31 | 
             
                self.reload_sources
         | 
| @@ -28,6 +33,10 @@ class PulseAudio::Gui::Choose_active_sink_gtk3 | |
| 28 33 | 
             
                PulseAudio::Sink::Input.auto_redirect_new_inputs_to_default_sink
         | 
| 29 34 | 
             
                PulseAudio::Source::Output.auto_redirect_new_outputs_to_default_source
         | 
| 30 35 |  | 
| 36 | 
            +
                events = PulseAudio::Events.instance
         | 
| 37 | 
            +
                events.connect(:event => :remove, &self.method(:on_remove))
         | 
| 38 | 
            +
                events.connect(:event => :new, &self.method(:on_new))
         | 
| 39 | 
            +
                
         | 
| 31 40 | 
             
                @sicon = Gtk::StatusIcon.new
         | 
| 32 41 | 
             
                @sicon.signal_connect("activate", &self.method(:on_sicon_activate))
         | 
| 33 42 | 
             
                @sicon.signal_connect("popup-menu", &self.method(:on_sicon_popupmenu))
         | 
| @@ -35,6 +44,42 @@ class PulseAudio::Gui::Choose_active_sink_gtk3 | |
| 35 44 | 
             
                self.update_icon
         | 
| 36 45 | 
             
              end
         | 
| 37 46 |  | 
| 47 | 
            +
              #Called when something is removed from PulseAudio. Removes items from the treeviews automatically.
         | 
| 48 | 
            +
              def on_remove(args)
         | 
| 49 | 
            +
                event, ele, ele_id = args[:args][:event].to_sym, args[:args][:element].to_s, args[:args][:element_id].to_i
         | 
| 50 | 
            +
                
         | 
| 51 | 
            +
                if ele == "sink"
         | 
| 52 | 
            +
                  tv = @tv_sinks
         | 
| 53 | 
            +
                elsif ele == "source"
         | 
| 54 | 
            +
                  tv = @tv_sources
         | 
| 55 | 
            +
                else
         | 
| 56 | 
            +
                  return nil
         | 
| 57 | 
            +
                end
         | 
| 58 | 
            +
                
         | 
| 59 | 
            +
                tv.rows_remove do |data|
         | 
| 60 | 
            +
                  if data[:data][:id].to_i == ele_id
         | 
| 61 | 
            +
                    true
         | 
| 62 | 
            +
                  else
         | 
| 63 | 
            +
                    false
         | 
| 64 | 
            +
                  end
         | 
| 65 | 
            +
                end
         | 
| 66 | 
            +
              end
         | 
| 67 | 
            +
              
         | 
| 68 | 
            +
              #Called when something is added to PulseAudio. Adds new items to the treeviews automatically.
         | 
| 69 | 
            +
              def on_new(args)
         | 
| 70 | 
            +
                event, ele, ele_id = args[:args][:event].to_sym, args[:args][:element].to_s, args[:args][:element_id].to_i
         | 
| 71 | 
            +
                
         | 
| 72 | 
            +
                if ele == "sink"
         | 
| 73 | 
            +
                  sink = PulseAudio::Sink.by_id(ele_id.to_i)
         | 
| 74 | 
            +
                  self.add_sink(sink)
         | 
| 75 | 
            +
                elsif ele == "source"
         | 
| 76 | 
            +
                  source = PulseAudio::Source.by_id(ele_id.to_i)
         | 
| 77 | 
            +
                  self.add_source(source)
         | 
| 78 | 
            +
                else
         | 
| 79 | 
            +
                  return nil
         | 
| 80 | 
            +
                end
         | 
| 81 | 
            +
              end
         | 
| 82 | 
            +
              
         | 
| 38 83 | 
             
              #Updates the statusicons icon based on the current sinks volume.
         | 
| 39 84 | 
             
              def update_icon
         | 
| 40 85 | 
             
                #Get the current active sink which should be manipulated.
         | 
| @@ -88,11 +133,16 @@ class PulseAudio::Gui::Choose_active_sink_gtk3 | |
| 88 133 | 
             
                Gtk.main_quit
         | 
| 89 134 | 
             
              end
         | 
| 90 135 |  | 
| 136 | 
            +
              def add_sink(sink)
         | 
| 137 | 
            +
                append_data = @tv_sinks.add_row(:data => {:id => sink.sink_id, :name => sink.args[:props]["description"]})
         | 
| 138 | 
            +
                return append_data
         | 
| 139 | 
            +
              end
         | 
| 140 | 
            +
              
         | 
| 91 141 | 
             
              def reload_sinks
         | 
| 92 142 | 
             
                @reloading = true
         | 
| 93 143 | 
             
                @tv_sinks.model.clear
         | 
| 94 144 | 
             
                PulseAudio::Sink.list do |sink|
         | 
| 95 | 
            -
                  append_data =  | 
| 145 | 
            +
                  append_data = self.add_sink(sink)
         | 
| 96 146 |  | 
| 97 147 | 
             
                  if sink.default?
         | 
| 98 148 | 
             
                    @ui["tvSinks"].selection.select_iter(append_data[:iter])
         | 
| @@ -102,12 +152,17 @@ class PulseAudio::Gui::Choose_active_sink_gtk3 | |
| 102 152 | 
             
                @reloading = false
         | 
| 103 153 | 
             
              end
         | 
| 104 154 |  | 
| 155 | 
            +
              def add_source(source)
         | 
| 156 | 
            +
                append_data = @tv_sources.add_row(:data => {:id => source.source_id, :name => source.args[:props]["description"]})
         | 
| 157 | 
            +
                return append_data
         | 
| 158 | 
            +
              end
         | 
| 159 | 
            +
              
         | 
| 105 160 | 
             
              def reload_sources
         | 
| 106 161 | 
             
                @reloading = true
         | 
| 107 162 |  | 
| 108 163 | 
             
                @tv_sources.model.clear
         | 
| 109 164 | 
             
                PulseAudio::Source.list do |source|
         | 
| 110 | 
            -
                  append_data =  | 
| 165 | 
            +
                  append_data = self.add_source(source)
         | 
| 111 166 |  | 
| 112 167 | 
             
                  if source.default?
         | 
| 113 168 | 
             
                    @ui["tvSources"].selection.select_iter(append_data[:iter])
         | 
| @@ -118,39 +173,48 @@ class PulseAudio::Gui::Choose_active_sink_gtk3 | |
| 118 173 | 
             
              end
         | 
| 119 174 |  | 
| 120 175 | 
             
              def on_tvSinks_cursor_changed(*args)
         | 
| 121 | 
            -
                 | 
| 122 | 
            -
             | 
| 123 | 
            -
             | 
| 124 | 
            -
             | 
| 125 | 
            -
             | 
| 126 | 
            -
             | 
| 127 | 
            -
                   | 
| 128 | 
            -
             | 
| 129 | 
            -
                     | 
| 176 | 
            +
                begin
         | 
| 177 | 
            +
                  return nil if @reloading or !@tv_sinks
         | 
| 178 | 
            +
                  sel = @tv_sinks.sel
         | 
| 179 | 
            +
                  return nil if !sel
         | 
| 180 | 
            +
                  puts sel
         | 
| 181 | 
            +
                  
         | 
| 182 | 
            +
                  sink = nil
         | 
| 183 | 
            +
                  PulseAudio::Sink.list do |sink_i|
         | 
| 184 | 
            +
                    if sink_i.sink_id.to_i == sel[:data][:id].to_i
         | 
| 185 | 
            +
                      sink = sink_i
         | 
| 186 | 
            +
                      break
         | 
| 187 | 
            +
                    end
         | 
| 130 188 | 
             
                  end
         | 
| 189 | 
            +
                  
         | 
| 190 | 
            +
                  raise "Could not find sink." if !sink
         | 
| 191 | 
            +
                  sink.default!
         | 
| 192 | 
            +
                  self.update_icon
         | 
| 193 | 
            +
                rescue => e
         | 
| 194 | 
            +
                  Gtk3assist::Msgbox.error(e)
         | 
| 131 195 | 
             
                end
         | 
| 132 | 
            -
                
         | 
| 133 | 
            -
                raise "Could not find sink." if !sink
         | 
| 134 | 
            -
                sink.default!
         | 
| 135 | 
            -
                self.update_icon
         | 
| 136 196 | 
             
              end
         | 
| 137 197 |  | 
| 138 198 | 
             
              def on_tvSources_cursor_changed(*args)
         | 
| 139 | 
            -
                 | 
| 140 | 
            -
             | 
| 141 | 
            -
             | 
| 142 | 
            -
             | 
| 143 | 
            -
             | 
| 144 | 
            -
             | 
| 145 | 
            -
                   | 
| 146 | 
            -
                     | 
| 147 | 
            -
             | 
| 199 | 
            +
                begin
         | 
| 200 | 
            +
                  return nil if @reloading or !@tv_sources
         | 
| 201 | 
            +
                  sel = @tv_sources.sel
         | 
| 202 | 
            +
                  return nil if !sel
         | 
| 203 | 
            +
                  
         | 
| 204 | 
            +
                  source = nil
         | 
| 205 | 
            +
                  PulseAudio::Source.list do |source_i|
         | 
| 206 | 
            +
                    if source_i.source_id.to_i == sel[:data][:id].to_i
         | 
| 207 | 
            +
                      source = source_i
         | 
| 208 | 
            +
                      break
         | 
| 209 | 
            +
                    end
         | 
| 148 210 | 
             
                  end
         | 
| 211 | 
            +
                  
         | 
| 212 | 
            +
                  raise "Could not find source." if !source
         | 
| 213 | 
            +
                  source.default!
         | 
| 214 | 
            +
                  self.update_icon
         | 
| 215 | 
            +
                rescue => e
         | 
| 216 | 
            +
                  Gtk3assist::Msgbox.error(e)
         | 
| 149 217 | 
             
                end
         | 
| 150 | 
            -
                
         | 
| 151 | 
            -
                raise "Could not find source." if !source
         | 
| 152 | 
            -
                source.default!
         | 
| 153 | 
            -
                self.update_icon
         | 
| 154 218 | 
             
              end
         | 
| 155 219 |  | 
| 156 220 | 
             
              def on_window_delete_event(*args)
         | 
    
        data/include/pulseaudio_gui.rb
    CHANGED
    
    
    
        data/pulseaudio.gemspec
    CHANGED
    
    | @@ -5,11 +5,11 @@ | |
| 5 5 |  | 
| 6 6 | 
             
            Gem::Specification.new do |s|
         | 
| 7 7 | 
             
              s.name = "pulseaudio"
         | 
| 8 | 
            -
              s.version = "0.0. | 
| 8 | 
            +
              s.version = "0.0.6"
         | 
| 9 9 |  | 
| 10 10 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
         | 
| 11 11 | 
             
              s.authors = ["Kasper Johansen"]
         | 
| 12 | 
            -
              s.date = "2012-09- | 
| 12 | 
            +
              s.date = "2012-09-30"
         | 
| 13 13 | 
             
              s.description = "Ruby-library for controlling PulseAudio via 'pactl'."
         | 
| 14 14 | 
             
              s.email = "k@spernj.org"
         | 
| 15 15 | 
             
              s.executables = ["pulseaudio_volume.rb"]
         | 
| @@ -63,6 +63,7 @@ Gem::Specification.new do |s| | |
| 63 63 | 
             
                  s.add_runtime_dependency(%q<gir_ffi>, [">= 0"])
         | 
| 64 64 | 
             
                  s.add_runtime_dependency(%q<gtk3assist>, [">= 0"])
         | 
| 65 65 | 
             
                  s.add_runtime_dependency(%q<gettext>, [">= 0"])
         | 
| 66 | 
            +
                  s.add_runtime_dependency(%q<knjrbfw>, [">= 0"])
         | 
| 66 67 | 
             
                  s.add_development_dependency(%q<rspec>, ["~> 2.8.0"])
         | 
| 67 68 | 
             
                  s.add_development_dependency(%q<rdoc>, ["~> 3.12"])
         | 
| 68 69 | 
             
                  s.add_development_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| @@ -72,6 +73,7 @@ Gem::Specification.new do |s| | |
| 72 73 | 
             
                  s.add_dependency(%q<gir_ffi>, [">= 0"])
         | 
| 73 74 | 
             
                  s.add_dependency(%q<gtk3assist>, [">= 0"])
         | 
| 74 75 | 
             
                  s.add_dependency(%q<gettext>, [">= 0"])
         | 
| 76 | 
            +
                  s.add_dependency(%q<knjrbfw>, [">= 0"])
         | 
| 75 77 | 
             
                  s.add_dependency(%q<rspec>, ["~> 2.8.0"])
         | 
| 76 78 | 
             
                  s.add_dependency(%q<rdoc>, ["~> 3.12"])
         | 
| 77 79 | 
             
                  s.add_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| @@ -82,6 +84,7 @@ Gem::Specification.new do |s| | |
| 82 84 | 
             
                s.add_dependency(%q<gir_ffi>, [">= 0"])
         | 
| 83 85 | 
             
                s.add_dependency(%q<gtk3assist>, [">= 0"])
         | 
| 84 86 | 
             
                s.add_dependency(%q<gettext>, [">= 0"])
         | 
| 87 | 
            +
                s.add_dependency(%q<knjrbfw>, [">= 0"])
         | 
| 85 88 | 
             
                s.add_dependency(%q<rspec>, ["~> 2.8.0"])
         | 
| 86 89 | 
             
                s.add_dependency(%q<rdoc>, ["~> 3.12"])
         | 
| 87 90 | 
             
                s.add_dependency(%q<bundler>, [">= 1.0.0"])
         | 
| @@ -1,16 +1,22 @@ | |
| 1 1 | 
             
            #!/usr/bin/env ruby
         | 
| 2 2 |  | 
| 3 | 
            -
             | 
| 4 | 
            -
            require "../lib/pulseaudio.rb"
         | 
| 3 | 
            +
            require "#{File.realpath(File.dirname(__FILE__))}/../lib/pulseaudio.rb"
         | 
| 5 4 |  | 
| 6 5 | 
             
            require "rubygems"
         | 
| 7 6 | 
             
            require "gir_ffi"
         | 
| 8 7 | 
             
            require "gir_ffi-gtk3"
         | 
| 9 | 
            -
            require "/home/kaspernj/Dev/Ruby/Gems/knjrbfw/lib/knjrbfw.rb"
         | 
| 10 8 | 
             
            require "gettext"
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            #Try to load development-version of 'knjrbfw'.
         | 
| 11 | 
            +
            begin
         | 
| 12 | 
            +
              require "#{File.realpath(File.dirname(__FILE__))}/../../knjrbfw/lib/knjrbfw.rb"
         | 
| 13 | 
            +
            rescue LoadError
         | 
| 14 | 
            +
              require "knjrbfw"
         | 
| 15 | 
            +
            end
         | 
| 16 | 
            +
             | 
| 11 17 | 
             
            Knj.gem_require(:Gtk3assist, "gtk3assist")
         | 
| 12 18 |  | 
| 13 | 
            -
            Gtk3assist.enable_threadding
         | 
| 19 | 
            +
            Gtk3assist::Threadding.enable_threadding
         | 
| 14 20 |  | 
| 15 21 | 
             
            def _(str)
         | 
| 16 22 | 
             
              return GetText._(str)
         | 
    
        metadata
    CHANGED
    
    | @@ -2,7 +2,7 @@ | |
| 2 2 | 
             
            name: pulseaudio
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version 
         | 
| 4 4 | 
             
              prerelease: 
         | 
| 5 | 
            -
              version: 0.0. | 
| 5 | 
            +
              version: 0.0.6
         | 
| 6 6 | 
             
            platform: ruby
         | 
| 7 7 | 
             
            authors: 
         | 
| 8 8 | 
             
            - Kasper Johansen
         | 
| @@ -10,7 +10,7 @@ autorequire: | |
| 10 10 | 
             
            bindir: bin
         | 
| 11 11 | 
             
            cert_chain: []
         | 
| 12 12 |  | 
| 13 | 
            -
            date: 2012-09- | 
| 13 | 
            +
            date: 2012-09-30 00:00:00 Z
         | 
| 14 14 | 
             
            dependencies: 
         | 
| 15 15 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 16 16 | 
             
              name: wref
         | 
| @@ -57,8 +57,19 @@ dependencies: | |
| 57 57 | 
             
              prerelease: false
         | 
| 58 58 | 
             
              version_requirements: *id004
         | 
| 59 59 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 60 | 
            -
              name:  | 
| 60 | 
            +
              name: knjrbfw
         | 
| 61 61 | 
             
              requirement: &id005 !ruby/object:Gem::Requirement 
         | 
| 62 | 
            +
                none: false
         | 
| 63 | 
            +
                requirements: 
         | 
| 64 | 
            +
                - - ">="
         | 
| 65 | 
            +
                  - !ruby/object:Gem::Version 
         | 
| 66 | 
            +
                    version: "0"
         | 
| 67 | 
            +
              type: :runtime
         | 
| 68 | 
            +
              prerelease: false
         | 
| 69 | 
            +
              version_requirements: *id005
         | 
| 70 | 
            +
            - !ruby/object:Gem::Dependency 
         | 
| 71 | 
            +
              name: rspec
         | 
| 72 | 
            +
              requirement: &id006 !ruby/object:Gem::Requirement 
         | 
| 62 73 | 
             
                none: false
         | 
| 63 74 | 
             
                requirements: 
         | 
| 64 75 | 
             
                - - ~>
         | 
| @@ -66,10 +77,10 @@ dependencies: | |
| 66 77 | 
             
                    version: 2.8.0
         | 
| 67 78 | 
             
              type: :development
         | 
| 68 79 | 
             
              prerelease: false
         | 
| 69 | 
            -
              version_requirements: * | 
| 80 | 
            +
              version_requirements: *id006
         | 
| 70 81 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 71 82 | 
             
              name: rdoc
         | 
| 72 | 
            -
              requirement: & | 
| 83 | 
            +
              requirement: &id007 !ruby/object:Gem::Requirement 
         | 
| 73 84 | 
             
                none: false
         | 
| 74 85 | 
             
                requirements: 
         | 
| 75 86 | 
             
                - - ~>
         | 
| @@ -77,10 +88,10 @@ dependencies: | |
| 77 88 | 
             
                    version: "3.12"
         | 
| 78 89 | 
             
              type: :development
         | 
| 79 90 | 
             
              prerelease: false
         | 
| 80 | 
            -
              version_requirements: * | 
| 91 | 
            +
              version_requirements: *id007
         | 
| 81 92 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 82 93 | 
             
              name: bundler
         | 
| 83 | 
            -
              requirement: & | 
| 94 | 
            +
              requirement: &id008 !ruby/object:Gem::Requirement 
         | 
| 84 95 | 
             
                none: false
         | 
| 85 96 | 
             
                requirements: 
         | 
| 86 97 | 
             
                - - ">="
         | 
| @@ -88,10 +99,10 @@ dependencies: | |
| 88 99 | 
             
                    version: 1.0.0
         | 
| 89 100 | 
             
              type: :development
         | 
| 90 101 | 
             
              prerelease: false
         | 
| 91 | 
            -
              version_requirements: * | 
| 102 | 
            +
              version_requirements: *id008
         | 
| 92 103 | 
             
            - !ruby/object:Gem::Dependency 
         | 
| 93 104 | 
             
              name: jeweler
         | 
| 94 | 
            -
              requirement: & | 
| 105 | 
            +
              requirement: &id009 !ruby/object:Gem::Requirement 
         | 
| 95 106 | 
             
                none: false
         | 
| 96 107 | 
             
                requirements: 
         | 
| 97 108 | 
             
                - - ~>
         | 
| @@ -99,7 +110,7 @@ dependencies: | |
| 99 110 | 
             
                    version: 1.8.3
         | 
| 100 111 | 
             
              type: :development
         | 
| 101 112 | 
             
              prerelease: false
         | 
| 102 | 
            -
              version_requirements: * | 
| 113 | 
            +
              version_requirements: *id009
         | 
| 103 114 | 
             
            description: Ruby-library for controlling PulseAudio via 'pactl'.
         | 
| 104 115 | 
             
            email: k@spernj.org
         | 
| 105 116 | 
             
            executables: 
         | 
| @@ -153,7 +164,7 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 153 164 | 
             
              requirements: 
         | 
| 154 165 | 
             
              - - ">="
         | 
| 155 166 | 
             
                - !ruby/object:Gem::Version 
         | 
| 156 | 
            -
                  hash: - | 
| 167 | 
            +
                  hash: -1301824168619278043
         | 
| 157 168 | 
             
                  segments: 
         | 
| 158 169 | 
             
                  - 0
         | 
| 159 170 | 
             
                  version: "0"
         |