Class: Notiffany::Notifier::Tmux::Session

Inherits:
Object
  • Object
show all
Defined in:
lib/notiffany/notifier/tmux/session.rb

Overview

Preserves TMux settings for all tmux sessions

Instance Method Summary collapse

Constructor Details

#initializeSession

Returns a new instance of Session.



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/notiffany/notifier/tmux/session.rb', line 6

def initialize
  @options_store = {}

  # NOTE: we are reading the settings of all clients
  # - regardless of the :display_on_all_clients option

  # Ideally, this should be done incrementally (e.g. if we start with
  # "current" client and then override the :display_on_all_clients to
  # true, only then the option store should be updated to contain
  # settings of all clients
  Client.new(:all).clients.each do |client|
    @options_store[client] = {
      "status-left-bg"  => nil,
      "status-right-bg" => nil,
      "status-left-fg"  => nil,
      "status-right-fg" => nil,
      "message-bg"      => nil,
      "message-fg"      => nil,
      "display-time"    => nil
    }.merge(Client.new(client).parse_options)
  end
end

Instance Method Details

#closeObject



29
30
31
32
33
34
35
36
# File 'lib/notiffany/notifier/tmux/session.rb', line 29

def close
  @options_store.each do |client, options|
    options.each do |key, value|
      Client.new(client).unset(key, value)
    end
  end
  @options_store = nil
end