terminal_multiplexer 0.1.0 → 0.1.1
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/env
CHANGED
data/lib/terminal-multiplexer.rb
CHANGED
@@ -28,9 +28,9 @@ module Terminal
|
|
28
28
|
session
|
29
29
|
end
|
30
30
|
|
31
|
-
def new_window(name='tab', command='zsh', session_name='default')
|
32
|
-
session = @sessions.find { |s| s.name == session_name }
|
33
31
|
|
32
|
+
def new_window(name='tab', command='zsh')
|
33
|
+
session = get_last_session
|
34
34
|
|
35
35
|
if session == nil
|
36
36
|
say "Warning: No valid session found. Create a default one"
|
@@ -41,8 +41,18 @@ module Terminal
|
|
41
41
|
|
42
42
|
end
|
43
43
|
|
44
|
+
def active_window(num)
|
45
|
+
session = get_last_session
|
46
|
+
session.active_window(num)
|
47
|
+
end
|
48
|
+
|
49
|
+
|
44
50
|
private
|
45
51
|
|
52
|
+
def get_last_session
|
53
|
+
@sessions[-1]
|
54
|
+
end
|
55
|
+
|
46
56
|
def build_multiplexer_command_string
|
47
57
|
m_str = @sessions.collect{ |s| s.plain}.join(' ')
|
48
58
|
m_str
|
@@ -5,8 +5,9 @@ module Terminal
|
|
5
5
|
|
6
6
|
describe Multiplexer do
|
7
7
|
|
8
|
+
let(:multi) { Multiplexer.new }
|
9
|
+
|
8
10
|
describe "#new_session" do
|
9
|
-
let(:multi) { Multiplexer.new }
|
10
11
|
|
11
12
|
it "creates a new session with default name" do
|
12
13
|
multi.new_session
|
@@ -33,27 +34,50 @@ module Terminal
|
|
33
34
|
end
|
34
35
|
|
35
36
|
describe "#new_window" do
|
36
|
-
let(:multi) { Multiplexer.new }
|
37
|
-
|
38
37
|
it "creates a new window for the default session" do
|
39
38
|
multi.new_window
|
40
39
|
multi.send(:build_multiplexer_command_string).should == "new-session -n default zsh\\; new-window -n tab zsh\\; select-window -t:+1\\;"
|
41
40
|
end
|
42
|
-
it "creates
|
41
|
+
it "creates a new window for \"session1\"" do
|
43
42
|
multi.new_session('session1','ksh')
|
44
43
|
multi.new_window
|
45
|
-
multi.send(:build_multiplexer_command_string).should == "new-session -n session1 ksh\\;
|
44
|
+
multi.send(:build_multiplexer_command_string).should == "new-session -n session1 ksh\\; new-window -n tab zsh\\; select-window -t:+1\\;"
|
46
45
|
end
|
47
46
|
|
48
|
-
it "creates
|
47
|
+
it "creates a new window for session \"default\"" do
|
49
48
|
multi.new_session
|
50
49
|
multi.new_window
|
51
50
|
multi.send(:build_multiplexer_command_string).should == "new-session -n default zsh\\; new-window -n tab zsh\\; select-window -t:+1\\;"
|
52
51
|
end
|
53
52
|
|
54
|
-
|
55
|
-
|
56
|
-
|
53
|
+
it "creates 2 windows in session1 and 2 windows in session2 (the last defined session, after creating the windows)" do
|
54
|
+
multi.new_session('session1','ksh')
|
55
|
+
multi.new_window('window1','ksh')
|
56
|
+
multi.new_window('window2','ksh')
|
57
|
+
multi.new_session('session2','ksh')
|
58
|
+
multi.new_window('window3','ksh')
|
59
|
+
multi.new_window('window4','ksh')
|
60
|
+
multi.send(:build_multiplexer_command_string).should == "new-session -n session1 ksh\\; new-window -n window1 ksh\\; new-window -n window2 ksh\\; select-window -t:+1\\; new-session -n session2 ksh\\; new-window -n window3 ksh\\; new-window -n window4 ksh\\; select-window -t:+1\\;"
|
61
|
+
end
|
62
|
+
|
63
|
+
end
|
64
|
+
|
65
|
+
describe "#active_window" do
|
66
|
+
it "selects the window from the last defined session" do
|
67
|
+
multi.new_session('session1','ksh')
|
68
|
+
multi.new_window('window1','ksh')
|
69
|
+
multi.new_window('window2','ksh')
|
70
|
+
multi.active_window(2)
|
71
|
+
multi.send(:build_multiplexer_command_string).should == "new-session -n session1 ksh\\; new-window -n window1 ksh\\; new-window -n window2 ksh\\; select-window -t:+2\\;"
|
72
|
+
end
|
73
|
+
|
74
|
+
it "doesn't matter where you place the window selector. It selects the window from the last defined session" do
|
75
|
+
multi.new_session('session1','ksh')
|
76
|
+
multi.active_window(2)
|
77
|
+
multi.new_window('window1','ksh')
|
78
|
+
multi.new_window('window2','ksh')
|
79
|
+
multi.send(:build_multiplexer_command_string).should == "new-session -n session1 ksh\\; new-window -n window1 ksh\\; new-window -n window2 ksh\\; select-window -t:+2\\;"
|
80
|
+
end
|
57
81
|
end
|
58
82
|
end
|
59
83
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: terminal_multiplexer
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -13,7 +13,7 @@ date: 2012-01-04 00:00:00.000000000Z
|
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: highline
|
16
|
-
requirement: &
|
16
|
+
requirement: &22895840 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,7 +21,7 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *22895840
|
25
25
|
description:
|
26
26
|
email:
|
27
27
|
- dev@fedux.org
|