tmuxinator 0.13.0 → 0.14.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: fdb588afecf5c7476cef68fdd5c22348d83a64b027d3371d2b74d18edab1a66b
4
- data.tar.gz: 7babd7dcaa43db5efde616c9b8b4fa3c2cc4325270b7565bea652bd7c4cd63cf
3
+ metadata.gz: cc5773ff4f15a7fe8845c86254fd30a2955fc2b27696868e011c3bd7270b5338
4
+ data.tar.gz: 3af29bcfbcb61b3cf0fc25ef750f5abe027ab227d87b7cdc232f43f3ed497097
5
5
  SHA512:
6
- metadata.gz: 01011f43c1aa4380d6cd2489518b49e6d46cfbfa57838dfb2f0ff2f93c74250ea51e864130f60a5b7696823d126f9f519dc0f1f268cac17e97418269e81ba077
7
- data.tar.gz: 689b130644b46a2e49204acb15f4785e313a5bd606c7dc47ad0f7605ba5cf3b35625485eed884f6e6720c713ef46a936cee68c627718e9ad412b53cf156e40ab
6
+ metadata.gz: c47cf13e6a6bf16dca8c92ed7c75717c15bb6c10e012ebb30b6ebe629fd93466f96c0add8d230bb4d42d0e37f7c4324aa76c7c39e63a15b4abda5124ae5dec42
7
+ data.tar.gz: f3f676e33b049051b264eaec47eaaca6ce4b3d3ce67e96a8857599216e60269ec3fe28c34bee490151fdfdc94269477904fa256fd9ff6ba58e53299a2ef82ebc
@@ -7,24 +7,9 @@ require "xdg"
7
7
  require "yaml"
8
8
 
9
9
  module Tmuxinator
10
- SUPPORTED_TMUX_VERSIONS = [
11
- 1.5,
12
- 1.6,
13
- 1.7,
14
- 1.8,
15
- 1.9,
16
- 2.0,
17
- 2.1,
18
- 2.2,
19
- 2.3,
20
- 2.4,
21
- 2.5,
22
- 2.6,
23
- 2.7,
24
- 2.8
25
- ].freeze
26
10
  end
27
11
 
12
+ require "tmuxinator/tmux_version"
28
13
  require "tmuxinator/util"
29
14
  require "tmuxinator/deprecations"
30
15
  require "tmuxinator/wemux_support"
@@ -202,14 +202,27 @@ module Tmuxinator
202
202
  def render_project(project)
203
203
  if project.deprecations.any?
204
204
  project.deprecations.each { |deprecation| say deprecation, :red }
205
- say
206
- print "Press ENTER to continue."
207
- STDIN.getc
205
+ show_continuation_prompt
208
206
  end
209
207
 
210
208
  Kernel.exec(project.render)
211
209
  end
212
210
 
211
+ def version_warning?(suppress_flag)
212
+ !Tmuxinator::TmuxVersion.supported? && !suppress_flag
213
+ end
214
+
215
+ def show_version_warning
216
+ say Tmuxinator::TmuxVersion::UNSUPPORTED_VERSION_MSG, :red
217
+ show_continuation_prompt
218
+ end
219
+
220
+ def show_continuation_prompt
221
+ say
222
+ print "Press ENTER to continue."
223
+ STDIN.getc
224
+ end
225
+
213
226
  def kill_project(project)
214
227
  Kernel.exec(project.kill)
215
228
  end
@@ -224,6 +237,8 @@ module Tmuxinator
224
237
  desc: "Give the session a different name"
225
238
  method_option "project-config", aliases: "-p",
226
239
  desc: "Path to project config file"
240
+ method_option "suppress-tmux-version-warning",
241
+ desc: "Don't show a warning for unsupported tmux versions"
227
242
 
228
243
  def start(name = nil, *args)
229
244
  # project-config takes precedence over a named project in the case that
@@ -241,25 +256,41 @@ module Tmuxinator
241
256
  project_config: options["project-config"]
242
257
  }
243
258
 
259
+ show_version_warning if version_warning?(
260
+ options["suppress-tmux-version-warning"]
261
+ )
262
+
244
263
  project = create_project(params)
245
264
  render_project(project)
246
265
  end
247
266
 
248
267
  desc "stop [PROJECT]", COMMANDS[:stop]
249
268
  map "st" => :stop
269
+ method_option "suppress-tmux-version-warning",
270
+ desc: "Don't show a warning for unsupported tmux versions"
250
271
 
251
272
  def stop(name)
252
273
  params = {
253
274
  name: name
254
275
  }
276
+ show_version_warning if version_warning?(
277
+ options["suppress-tmux-version-warning"]
278
+ )
279
+
255
280
  project = create_project(params)
