muxify 0.1.5 → 0.1.10

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: 9c4737c89a2923ba7fe743328b1431802e3576f1d1e7b9a0225c9a058b9cf3cd
4
- data.tar.gz: 158303895c198e9d8ce430397a1c0ff2ee5afec6715b2694a06548f6a80dd91d
3
+ metadata.gz: d7643b48e39c0bdea0bcbe70da3bc38872eec60fb1256209ab462d3894c81ded
4
+ data.tar.gz: f8c00a63134eae01e183340963afe1a8bcd63874d7beeb0ed2a6f4129e54ee6c
5
5
  SHA512:
6
- metadata.gz: 0efec262d17e6d827c2e73afaf64505bded82ce552fafd3cf2b334786629a83acbdc871fb17227a183e247a2deada7d692a961dbe0b80a6bb68b798ce4201f4d
7
- data.tar.gz: 62917a4b44014294f0e5bb7dd9c776fe8f7b7785078e00c8c88ee2e85a5706e7c30b3a6bc1c24be2499585502a6aca777dadd2db235401be6c34488cc3f6db73
6
+ metadata.gz: 9513967b1db9a34a44168798e16619ccd9aff89d1d66046ae466444b3185c3c46b9b44aae223029390c88e7dc512b6bfae62162277987fe18338b4c3bd98b59d
7
+ data.tar.gz: 4c64b6891a1d6de45f3aa439c73f34da09044038964dd02f4a8d9aa5459e940289be6fffd8ba651b1d58cb4d9b4bff5d761b6e917e0697755e49384ff0d055d7
data/.rspec CHANGED
@@ -1,2 +1,3 @@
1
- --format documentation
2
1
  --color
2
+ --format documentation
3
+ --require spec_helper
data/.rubocop.yml ADDED
@@ -0,0 +1,15 @@
1
+ ---
2
+ Layout/SpaceInsideArrayLiteralBrackets:
3
+ EnforcedStyle: no_space
4
+ Layout/SpaceInsideHashLiteralBraces:
5
+ EnforcedStyle: no_space
6
+ Style/Documentation:
7
+ Enabled: false
8
+ Style/StringLiterals:
9
+ Enabled: false
10
+ Style/TrailingCommaInArguments:
11
+ EnforcedStyleForMultiline: comma
12
+ Style/TrailingCommaInArrayLiteral:
13
+ EnforcedStyleForMultiline: comma
14
+ Style/TrailingCommaInHashLiteral:
15
+ EnforcedStyleForMultiline: comma
data/.travis.yml CHANGED
@@ -1,5 +1,10 @@
1
- sudo: false
1
+ ---
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.1
5
- before_install: gem install bundler -v 1.15.1
4
+ - 2.7
5
+ - 3.0
6
+ deploy:
7
+ provider: rubygems
8
+ on:
9
+ branch: main
10
+ edge: true # opt in to dpl v2
data/Gemfile CHANGED
@@ -1,6 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- source "https://rubygems.org"
3
+ source 'https://rubygems.org'
4
4
 
5
5
  # Specify your gem's dependencies in muxify.gemspec
6
6
  gemspec
data/README.md CHANGED
@@ -4,15 +4,15 @@ Sets up consistent tmux development environment for projects.
4
4
 
5
5
  Why?
6
6
 
7
- * Saves time and effort switching projects.
8
- * Ensures consistent layout which is faster to navigate via muscle memory.
9
- * Avoids visual and mental overhead of maintaining numerous tabs.
7
+ - Saves time and effort switching projects.
8
+ - Ensures consistent layout which is faster to navigate via muscle memory.
9
+ - Avoids visual and mental overhead of maintaining numerous tabs.
10
10
 
11
11
  ## Dependencies
12
12
 
13
- * MacOS (may work on Linux)
14
- * Ruby
15
- * Tmux (`which tmux || brew install tmux`)
13
+ - MacOS (may work on Linux)
14
+ - Ruby
15
+ - Tmux (`which tmux || brew install tmux`)
16
16
 
17
17
  ## Installation
18
18
 
@@ -41,25 +41,26 @@ $ mux my_app
41
41
 
42
42
  Depending on its type, this will create the following tmux windows for a project:
43
43
 
