muxify 0.1.4 → 0.1.9
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 +4 -4
- data/.rspec +2 -1
- data/.rubocop.yml +15 -0
- data/.travis.yml +8 -3
- data/Gemfile +3 -1
- data/README.md +65 -6
- data/Rakefile +7 -3
- data/bin/console +4 -3
- data/bin/muxify +2 -3
- data/bin/rails_server_with_puma_dev +53 -0
- data/bin/rake +29 -0
- data/bin/rspec +29 -0
- data/bin/rubocop +29 -0
- data/lib/muxify.rb +2 -0
- data/lib/muxify/builder.rb +35 -19
- data/lib/muxify/cli.rb +7 -5
- data/lib/muxify/linker.rb +4 -2
- data/lib/muxify/version.rb +3 -1
- data/muxify.gemspec +10 -7
- metadata +35 -17
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 364357540e766dbc1377febee98052f4c0cfebce953bbb388d68c3e6fbac79b7
|
4
|
+
data.tar.gz: be79765ed65d4f32db46eb83ef68c2e491fb63f07a7d15c78de662119e56fe97
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb77c3e0ad0d372471cd3291a99079497e2da1c6b35cc52f80e62b00fedac77ada2d7db2cf1ac685752111d6f926dd13f3d1356216874de4c5ccc4097cb3855c
|
7
|
+
data.tar.gz: 101b579693df736e9a2f34a121321092f95eb1f5a5ab4b5853ebac6c350bf2fbfa24358ad1776202262bbeb11a9188b073d71c8b97f151a0af2ff1c96aff6f16
|
data/.rspec
CHANGED
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
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,24 +1,83 @@
|
|
1
1
|
# Muxify
|
2
2
|
|
3
|
-
|
3
|
+
Sets up consistent tmux development environment for projects.
|
4
|
+
|
5
|
+
Why?
|
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.
|
10
|
+
|
11
|
+
## Dependencies
|
12
|
+
|
13
|
+
- MacOS (may work on Linux)
|
14
|
+
- Ruby
|
15
|
+
- Tmux (`which tmux || brew install tmux`)
|
4
16
|
|
5
17
|
## Installation
|
6
18
|
|
7
19
|
```sh
|
8
|
-
|
9
|
-
sudo gem install muxify
|
20
|
+
$ gem install muxify
|
10
21
|
```
|
11
22
|
|
12
23
|
## Usage
|
13
24
|
|
14
25
|
```sh
|
15
|
-
muxify
|
16
|
-
|
26
|
+
$ muxify -h
|
27
|
+
|
28
|
+
Commands:
|
29
|
+
muxify add # Adds tmuxinator config for current (or supplied) path
|
30
|
+
muxify debug # Prints tmuxinator config of current (or supplied) path to stdout
|
31
|
+
muxify help [COMMAND] # Describe available commands or one specific command
|
32
|
+
muxify stop # Kills tmux session
|
33
|
+
```
|
34
|
+
|
35
|
+
For example, add a project like so:
|
36
|
+
|
37
|
+
```sh
|
38
|
+
$ muxify add /path/to/my_app
|
39
|
+
$ mux my_app
|
40
|
+
```
|
41
|
+
|
42
|
+
Depending on its type, this will create the following tmux windows for a project:
|
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
|
+
- 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`)
|
64
|
+
|
65
|
+
## Customising projects
|
66
|
+
|
67
|
+
To add a custom tmux window for a project:
|
68
|
+
|
69
|
+
1. Create a file called `~/.muxifyrc`.
|
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
|
+
|
72
|
+
```yaml
|
73
|
+
my_app:
|
74
|
+
windows:
|
75
|
+
server: yarn dev
|
17
76
|
```
|
18
77
|
|
19
78
|
## Thanks
|
20
79
|
|
21
|
-
|
80
|
+
- https://github.com/tmuxinator/tmuxinator
|
22
81
|
|
23
82
|
## Contributing
|
24
83
|
|
data/Rakefile
CHANGED
@@ -1,6 +1,10 @@
|
|
1
|
-
|
2
|
-
require "rspec/core/rake_task"
|
1
|
+
# frozen_string_literal: true
|
3
2
|
|
3
|
+
require 'bundler/gem_tasks'
|
4
|
+
require 'rubocop/rake_task'
|
5
|
+
require 'rspec/core/rake_task'
|
6
|
+
|
7
|
+
RuboCop::RakeTask.new
|
4
8
|
RSpec::Core::RakeTask.new(:spec)
|
5
9
|
|
6
|
-
task :
|
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
|
4
|
-
require
|
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
|
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('
|
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')
|
data/lib/muxify.rb
CHANGED
data/lib/muxify/builder.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'yaml'
|
2
4
|
|
3
5
|
module Muxify
|
@@ -9,9 +11,10 @@ module Muxify
|
|
9
11
|
new(*args).to_yaml
|
10
12
|
end
|
11
13
|
|
12
|
-
def initialize(root, name: nil)
|
14
|
+
def initialize(root, name: nil, custom_config_path: CUSTOM_CONFIG_PATH)
|
13
15
|
@root = File.expand_path(root)
|
14
16
|
@name = name || File.basename(@root)
|
17
|
+
@custom_config_path = custom_config_path
|
15
18
|
end
|
16
19
|
|
17
20
|
def to_yaml
|
@@ -20,7 +23,7 @@ module Muxify
|
|
20
23
|
|
21
24
|
private
|
22
25
|
|
23
|
-
attr_reader :root, :name
|
26
|
+
attr_reader :root, :name, :custom_config_path
|
24
27
|
|
25
28
|
def config
|
26
29
|
{
|
@@ -39,7 +42,18 @@ module Muxify
|
|
39
42
|
end
|
40
43
|
|
41
44
|
def custom_windows
|
42
|
-
|
45
|
+
return {} unless custom_config.key?('windows')
|
46
|
+
|
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, {})
|
43
57
|
end
|
44
58
|
|
45
59
|
class Windows
|
@@ -52,7 +66,6 @@ module Muxify
|
|
52
66
|
*shell,
|
53
67
|
*editor,
|
54
68
|
*logs,
|
55
|
-
*foreman,
|
56
69
|
*rails,
|
57
70
|
*elixir_non_phoenix,
|
58
71
|
*phoenix,
|
@@ -70,11 +83,9 @@ module Muxify
|
|
70
83
|
end
|
71
84
|
|
72
85
|
def init_shell
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
'echo "Not a git repository."'
|
77
|
-
end
|
86
|
+
return 'echo "Not a git repository."' unless git?
|
87
|
+
|
88
|
+
'git fetch; git status'
|
78
89
|
end
|
79
90
|
|
80
91
|
def git?
|
@@ -86,26 +97,27 @@ module Muxify
|
|
86
97
|
end
|
87
98
|
|
88
99
|
def logs
|
89
|
-
return [] if
|
100
|
+
return [] if logfiles.empty?
|
101
|
+
|
102
|
+
logfiles.each(&method(:truncate_file))
|
90
103
|
[{'logs' => 'tail -f log/*.log'}]
|
91
104
|
end
|
92
105
|
|
93
|
-
def
|
94
|
-
|
95
|
-
[{'foreman' => <<-SH.strip}]
|
96
|
-
ps aux | grep 'unicorn_rails master' | awk '{print $2}' | xargs kill; foreman start
|
97
|
-
SH
|
106
|
+
def logfiles
|
107
|
+
@logfiles ||= Dir["#{root}/log/*.log"]
|
98
108
|
end
|
99
109
|
|
100
|
-
def
|
101
|
-
|
110
|
+
def truncate_file(path)
|
111
|
+
File.truncate(path, 0)
|
102
112
|
end
|
103
113
|
|
104
114
|
def rails
|
105
115
|
return [] unless rails?
|
116
|
+
|
106
117
|
[
|
107
118
|
{'db' => 'rails db'},
|
108
119
|
{'console' => 'rails console'},
|
120
|
+
{'server' => File.expand_path('../../bin/rails_server_with_puma_dev', __dir__)},
|
109
121
|
]
|
110
122
|
end
|
111
123
|
|
@@ -115,6 +127,7 @@ module Muxify
|
|
115
127
|
|
116
128
|
def elixir_non_phoenix
|
117
129
|
return [] unless elixir_non_phoenix?
|
130
|
+
|
118
131
|
[
|
119
132
|
{'console' => 'iex -S mix'},
|
120
133
|
{'server' => 'mix'},
|
@@ -127,6 +140,7 @@ module Muxify
|
|
127
140
|
|
128
141
|
def phoenix
|
129
142
|
return [] unless phoenix?
|
143
|
+
|
130
144
|
[
|
131
145
|
{'console' => 'iex -S mix phoenix.server'},
|
132
146
|
{'server' => 'mix phoenix.server'},
|
@@ -139,6 +153,7 @@ module Muxify
|
|
139
153
|
|
140
154
|
def nodejs
|
141
155
|
return [] unless nodejs?
|
156
|
+
|
142
157
|
[
|
143
158
|
{'console' => 'node'},
|
144
159
|
]
|
@@ -150,6 +165,7 @@ module Muxify
|
|
150
165
|
|
151
166
|
def django
|
152
167
|
return [] unless django?
|
168
|
+
|
153
169
|
[
|
154
170
|
{'db' => 'python manage.py dbshell'},
|
155
171
|
{'console' => 'python manage.py shell'},
|
@@ -159,7 +175,7 @@ module Muxify
|
|
159
175
|
|
160
176
|
def django?
|
161
177
|
python_requirements = File.join(root, 'requirements.txt')
|
162
|
-
File.
|
178
|
+
File.exist?(python_requirements) && File.read(python_requirements).include?('django')
|
163
179
|
end
|
164
180
|
|
165
181
|
def directory?(relative_path)
|
@@ -167,7 +183,7 @@ module Muxify
|
|
167
183
|
end
|
168
184
|
|
169
185
|
def exists?(relative_path)
|
170
|
-
File.
|
186
|
+
File.exist?(File.join(root, relative_path))
|
171
187
|
end
|
172
188
|
end
|
173
189
|
end
|
data/lib/muxify/cli.rb
CHANGED
@@ -1,20 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'thor'
|
2
4
|
require 'muxify/builder'
|
3
5
|
require 'muxify/linker'
|
4
6
|
|
5
7
|
module Muxify
|
6
8
|
class CLI < Thor
|
7
|
-
desc
|
9
|
+
desc 'add', 'Adds tmuxinator config for current (or supplied) path'
|
8
10
|
def add(root = Dir.pwd)
|
9
|
-
Muxify::Linker.(root: root)
|
11
|
+
Muxify::Linker.call(root: root)
|
10
12
|
end
|
11
13
|
|
12
|
-
desc
|
14
|
+
desc 'debug', 'Prints tmuxinator config of current (or supplied) path to stdout'
|
13
15
|
def debug(root = Dir.pwd)
|
14
|
-
puts Muxify::Builder.(root)
|
16
|
+
puts Muxify::Builder.call(root)
|
15
17
|
end
|
16
18
|
|
17
|
-
desc
|
19
|
+
desc 'stop', 'Kills tmux session'
|
18
20
|
def stop(name = File.basename(Dir.pwd))
|
19
21
|
Kernel.system("tmux kill-session -t #{name}")
|
20
22
|
end
|
data/lib/muxify/linker.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'fileutils'
|
2
4
|
|
3
5
|
module Muxify
|
@@ -5,8 +7,8 @@ module Muxify
|
|
5
7
|
TMUXINATOR_CONFIG_PATH = File.expand_path(File.join(ENV.fetch('HOME'), '.tmuxinator')).freeze
|
6
8
|
private_constant :TMUXINATOR_CONFIG_PATH
|
7
9
|
|
8
|
-
def self.call(
|
9
|
-
new(
|
10
|
+
def self.call(**args)
|
11
|
+
new(**args).call
|
10
12
|
end
|
11
13
|
|
12
14
|
def initialize(root:)
|
data/lib/muxify/version.rb
CHANGED
data/muxify.gemspec
CHANGED
@@ -1,15 +1,16 @@
|
|
1
|
-
#
|
2
|
-
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
3
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
5
|
require 'muxify/version'
|
5
6
|
|
6
7
|
Gem::Specification.new do |spec|
|
7
8
|
spec.name = 'muxify'
|
8
9
|
spec.version = Muxify::VERSION
|
9
|
-
spec.authors = [
|
10
|
+
spec.authors = ['Zubin Henner']
|
10
11
|
spec.email = ['zubin@users.noreply.github.com']
|
11
12
|
|
12
|
-
spec.summary =
|
13
|
+
spec.summary = 'Simple tmux project config'
|
13
14
|
spec.homepage = 'https://github.com/zubin/muxify'
|
14
15
|
|
15
16
|
spec.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -18,11 +19,13 @@ Gem::Specification.new do |spec|
|
|
18
19
|
spec.bindir = 'bin'
|
19
20
|
spec.executables = ['muxify']
|
20
21
|
spec.require_paths = ['lib']
|
22
|
+
spec.required_ruby_version = '>= 2.7.0'
|
21
23
|
|
22
24
|
spec.add_dependency 'thor'
|
23
25
|
spec.add_dependency 'tmuxinator'
|
24
26
|
|
25
|
-
spec.add_development_dependency 'bundler'
|
26
|
-
spec.add_development_dependency 'rake'
|
27
|
-
spec.add_development_dependency 'rspec'
|
27
|
+
spec.add_development_dependency 'bundler'
|
28
|
+
spec.add_development_dependency 'rake'
|
29
|
+
spec.add_development_dependency 'rspec'
|
30
|
+
spec.add_development_dependency 'rubocop'
|
28
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.
|
4
|
+
version: 0.1.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Zubin Henner
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-06-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
@@ -42,44 +42,58 @@ dependencies:
|
|
42
42
|
name: bundler
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - "
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
54
|
+
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rake
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: '
|
61
|
+
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- - "
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: '
|
68
|
+
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rspec
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- - "
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rubocop
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
74
88
|
- !ruby/object:Gem::Version
|
75
|
-
version: '
|
89
|
+
version: '0'
|
76
90
|
type: :development
|
77
91
|
prerelease: false
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
79
93
|
requirements:
|
80
|
-
- - "
|
94
|
+
- - ">="
|
81
95
|
- !ruby/object:Gem::Version
|
82
|
-
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,15 +133,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
133
|
requirements:
|
115
134
|
- - ">="
|
116
135
|
- !ruby/object:Gem::Version
|
117
|
-
version:
|
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
|
-
|
125
|
-
rubygems_version: 2.7.3
|
143
|
+
rubygems_version: 3.0.8
|
126
144
|
signing_key:
|
127
145
|
specification_version: 4
|
128
146
|
summary: Simple tmux project config
|