256
281
  kill_project(project)
257
282
  end
258
283
 
259
284
  desc "local", COMMANDS[:local]
260
285
  map "." => :local
286
+ method_option "suppress-tmux-version-warning",
287
+ desc: "Don't show a warning for unsupported tmux versions"
261
288
 
262
289
  def local
290
+ show_version_warning if version_warning?(
291
+ options["suppress-tmux-version-warning"]
292
+ )
293
+
263
294
  render_project(create_project(attach: options[:attach]))
264
295
  end
265
296
 
@@ -34,11 +34,6 @@ module Tmuxinator
34
34
  DEPRECATION: The `post` option has been replaced by project hooks and will
35
35
  not be supported anymore.
36
36
  M
37
- TMUX_MASTER_DEP_MSG = <<-M
38
- DEPRECATION: You are running tmuxinator with an unsupported version of tmux.
39
- Please consider using a supported version:
40
- (#{Tmuxinator::SUPPORTED_TMUX_VERSIONS.join(', ')})
41
- M
42
37
 
43
38
  attr_reader :yaml
44
39
  attr_reader :force_attach
@@ -276,8 +271,7 @@ module Tmuxinator
276
271
  cli_args?,
277
272
  legacy_synchronize?,
278
273
  pre?,
279
- post?,
280
- unsupported_version?
274
+ post?
281
275
  ]
282
276
  end
283
277
 
@@ -288,8 +282,7 @@ module Tmuxinator
288
282
  CLIARGS_DEP_MSG,
289
283
  SYNC_DEP_MSG,
290
284
  PRE_DEP_MSG,
291
- POST_DEP_MSG,
292
- TMUX_MASTER_DEP_MSG
285
+ POST_DEP_MSG
293
286
  ]
294
287
  end
295
288
 
@@ -321,10 +314,6 @@ module Tmuxinator
321
314
  yaml["post"]
322
315
  end
323
316
 
324
- def unsupported_version?
325
- !Tmuxinator::SUPPORTED_TMUX_VERSIONS.include?(Tmuxinator::Config.version)
326
- end
327
-
328
317
  def get_pane_base_index
329
318
  tmux_config["pane-base-index"]
330
319
  end