44
- * Standard (applies to all projects)
45
- * shell (performs `git fetch` when `.git` is present)
46
- * editor (invokes terminal editor, defaulting to `vim` when `$EDITOR` is unset)
47
- * logs (when present, truncates then tails `log/*.log`)
48
- * Rails (identified by presence of `bin/rails`)
49
- * db (`rails db`)
50
- * console (`rails console`)
51
- * NodeJS (identified by presence of `package.json` when non-Rails)
52
- * console (`node`)
53
- * Elixir (identified by presence of `mix.exs` when non-Phoenix)
54
- * console (`iex -S mix`)
55
- * server (`mix`)
56
- * Elixir/Phoenix (identified by presence of `deps/phoenix`)
57
- * console (`iex -S mix phoenix.server`)
58
- * server (`mix phoenix.server`)
59
- * Django (identified by `requirements.txt` containing `django`)
60
- * db (`python manage.py dbshell`)
61
- * console (`python manage.py shell`)
62
- * server (`python manage.py runserver`)
44
+ - Standard (applies to all projects)
45
+ - shell (performs `git fetch` when `.git` is present)
46
+ - editor (invokes terminal editor, defaulting to `vim` when `$EDITOR` is unset)
47
+ - logs (when present, truncates then tails `log/*.log`)
48
+ - Rails (identified by presence of `bin/rails`)
49
+ - db (`rails db`)
50
+ - console (`rails console`)
51
+ - server (configures puma-dev then `rails server`; see [code](./bin/rails_server_with_puma_dev))
52
+ - NodeJS (identified by presence of `package.json` when non-Rails)
53
+ - console (`node`)
54
+ - Elixir (identified by presence of `mix.exs` when non-Phoenix)
55
+ - console (`iex -S mix`)
56
+ - server (`mix`)
57
+ - Elixir/Phoenix (identified by presence of `deps/phoenix`)
58
+ - console (`iex -S mix phoenix.server`)
59
+ - server (`mix phoenix.server`)
60
+ - Django (identified by `requirements.txt` containing `django`)
61
+ - db (`python manage.py dbshell`)
62
+ - console (`python manage.py shell`)
63
+ - server (`python manage.py runserver`)
63
64
 
64
65
  ## Customising projects
65
66
 
@@ -67,6 +68,7 @@ To add a custom tmux window for a project:
67
68
 
68
69
  1. Create a file called `~/.muxifyrc`.
69
70
  1. Edit it in YAML format; eg to add a tmux window to `my_app` project which is named `server` and invokes `yarn dev`:
