tmuxinator 3.2.1 → 3.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 837a353050a6ac064ea463e3e33113a845a1b555a9069c2514045b59440a634b
4
- data.tar.gz: '008ef11a9c0734010632d58c06ea63f9ebc1d46eba0cfb4153c1dc63b1c7b6bc'
3
+ metadata.gz: 63c172a560956a6811c0d20df3bf2f53e32c8b14a6bad84d78b2b7dfd65e8c84
4
+ data.tar.gz: 2b9b9c77ed47a1b98645ccd0eb2292d854df97c4e9dbda69da74a64622d16310
5
5
  SHA512:
6
- metadata.gz: 81c8a46ec5380f78d7db741ee707d69e25ac5d6edb56892e861ebfe06131d1c7d2725f6ce4e8880192564e761ff4e2a4de50087b01addfa0d3a6305df444c4f1
7
- data.tar.gz: 39c755d7aa5c61ff52b225ab1a2a3f5f7eef68c58cfefcd421c217f350e304b2b3f920df61af349d004e7cc53eff61d69e84afd9179fd113a4ca86dda185f039
6
+ metadata.gz: 995b321ee1874e190db8e5bc3c2c0f680edbb3af6148011a7b00e286c3b09b03372896bd60cd89c3a0ae20e3e3143fee5457b3c201e30a0d16bdcceef69a1e50
7
+ data.tar.gz: 48c82f9f431b7a5229332c99fca42fd13726df7052e900ca05d11d43f62a9070531db6acc44245ef7ea269d1716814005afe459590c7034d8bd64424d1154fbc
@@ -19,18 +19,7 @@ cd <%= root || "." %>
19
19
  # Run on_project_first_start command.
20
20
  <%= hook_on_project_first_start %>
21
21
 
22
- # Create the session and the first window. Manually switch to root
23
- # directory if required to support tmux < 1.9
24
- <% if windows.first.root? %>
25
- <% if Tmuxinator::Config.version < 1.9 %>
26
22
  TMUX= <%= tmux_new_session_command %>
27
- <%= windows.first.tmux_window_command_prefix %> <%= "cd #{windows.first.root}".shellescape %> C-m
28
- <%- else -%>
29
- TMUX= <%= tmux_new_session_command %> -c <%= windows.first.root.shellescape %>
30
- <% end %>
31
- <%- else -%>
32
- TMUX= <%= tmux_new_session_command %>
33
- <% end %>
34
23
 
35
24
  <% if Tmuxinator::Config.version < 1.7 %>
36
25
  # Set the default path for versions prior to 1.7
@@ -48,8 +37,8 @@ cd <%= root || "." %>
48
37
  <% end %>
49
38
  <% end %>
50
39
 
51
- # Create other windows.
52
- <% windows.drop(1).each do |window| %>
40
+ # Create windows.
41
+ <% windows.each do |window| %>
53
42
  <%= window.tmux_new_window_command %>
54
43
  <% end %>
55
44
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Tmuxinator
4
- VERSION = "3.2.1"
4
+ VERSION = "3.3.0"
5
5
  end
@@ -36,12 +36,16 @@ module Tmuxinator
36
36
  yaml["synchronize"] || false
37
37
  end
38
38
 
39
+ # The expanded, joined window root path
40
+ # Relative paths are joined to the project root
39
41
  def root
40
- _yaml_root || _project_root
42
+ return _project_root unless _yaml_root
43
+
44
+ File.expand_path(_yaml_root, _project_root).shellescape
41
45
  end
42
46
 
43
47
  def _yaml_root
44
- File.expand_path(yaml["root"]).shellescape if yaml["root"]
48
+ yaml["root"]
45
49
  end
46
50
 
47
51
  def _project_root
@@ -115,7 +119,7 @@ module Tmuxinator
115
119
 
116
120
  def tmux_new_window_command
117
121
  path = root? ? "#{Tmuxinator::Config.default_path_option} #{root}" : nil
118
- "#{project.tmux} new-window #{path} -t #{tmux_window_target} #{tmux_window_name_option}"
122
+ "#{project.tmux} new-window #{path} -k -t #{tmux_window_target} #{tmux_window_name_option}"
119
123
  end
120
124
 
121
125
  def tmux_tiled_layout_command
@@ -7,6 +7,8 @@ describe Tmuxinator::Window do
7
7
  let(:panes) { ["vim", nil, "top"] }
8
8
  let(:window_name) { "editor" }
9
9
  let(:synchronize) { false }
10
+ let(:root) {}
11
+ let(:root?) { root }
10
12
  let(:yaml) do
11
13
  {
12
14
  window_name => {
@@ -16,27 +18,14 @@ describe Tmuxinator::Window do
16
18
  ],
17
19
  "synchronize" => synchronize,
18
20
  "layout" => "main-vertical",
19
- "panes" => panes
20
- }
21
- }
22
- end
23
- let(:yaml_root) do
24
- {
25
- "editor" => {
26
- "root" => "/project/override",
27
- "root?" => true,
28
- "pre" => [
29
- "echo 'I get run in each pane. Before each pane command!'",
30
- nil
31
- ],
32
- "layout" => "main-vertical",
33
- "panes" => panes
21
+ "panes" => panes,
22
+ "root" => root,
23
+ "root?" => root?,
34
24
  }
35
25
  }
36
26
  end
37
27
 
38
28
  let(:window) { described_class.new(yaml, 0, project) }
39
- let(:window_root) { described_class.new(yaml_root, 0, project) }
40
29
 
41
30
  shared_context "window command context" do
42
31
  let(:project) { double(:project) }
@@ -81,9 +70,19 @@ describe Tmuxinator::Window do
81
70
  end
82
71
  end
83
72
 
84
- context "with window root" do
73
+ context "with absolute window root" do
74
+ let(:root) { "/project/override" }
75
+
85
76
  it "gets the window root" do
86
- expect(window_root.root).to include("/project/override")
77
+ expect(window.root).to include("/project/override")
78
+ end
79
+ end
80
+
81
+ context "with relative window root" do
82
+ let(:root) { "relative" }
83
+
84
+ it "joins the project root" do
85
+ expect(window.root).to include("/project/tmuxinator/relative")
87
86
  end
88
87
  end
89
88
  end
@@ -354,7 +353,7 @@ describe Tmuxinator::Window do
354
353
 
355
354
  let(:window_part) { "new-window" }
356
355
  let(:name_part) { window.tmux_window_name_option }
357
- let(:target_part) { "-t #{window.tmux_window_target}" }
356
+ let(:target_part) { "-k -t #{window.tmux_window_target}" }
358
357
  let(:path_part) { "#{path_option} #{project.root}" }
359
358
 
360
359
  let(:path_option) { "-c" }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: tmuxinator
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.2.1
4
+ version: 3.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allen Bargi
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2024-05-23 00:00:00.000000000 Z
12
+ date: 2024-06-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: erubi
@@ -59,20 +59,6 @@ dependencies:
59
59
  - - ">="
60
60
  - !ruby/object:Gem::Version
61
61
  version: 2.2.5
62
- - !ruby/object:Gem::Dependency
63
- name: activesupport
64
- requirement: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "<"
67
- - !ruby/object:Gem::Version
68
- version: 5.0.0
69
- type: :development
70
- prerelease: false
71
- version_requirements: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "<"
74
- - !ruby/object:Gem::Version
75
- version: 5.0.0
76
62
  - !ruby/object:Gem::Dependency
77
63
  name: awesome_print
78
64
  requirement: !ruby/object:Gem::Requirement