@@ -0,0 +1,29 @@
1
+ module Tmuxinator
2
+ module TmuxVersion
3
+ SUPPORTED_TMUX_VERSIONS = [
4
+ 1.5,
5
+ 1.6,
6
+ 1.7,
7
+ 1.8,
8
+ 1.9,
9
+ 2.0,
10
+ 2.1,
11
+ 2.2,
12
+ 2.3,
13
+ 2.4,
14
+ 2.5,
15
+ 2.6,
16
+ 2.7,
17
+ 2.8
18
+ ].freeze
19
+ UNSUPPORTED_VERSION_MSG = <<-MSG.freeze
20
+ WARNING: You are running tmuxinator with an unsupported version of tmux.
21
+ Please consider using a supported version:
22
+ (#{SUPPORTED_TMUX_VERSIONS.join(', ')})
23
+ MSG
24
+
25
+ def self.supported?(version = Tmuxinator::Config.version)
26
+ SUPPORTED_TMUX_VERSIONS.include?(version)
27
+ end
28
+ end
29
+ end
@@ -1,3 +1,3 @@
1
1
  module Tmuxinator
2
- VERSION = "0.13.0".freeze
2
+ VERSION = "0.14.0".freeze
3
3
  end
@@ -207,6 +207,47 @@ describe Tmuxinator::Cli do
207
207
  end
208
208
  end
209
209
 
210
+ shared_examples_for :unsupported_version_message do |*args|
211
+ before do
212
+ ARGV.replace([*args])
213
+ end
214
+
215
+ context "unsupported version" do
216
+ before do
217
+ allow($stdin).to receive_messages(getc: "y")
218
+ allow(Tmuxinator::TmuxVersion).to receive(:supported?).and_return(false)
219
+ end
220
+
221
+ it "prints the warning" do
222
+ out, _err = capture_io { cli.start }
223
+ expect(out).to include "WARNING"
224
+ end
225
+
226
+ context "with --suppress-tmux-version-warning flag" do
227
+ before do
228
+ ARGV.replace([*args, "--suppress-tmux-version-warning"])
229
+ end
230
+
231
+ it "does not print the warning" do
232
+ out, _err = capture_io { cli.start }
233
+ expect(out).not_to include "WARNING"
234
+ end
235
+ end
236
+ end
237
+
238
+ context "supported version" do
239
+ before do
240
+ allow($stdin).to receive_messages(getc: "y")
241
+ allow(Tmuxinator::TmuxVersion).to receive(:supported?).and_return(true)
242
+ end
243
+
244
+ it "does not print the warning" do
245
+ out, _err = capture_io { cli.start }
246
+ expect(out).not_to include "WARNING"
247
+ end
248
+ end
249
+ end
250
+
210
251
  describe "#start" do
211
252
  before do
212
253
  ARGV.replace(["start", "foo"])
@@ -255,6 +296,8 @@ describe Tmuxinator::Cli do
255
296
  expect(out).to include "DEPRECATION"
256
297
  end
257
298
  end
299
+
300
+ include_examples :unsupported_version_message, :start, :foo
258
301
  end
259
302
 
260
303
  describe "#stop" do
@@ -273,16 +316,18 @@ describe Tmuxinator::Cli do
273
316
  expect(out).to eq ""
274
317
  end
275
318
  end
319
+
320
+ include_examples :unsupported_version_message, :stop, :foo
276
321
  end
277
322
 
278
323
  describe "#local" do
279
- shared_examples_for :local_project do
280
- before do
281
- allow(Tmuxinator::Config).to receive_messages(validate: project)
282
- allow(Tmuxinator::Config).to receive_messages(version: 1.9)
283
- allow(Kernel).to receive(:exec)
284
- end
324
+ before do
325
+ allow(Tmuxinator::Config).to receive_messages(validate: project)
326
+ allow(Tmuxinator::Config).to receive_messages(version: 1.9)
327
+ allow(Kernel).to receive(:exec)
328
+ end
285
329
 
330
+ shared_examples_for :local_project do
286
331
  it "starts the project" do
287
332
  expect(Kernel).to receive(:exec)
288
333
  out, err = capture_io { cli.start }
@@ -304,6 +349,8 @@ describe Tmuxinator::Cli do
304
349
  end
305
350
  it_should_behave_like :local_project
306
351
  end
352
+
353
+ include_examples :unsupported_version_message, :local
307
354
  end
308
355
 
309
356
  describe "#start(custom_name)" do
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: 0.13.0
4
+ version: 0.14.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: 2018-10-23 00:00:00.000000000 Z
12
+ date: 2018-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: erubis
@@ -113,14 +113,14 @@ dependencies:
113
113
  requirements:
114
114
  - - "~>"
115
115
  - !ruby/object:Gem::Version
116
- version: '0.7'
116
+ version: '0.8'
117
117
  type: :development
118
118
  prerelease: false
119
119
  version_requirements: !ruby/object:Gem::Requirement
120
120
  requirements:
121
121
  - - "~>"
122
122
  - !ruby/object:Gem::Version
123
- version: '0.7'
123
+ version: '0.8'
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: factory_bot
126
126
  requirement: !ruby/object:Gem::Requirement
@@ -197,14 +197,28 @@ dependencies:
197
197
  requirements:
198
198
  - - "~>"
199
199
  - !ruby/object:Gem::Version
200
- version: 0.11.0
200
+ version: '0.16'
201
201
  type: :development
202
202
  prerelease: false
203
203
  version_requirements: !ruby/object:Gem::Requirement
204
204
  requirements:
205
205
  - - "~>"
206
206
  - !ruby/object:Gem::Version
207
- version: 0.11.0
207
+ version: '0.16'
208
+ - !ruby/object:Gem::Dependency
209
+ name: unicode-display_width
210
+ requirement: !ruby/object:Gem::Requirement
211
+ requirements:
212
+ - - "~>"
213
+ - !ruby/object:Gem::Version
214
+ version: '1.3'
215
+ type: :development
216
+ prerelease: false
217
+ version_requirements: !ruby/object:Gem::Requirement
218
+ requirements:
219
+ - - "~>"
220
+ - !ruby/object:Gem::Version
221
+ version: '1.3'
208
222
  description: Create and manage complex tmux sessions easily.
209
223
  email:
210
224
  - allen.bargi@gmail.com
@@ -232,6 +246,7 @@ files:
232
246
  - lib/tmuxinator/hooks/project.rb
233
247
  - lib/tmuxinator/pane.rb
234
248
  - lib/tmuxinator/project.rb
249
+ - lib/tmuxinator/tmux_version.rb
235
250
  - lib/tmuxinator/util.rb
236
251
  - lib/tmuxinator/version.rb
237
252
  - lib/tmuxinator/wemux_support.rb
@@ -294,7 +309,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
294
309
  version: 1.8.23
295
310
  requirements: []
296
311
  rubyforge_project:
297
- rubygems_version: 2.7.6
312
+ rubygems_version: 2.7.7
298
313
  signing_key:
299
314
  specification_version: 4
300
315
  summary: Create and manage complex tmux sessions easily.