muxify 0.1.5 → 0.1.10

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.
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