71
+
70
72
  ```yaml
71
73
  my_app:
72
74
  windows:
@@ -75,7 +77,7 @@ my_app:
75
77
 
76
78
  ## Thanks
77
79
 
78
- * https://github.com/tmuxinator/tmuxinator
80
+ - https://github.com/tmuxinator/tmuxinator
79
81
 
80
82
  ## Contributing
81
83
 
data/Rakefile CHANGED
@@ -1,8 +1,10 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "bundler/gem_tasks"
4
- require "rspec/core/rake_task"
3
+ require 'bundler/gem_tasks'
4
+ require 'rubocop/rake_task'
5
+ require 'rspec/core/rake_task'
5
6
 
7
+ RuboCop::RakeTask.new
6
8
  RSpec::Core::RakeTask.new(:spec)
7
9
 
8
- task :default => :spec
10
+ task default: %i[rubocop spec]
data/bin/console CHANGED
@@ -1,7 +1,8 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- require "bundler/setup"
4
- require "muxify"
4
+ require 'bundler/setup'
5
+ require 'muxify'
5
6
 
6
7
  # You can add fixtures and/or initialization code here to make experimenting
7
8
  # with your gem easier. You can also use a different console, if you like.
@@ -10,5 +11,5 @@ require "muxify"
10
11
  # require "pry"
11
12
  # Pry.start
12
13
 
13
- require "irb"
14
+ require 'irb'
14
15
  IRB.start(__FILE__)
data/bin/muxify CHANGED
@@ -1,8 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
2
3
 
3
- if File.directory? File.expand_path('../../.git', __FILE__)
4
- $:.unshift File.expand_path('../../lib', __FILE__)
5
- end
4
+ $LOAD_PATH.unshift File.expand_path('../lib', __dir__) if File.directory? File.expand_path('../.git', __dir__)
6
5
 
7
6
  require 'bundler/setup'
8
7
  require 'muxify'
@@ -0,0 +1,53 @@
1
+ #!/usr/bin/env bash
2
+
3
+ # Starts rails server with a random port and configures puma-dev
4
+ # Usage:
5
+ # rails_server_with_puma_dev [HOSTNAME]
6
+ # HOSTNAME should not include the `.test` extension.
7
+ # If HOSTNAME isn't supplied, it defaults to current directory name
8
+ # (underscores are converted to dashes).
9
+
10
+ set -euo pipefail
11
+
12
+ min_port=3000
13
+ max_port=4000
14
+ puma_dev_config_path="$HOME/.puma-dev"
15
+
16
+ find_available_port() {
17
+ netstat -aln | awk -v min_port="$min_port" -v max_port="$max_port" '
18
+ $6 == "LISTEN" {
19
+ if ($4 ~ "[.:][0-9]+$") {
20
+ split($4, a, /[:.]/);
21
+ port = a[length(a)];
22
+ p[port] = 1
23
+ }
24
+ }
25
+ END {
26
+ for (i = min_port; i < max_port && p[i]; i++) {};
27
+ if (i == max_port) { exit 1 };
28
+ print i
29
+ }
30
+ '
31
+ }
32
+
33
+ get_target_hostname() {
34
+ if (( $# == 0 )); then
35
+ echo "$(basename "$(pwd)" | tr '_' '-')"
36
+ else
37
+ echo $1
38
+ fi
39
+ }
40
+
41
+ configure_puma_dev() {
42
+ target_config_path="$puma_dev_config_path/$host"
43
+ echo "Configuring puma-dev: $host.test:$port ($target_config_path)"
44
+ echo "$port" > "$target_config_path"
45
+ puma-dev -stop
46
+ pkill -USR1 puma-dev
47
+ }
48
+
49
+ target_port="$(find_available_port)"
50
+ target_host="$(get_target_hostname "$@")"
51
+
52
+ host="$target_host" port="$target_port" configure_puma_dev
53
+ bundle exec rails server -p "$target_port"
data/bin/rake ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rake' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require 'pathname'
12
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path('bundle', __dir__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require 'rubygems'
27
+ require 'bundler/setup'
28
+
29
+ load Gem.bin_path('rake', 'rake')
data/bin/rspec ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rspec' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require 'pathname'
12
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path('bundle', __dir__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require 'rubygems'
27
+ require 'bundler/setup'
28
+
29
+ load Gem.bin_path('rspec-core', 'rspec')
data/bin/rubocop ADDED
@@ -0,0 +1,29 @@
1
+ #!/usr/bin/env ruby
2
+ # frozen_string_literal: true
3
+
4
+ #
5
+ # This file was generated by Bundler.
6
+ #
7
+ # The application 'rubocop' is installed as part of a gem, and
8
+ # this file is here to facilitate running it.
9
+ #
10
+
11
+ require 'pathname'
12
+ ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../Gemfile',
13
+ Pathname.new(__FILE__).realpath)
14
+
15
+ bundle_binstub = File.expand_path('bundle', __dir__)
16
+
17
+ if File.file?(bundle_binstub)
18
+ if File.read(bundle_binstub, 300) =~ /This file was generated by Bundler/
19
+ load(bundle_binstub)
20
+ else
21
+ abort("Your `bin/bundle` was not generated by Bundler, so this binstub cannot run.
22
+ Replace `bin/bundle` by running `bundle binstubs bundler --force`, then run this command again.")
23
+ end
24
+ end
25
+
26
+ require 'rubygems'
27
+ require 'bundler/setup'
28
+
29
+ load Gem.bin_path('rubocop', 'rubocop')
@@ -11,9 +11,10 @@ module Muxify
11
11
  new(*args).to_yaml
12
12
  end
13
13
 
14
- def initialize(root, name: nil)
14
+ def initialize(root, name: nil, custom_config_path: CUSTOM_CONFIG_PATH)
15
15
  @root = File.expand_path(root)
16
16
  @name = name || File.basename(@root)
17
+ @custom_config_path = custom_config_path
17
18
  end
18
19
 
19
20
  def to_yaml
@@ -22,7 +23,7 @@ module Muxify
22
23
 
23
24
  private
24
25
 
25
- attr_reader :root, :name
26
+ attr_reader :root, :name, :custom_config_path
26
27
 
27
28
  def config
28
29
  {
@@ -41,9 +42,18 @@ module Muxify
41
42
  end
42
43
 
43
44
  def custom_windows
44
- return {} unless File.exist?(CUSTOM_CONFIG_PATH)
45
+ return {} unless custom_config.key?('windows')
45
46
 
46
- YAML.load_file(CUSTOM_CONFIG_PATH).dig(name, 'windows')
47
+ YAML.load_file(custom_config_path).dig(name, 'windows') || {}
48
+ end
49
+
50
+ def custom_config
51
+ return {} unless File.exist?(custom_config_path)
52
+
53
+ yaml = YAML.load_file(custom_config_path)
54
+ return {} unless yaml
55
+
56
+ yaml.fetch(name, {})
47
57
  end
48
58
 
49
59
  class Windows
@@ -56,7 +66,6 @@ module Muxify
56
66
  *shell,
57
67
  *editor,
58
68
  *logs,
59
- *foreman,
60
69
  *rails,
61
70
  *elixir_non_phoenix,
62
71
  *phoenix,
@@ -74,11 +83,9 @@ module Muxify
74
83
  end
75
84
 
76
85
  def init_shell
77
- if git?
78
- 'git fetch; git status'
79
- else
80
- 'echo "Not a git repository."'
81
- end
86
+ return 'echo "Not a git repository."' unless git?
87
+
88
+ 'git fetch; git status'
82
89
  end
83
90
 
84
91
  def git?
@@ -91,6 +98,7 @@ module Muxify
91
98
 
92
99
  def logs
93
100
  return [] if logfiles.empty?
101
+
94
102
  logfiles.each(&method(:truncate_file))
95
103
  [{'logs' => 'tail -f log/*.log'}]
96
104
  end
@@ -103,22 +111,13 @@ module Muxify
103
111
  File.truncate(path, 0)
104
112
  end
105
113
 
106
- def foreman
107
- return [] unless foreman?
108
- [{'foreman' => <<-SH.strip}]
109
- ps aux | grep 'unicorn_rails master' | awk '{print $2}' | xargs kill; foreman start
110
- SH
111
- end
112
-
113
- def foreman?
114
- # TODO?
115
- end
116
-
117
114
  def rails
118
115
  return [] unless rails?
116
+
119
117
  [
120
118
  {'db' => 'rails db'},
121
119
  {'console' => 'rails console'},
120
+ {'server' => File.expand_path('../../bin/rails_server_with_puma_dev', __dir__)},
122
121
  ]
123
122
  end
124
123
 
@@ -128,6 +127,7 @@ module Muxify
128
127
 
129
128
  def elixir_non_phoenix
130
129
  return [] unless elixir_non_phoenix?
130
+
131
131
  [
132
132
  {'console' => 'iex -S mix'},
133
133
  {'server' => 'mix'},
@@ -140,6 +140,7 @@ module Muxify
140
140
 
141
141
  def phoenix
142
142
  return [] unless phoenix?
143
+
143
144
  [
144
145
  {'console' => 'iex -S mix phoenix.server'},
145
146
  {'server' => 'mix phoenix.server'},
@@ -152,6 +153,7 @@ module Muxify
152
153
 
153
154
  def nodejs
154
155
  return [] unless nodejs?
156
+
155
157
  [
156
158
  {'console' => 'node'},
157
159
  ]
@@ -163,6 +165,7 @@ module Muxify
163
165
 
164
166
  def django
165
167
  return [] unless django?
168
+
166
169
  [
167
170
  {'db' => 'python manage.py dbshell'},
168
171
  {'console' => 'python manage.py shell'},
@@ -172,7 +175,7 @@ module Muxify
172
175
 
173
176
  def django?
174
177
  python_requirements = File.join(root, 'requirements.txt')
175
- File.exists?(python_requirements) && File.read(python_requirements).include?('django')
178
+ File.exist?(python_requirements) && File.read(python_requirements).include?('django')
176
179
  end
177
180
 
178
181
  def directory?(relative_path)
@@ -180,7 +183,7 @@ module Muxify
180
183
  end
181
184
 
182
185
  def exists?(relative_path)
183
- File.exists?(File.join(root, relative_path))
186
+ File.exist?(File.join(root, relative_path))
184
187
  end
185
188
  end
186
189
  end
data/lib/muxify/cli.rb CHANGED
@@ -6,19 +6,24 @@ require 'muxify/linker'
6
6
 
7
7
  module Muxify
8
8
  class CLI < Thor
9
- desc "add", "Adds tmuxinator config for current (or supplied) path"
9
+ desc 'add', 'Adds tmuxinator config for current (or supplied) path'
10
10
  def add(root = Dir.pwd)
11
- Muxify::Linker.(root: root)
11
+ Muxify::Linker.call(root: root)
12
12
  end
13
13
 
14
- desc "debug", "Prints tmuxinator config of current (or supplied) path to stdout"
14
+ desc 'debug', 'Prints tmuxinator config of current (or supplied) path to stdout'
15
15
  def debug(root = Dir.pwd)
16
- puts Muxify::Builder.(root)
16
+ puts Muxify::Builder.call(root)
17
17
  end
18
18
 
19
- desc "stop", "Kills tmux session"
19
+ desc 'stop', 'Kills tmux session'
20
20
  def stop(name = File.basename(Dir.pwd))
21
21
  Kernel.system("tmux kill-session -t #{name}")
22
22
  end
23
+
24
+ desc 'version', 'Print current version'
25
+ def version
26
+ puts Muxify::VERSION
27
+ end
23
28
  end
24
29
  end
data/lib/muxify/linker.rb CHANGED
@@ -7,8 +7,8 @@ module Muxify
7
7
  TMUXINATOR_CONFIG_PATH = File.expand_path(File.join(ENV.fetch('HOME'), '.tmuxinator')).freeze
8
8
  private_constant :TMUXINATOR_CONFIG_PATH
9
9
 
10
- def self.call(*args)
11
- new(*args).call
10
+ def self.call(**args)
11
+ new(**args).call
12
12
  end
13
13
 
14
14
  def initialize(root:)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Muxify
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.10'
5
5
  end
data/muxify.gemspec CHANGED
@@ -7,10 +7,10 @@ require 'muxify/version'
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'muxify'
9
9
  spec.version = Muxify::VERSION
10
- spec.authors = ["Zubin Henner"]
10
+ spec.authors = ['Zubin Henner']
11
11
  spec.email = ['zubin@users.noreply.github.com']
12
12
 
13
- spec.summary = "Simple tmux project config"
13
+ spec.summary = 'Simple tmux project config'
14
14
  spec.homepage = 'https://github.com/zubin/muxify'
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
@@ -19,6 +19,7 @@ Gem::Specification.new do |spec|
19
19
  spec.bindir = 'bin'
20
20
  spec.executables = ['muxify']
21
21
  spec.require_paths = ['lib']
22
+ spec.required_ruby_version = '>= 2.7.0'
22
23
 
23
24
  spec.add_dependency 'thor'
24
25
  spec.add_dependency 'tmuxinator'
@@ -26,4 +27,5 @@ Gem::Specification.new do |spec|
26
27
  spec.add_development_dependency 'bundler'
27
28
  spec.add_development_dependency 'rake'
28
29
  spec.add_development_dependency 'rspec'
30
+ spec.add_development_dependency 'rubocop'
29
31
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: muxify
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Zubin Henner
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-01 00:00:00.000000000 Z
11
+ date: 2021-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
83
97
  description:
84
98
  email:
85
99
  - zubin@users.noreply.github.com
@@ -90,12 +104,17 @@ extra_rdoc_files: []
90
104
  files:
91
105
  - ".gitignore"
92
106
  - ".rspec"
107
+ - ".rubocop.yml"
93
108
  - ".travis.yml"
94
109
  - Gemfile
95
110
  - README.md
96
111
  - Rakefile
97
112
  - bin/console
98
113
  - bin/muxify
114
+ - bin/rails_server_with_puma_dev
115
+ - bin/rake
116
+ - bin/rspec
117
+ - bin/rubocop
99
118
  - bin/setup
100
119
  - lib/muxify.rb
101
120
  - lib/muxify/builder.rb
@@ -114,14 +133,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
114
133
  requirements:
115
134
  - - ">="
116
135
  - !ruby/object:Gem::Version
117
- version: '0'
136
+ version: 2.7.0
118
137
  required_rubygems_version: !ruby/object:Gem::Requirement
119
138
  requirements:
120
139
  - - ">="
121
140
  - !ruby/object:Gem::Version
122
141
  version: '0'
123
142
  requirements: []
124
- rubygems_version: 3.0.3
143
+ rubygems_version: 3.0.8
125
144
  signing_key:
126
145
  specification_version: 4
127
146
  summary: Simple tmux project config