Class: Hiiro::Tmux::Sessions
- Inherits:
-
Object
- Object
- Hiiro::Tmux::Sessions
- Includes:
- Enumerable
- Defined in:
- lib/hiiro/tmux/sessions.rb
Instance Attribute Summary collapse
-
#sessions ⇒ Object
readonly
Returns the value of attribute sessions.
Class Method Summary collapse
Instance Method Summary collapse
- #attached ⇒ Object
- #detached ⇒ Object
- #each(&block) ⇒ Object
- #empty? ⇒ Boolean
- #find_by_id(id) ⇒ Object
- #find_by_name(name) ⇒ Object
-
#initialize(sessions) ⇒ Sessions
constructor
A new instance of Sessions.
- #name_map ⇒ Object
- #names ⇒ Object
- #size ⇒ Object (also: #count, #length)
Constructor Details
#initialize(sessions) ⇒ Sessions
Returns a new instance of Sessions.
16 17 18 |
# File 'lib/hiiro/tmux/sessions.rb', line 16 def initialize(sessions) @sessions = sessions end |
Instance Attribute Details
#sessions ⇒ Object (readonly)
Returns the value of attribute sessions.
14 15 16 |
# File 'lib/hiiro/tmux/sessions.rb', line 14 def sessions @sessions end |
Class Method Details
.fetch ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/hiiro/tmux/sessions.rb', line 6 def self.fetch output = `tmux list-sessions -F '#{Session::FORMAT}' 2>/dev/null` return new([]) if output.nil? || output.empty? sessions = output.each_line.map { |line| Session.from_format_line(line) }.compact new(sessions) end |
Instance Method Details
#attached ⇒ Object
32 33 34 |
# File 'lib/hiiro/tmux/sessions.rb', line 32 def attached self.class.new(sessions.select(&:attached?)) end |
#detached ⇒ Object
36 37 38 |
# File 'lib/hiiro/tmux/sessions.rb', line 36 def detached self.class.new(sessions.reject(&:attached?)) end |
#each(&block) ⇒ Object
20 21 22 |
# File 'lib/hiiro/tmux/sessions.rb', line 20 def each(&block) sessions.each(&block) end |
#empty? ⇒ Boolean
50 51 52 |
# File 'lib/hiiro/tmux/sessions.rb', line 50 def empty? sessions.empty? end |
#find_by_id(id) ⇒ Object
24 25 26 |
# File 'lib/hiiro/tmux/sessions.rb', line 24 def find_by_id(id) sessions.find { |s| s.id == id } end |
#find_by_name(name) ⇒ Object
28 29 30 |
# File 'lib/hiiro/tmux/sessions.rb', line 28 def find_by_name(name) sessions.find { |s| s.name == name } end |
#name_map ⇒ Object
44 45 46 47 48 |
# File 'lib/hiiro/tmux/sessions.rb', line 44 def name_map sessions.each_with_object({}) do |session, h| h[session.to_s.chomp] = session.name end end |
#names ⇒ Object
40 41 42 |
# File 'lib/hiiro/tmux/sessions.rb', line 40 def names sessions.map(&:name) end |
#size ⇒ Object Also known as: count, length
54 55 56 |
# File 'lib/hiiro/tmux/sessions.rb', line 54 def size sessions.size end |