mirror of
https://github.com/tmuxinator/tmuxinator.git
synced 2026-04-30 11:18:31 -05:00
Update Thor dependency and everything else too 🙈 (#959)
* Update dependencies * Revert some things * Fix merged files * feat: add stop_all command (#945) * Start implementation * Fix command, add some docs * Sort cli args * Update cli spec * Fix rubocop issues * feat: Add --no-pre-window option to start command Signed-off-by: Andrew Kofink <ajkofink@gmail.com> * chore: Fix coveralls to run from GH actions Signed-off-by: Andrew Kofink <ajkofink@gmail.com> * chore: Bump tmuxinator to v3.3.4 Signed-off-by: Andrew Kofink <ajkofink@gmail.com> * Implement suggestions * Update readme and changelog * Extract, fix rubocop issues * Fix call issue * Fix alignment * Fix tests * Remove alias * Add alias * Add test for alias * Remove alias test * refactor: fix codeclimate complexity Signed-off-by: Andrew Kofink <ajkofink@gmail.com> --------- Signed-off-by: Andrew Kofink <ajkofink@gmail.com> Co-authored-by: Andrew Kofink <ajkofink@gmail.com> * Add changelog * feat: add stop_all command (#945) * Start implementation * Fix command, add some docs * Sort cli args * Update cli spec * Fix rubocop issues * feat: Add --no-pre-window option to start command Signed-off-by: Andrew Kofink <ajkofink@gmail.com> * chore: Fix coveralls to run from GH actions Signed-off-by: Andrew Kofink <ajkofink@gmail.com> * chore: Bump tmuxinator to v3.3.4 Signed-off-by: Andrew Kofink <ajkofink@gmail.com> * Implement suggestions * Update readme and changelog * Extract, fix rubocop issues * Fix call issue * Fix alignment * Fix tests * Remove alias * Add alias * Add test for alias * Remove alias test * refactor: fix codeclimate complexity Signed-off-by: Andrew Kofink <ajkofink@gmail.com> --------- Signed-off-by: Andrew Kofink <ajkofink@gmail.com> Co-authored-by: Andrew Kofink <ajkofink@gmail.com> * Fix double string freeze * Fix PR feedback, failing tests * Add explaining comment * Fix version parse * Update tmuxinator.gemspec Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Remove XDG depedency --------- Signed-off-by: Andrew Kofink <ajkofink@gmail.com> Co-authored-by: Andrew Kofink <ajkofink@gmail.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
This commit is contained in:
53
.rubocop.yml
53
.rubocop.yml
@@ -4,9 +4,7 @@ AllCops:
|
|||||||
- "db/schema.rb"
|
- "db/schema.rb"
|
||||||
DisplayCopNames: true
|
DisplayCopNames: true
|
||||||
StyleGuideCopsOnly: false
|
StyleGuideCopsOnly: false
|
||||||
TargetRubyVersion: 2.6
|
TargetRubyVersion: 2.7
|
||||||
Rails:
|
|
||||||
Enabled: false
|
|
||||||
Layout/AccessModifierIndentation:
|
Layout/AccessModifierIndentation:
|
||||||
Description: Check indentation of private/protected visibility modifiers.
|
Description: Check indentation of private/protected visibility modifiers.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-public-private-protected
|
||||||
@@ -15,7 +13,7 @@ Layout/AccessModifierIndentation:
|
|||||||
SupportedStyles:
|
SupportedStyles:
|
||||||
- outdent
|
- outdent
|
||||||
- indent
|
- indent
|
||||||
Layout/AlignHash:
|
Layout/HashAlignment:
|
||||||
Description: Align the elements of a hash literal if they span more than one line.
|
Description: Align the elements of a hash literal if they span more than one line.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
EnforcedHashRocketStyle: key
|
EnforcedHashRocketStyle: key
|
||||||
@@ -26,7 +24,7 @@ Layout/AlignHash:
|
|||||||
- always_ignore
|
- always_ignore
|
||||||
- ignore_implicit
|
- ignore_implicit
|
||||||
- ignore_explicit
|
- ignore_explicit
|
||||||
Layout/AlignParameters:
|
Layout/ParameterAlignment:
|
||||||
Description: Align the parameters of a method call if they span more than one line.
|
Description: Align the parameters of a method call if they span more than one line.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-double-indent
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-double-indent
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -50,14 +48,6 @@ Style/BarePercentLiterals:
|
|||||||
SupportedStyles:
|
SupportedStyles:
|
||||||
- percent_q
|
- percent_q
|
||||||
- bare_percent
|
- bare_percent
|
||||||
Style/BracesAroundHashParameters:
|
|
||||||
Description: Enforce braces style around hash parameters.
|
|
||||||
Enabled: true
|
|
||||||
EnforcedStyle: no_braces
|
|
||||||
SupportedStyles:
|
|
||||||
- braces
|
|
||||||
- no_braces
|
|
||||||
- context_dependent
|
|
||||||
Layout/CaseIndentation:
|
Layout/CaseIndentation:
|
||||||
Description: Indentation of when in a case/when/[else/]end.
|
Description: Indentation of when in a case/when/[else/]end.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-when-to-case
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#indent-when-to-case
|
||||||
@@ -148,7 +138,7 @@ Naming/FileName:
|
|||||||
Layout/FirstParameterIndentation:
|
Layout/FirstParameterIndentation:
|
||||||
Description: Checks the indentation of the first parameter in a method call.
|
Description: Checks the indentation of the first parameter in a method call.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
EnforcedStyle: special_for_inner_method_call_in_parentheses
|
EnforcedStyle: consistent
|
||||||
SupportedStyles:
|
SupportedStyles:
|
||||||
- consistent
|
- consistent
|
||||||
- special_for_inner_method_call
|
- special_for_inner_method_call
|
||||||
@@ -198,7 +188,7 @@ Layout/IndentationWidth:
|
|||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Width: 2
|
Width: 2
|
||||||
Layout/IndentHash:
|
Layout/FirstHashElementIndentation:
|
||||||
Description: Checks the indentation of the first key in a hash literal.
|
Description: Checks the indentation of the first key in a hash literal.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
EnforcedStyle: special_inside_parentheses
|
EnforcedStyle: special_inside_parentheses
|
||||||
@@ -281,7 +271,7 @@ Style/PercentQLiterals:
|
|||||||
SupportedStyles:
|
SupportedStyles:
|
||||||
- lower_case_q
|
- lower_case_q
|
||||||
- upper_case_q
|
- upper_case_q
|
||||||
Naming/PredicateName:
|
Naming/PredicatePrefix:
|
||||||
Description: Check the names of predicate methods.
|
Description: Check the names of predicate methods.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#bool-methods-qmark
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -289,7 +279,7 @@ Naming/PredicateName:
|
|||||||
- is_
|
- is_
|
||||||
- has_
|
- has_
|
||||||
- have_
|
- have_
|
||||||
NamePrefixBlacklist:
|
ForbiddenPrefixes:
|
||||||
- is_
|
- is_
|
||||||
Exclude:
|
Exclude:
|
||||||
- spec/**/*
|
- spec/**/*
|
||||||
@@ -401,9 +391,9 @@ Layout/SpaceInsideHashLiteralBraces:
|
|||||||
Style/SymbolProc:
|
Style/SymbolProc:
|
||||||
Description: Use symbols as procs instead of blocks when possible.
|
Description: Use symbols as procs instead of blocks when possible.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
IgnoredMethods:
|
AllowedMethods:
|
||||||
- respond_to
|
- respond_to
|
||||||
Layout/TrailingBlankLines:
|
Layout/TrailingEmptyLines:
|
||||||
Description: Checks trailing blank lines and final newline.
|
Description: Checks trailing blank lines and final newline.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#newline-eof
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#newline-eof
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -424,7 +414,7 @@ Style/TrivialAccessors:
|
|||||||
ExactNameMatch: false
|
ExactNameMatch: false
|
||||||
AllowPredicates: false
|
AllowPredicates: false
|
||||||
AllowDSLWriters: false
|
AllowDSLWriters: false
|
||||||
Whitelist:
|
AllowedMethods:
|
||||||
- to_ary
|
- to_ary
|
||||||
- to_a
|
- to_a
|
||||||
- to_c
|
- to_c
|
||||||
@@ -480,7 +470,7 @@ Metrics/CyclomaticComplexity:
|
|||||||
cases needed to validate a method.
|
cases needed to validate a method.
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Max: 6
|
Max: 6
|
||||||
Metrics/LineLength:
|
Layout/LineLength:
|
||||||
Description: Limit lines to 80 characters.
|
Description: Limit lines to 80 characters.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#80-character-limits
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#80-character-limits
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -560,7 +550,7 @@ Style/Alias:
|
|||||||
Description: Use alias_method instead of alias.
|
Description: Use alias_method instead of alias.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#alias-method
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#alias-method
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Layout/AlignArray:
|
Layout/ArrayAlignment:
|
||||||
Description: Align the elements of an array literal if they span more than one line.
|
Description: Align the elements of an array literal if they span more than one line.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#align-multiline-arrays
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -672,7 +662,7 @@ Style/EvenOdd:
|
|||||||
Description: Favor the use of Fixnum#even? && Fixnum#odd?
|
Description: Favor the use of Fixnum#even? && Fixnum#odd?
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#predicate-methods
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#predicate-methods
|
||||||
Enabled: false
|
Enabled: false
|
||||||
Style/FlipFlop:
|
Lint/FlipFlop:
|
||||||
Description: Checks for flip flops
|
Description: Checks for flip flops
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-flip-flops
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-flip-flops
|
||||||
Enabled: false
|
Enabled: false
|
||||||
@@ -683,7 +673,7 @@ Style/IfWithSemicolon:
|
|||||||
Layout/IndentationConsistency:
|
Layout/IndentationConsistency:
|
||||||
Description: Keep indentation straight.
|
Description: Keep indentation straight.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Layout/IndentArray:
|
Layout/FirstArrayElementIndentation:
|
||||||
Description: Checks the indentation of the first element in an array literal.
|
Description: Checks the indentation of the first element in an array literal.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Style/InfiniteLoop:
|
Style/InfiniteLoop:
|
||||||
@@ -838,7 +828,7 @@ Style/StructInheritance:
|
|||||||
Description: Checks for inheritance from Struct.new.
|
Description: Checks for inheritance from Struct.new.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-extend-struct-new
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Layout/Tab:
|
Layout/IndentationStyle:
|
||||||
Description: No hard tabs.
|
Description: No hard tabs.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#spaces-indentation
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -850,10 +840,10 @@ Style/UnlessElse:
|
|||||||
Description: Do not use unless with else. Rewrite these with the positive case first.
|
Description: Do not use unless with else. Rewrite these with the positive case first.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-else-with-unless
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-else-with-unless
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Style/UnneededCapitalW:
|
Style/RedundantCapitalW:
|
||||||
Description: Checks for %W when interpolation is not needed.
|
Description: Checks for %W when interpolation is not needed.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Style/UnneededPercentQ:
|
Style/RedundantPercentQ:
|
||||||
Description: Checks for %q/%Q when single quotes or double quotes would do.
|
Description: Checks for %q/%Q when single quotes or double quotes would do.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-q
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#percent-q
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -911,9 +901,6 @@ Lint/EmptyEnsure:
|
|||||||
Lint/EmptyInterpolation:
|
Lint/EmptyInterpolation:
|
||||||
Description: Checks for empty string interpolation.
|
Description: Checks for empty string interpolation.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Lint/EndInMethod:
|
|
||||||
Description: END blocks should not be placed inside method definitions.
|
|
||||||
Enabled: true
|
|
||||||
Lint/EnsureReturn:
|
Lint/EnsureReturn:
|
||||||
Description: Do not use return in an ensure block.
|
Description: Do not use return in an ensure block.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-return-ensure
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-return-ensure
|
||||||
@@ -921,7 +908,7 @@ Lint/EnsureReturn:
|
|||||||
Security/Eval:
|
Security/Eval:
|
||||||
Description: The use of eval represents a serious security risk.
|
Description: The use of eval represents a serious security risk.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Lint/HandleExceptions:
|
Lint/SuppressedException:
|
||||||
Description: Don't suppress exception.
|
Description: Don't suppress exception.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#dont-hide-exceptions
|
||||||
Enabled: false
|
Enabled: false
|
||||||
@@ -948,7 +935,7 @@ Lint/ShadowingOuterLocalVariable:
|
|||||||
Description: Do not use the same name as outer local variable for block arguments
|
Description: Do not use the same name as outer local variable for block arguments
|
||||||
or block local variables.
|
or block local variables.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Lint/StringConversionInInterpolation:
|
Lint/RedundantStringCoercion:
|
||||||
Description: Checks for Object#to_s usage in string interpolation.
|
Description: Checks for Object#to_s usage in string interpolation.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-to-s
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#no-to-s
|
||||||
Enabled: true
|
Enabled: true
|
||||||
@@ -973,7 +960,7 @@ Lint/UselessAssignment:
|
|||||||
Description: Checks for useless assignment to a local variable.
|
Description: Checks for useless assignment to a local variable.
|
||||||
StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
|
StyleGuide: https://github.com/bbatsov/ruby-style-guide#underscore-unused-vars
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Lint/UselessComparison:
|
Lint/BinaryOperatorWithIdenticalOperands:
|
||||||
Description: Checks for comparison of something with itself.
|
Description: Checks for comparison of something with itself.
|
||||||
Enabled: true
|
Enabled: true
|
||||||
Lint/UselessElseWithoutRescue:
|
Lint/UselessElseWithoutRescue:
|
||||||
|
|||||||
@@ -2,6 +2,9 @@
|
|||||||
## Misc
|
## Misc
|
||||||
- Add Ruby 3.4 to the test matrix
|
- Add Ruby 3.4 to the test matrix
|
||||||
- Document new from session feature in the README
|
- Document new from session feature in the README
|
||||||
|
- Update required Ruby version to >=2.7
|
||||||
|
- Update runtime dependencies to up-to-date versions
|
||||||
|
- Update development dependencies to up-to-date versions
|
||||||
## Fixes
|
## Fixes
|
||||||
- Properly pass args with equals (=) in their values
|
- Properly pass args with equals (=) in their values
|
||||||
- Fix `fish-shell` completion
|
- Fix `fish-shell` completion
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ require "fileutils"
|
|||||||
require "shellwords"
|
require "shellwords"
|
||||||
require "thor"
|
require "thor"
|
||||||
require "thor/version"
|
require "thor/version"
|
||||||
require "xdg"
|
|
||||||
require "yaml"
|
require "yaml"
|
||||||
|
|
||||||
module Tmuxinator
|
module Tmuxinator
|
||||||
|
|||||||
@@ -94,7 +94,7 @@ module Tmuxinator
|
|||||||
|
|
||||||
no_commands do
|
no_commands do
|
||||||
def new_project(name)
|
def new_project(name)
|
||||||
project_file = find_project_file(name, options[:local])
|
project_file = find_project_file(name, local: options[:local])
|
||||||
Kernel.system("$EDITOR #{project_file}") || doctor
|
Kernel.system("$EDITOR #{project_file}") || doctor
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -146,14 +146,14 @@ module Tmuxinator
|
|||||||
end
|
end
|
||||||
}
|
}
|
||||||
|
|
||||||
path = config_path(name, options[:local])
|
path = config_path(name, local: options[:local])
|
||||||
File.open(path, "w") do |f|
|
File.open(path, "w") do |f|
|
||||||
f.write(YAML.dump(yaml))
|
f.write(YAML.dump(yaml))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def find_project_file(name, local = false)
|
def find_project_file(name, local: false)
|
||||||
path = config_path(name, local)
|
path = config_path(name, local: local)
|
||||||
if File.exist?(path)
|
if File.exist?(path)
|
||||||
path
|
path
|
||||||
else
|
else
|
||||||
@@ -161,7 +161,7 @@ module Tmuxinator
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def config_path(name, local = false)
|
def config_path(name, local: false)
|
||||||
if local
|
if local
|
||||||
Tmuxinator::Config::LOCAL_DEFAULTS[0]
|
Tmuxinator::Config::LOCAL_DEFAULTS[0]
|
||||||
else
|
else
|
||||||
@@ -216,7 +216,7 @@ module Tmuxinator
|
|||||||
def show_continuation_prompt
|
def show_continuation_prompt
|
||||||
say
|
say
|
||||||
print "Press ENTER to continue."
|
print "Press ENTER to continue."
|
||||||
STDIN.getc
|
$stdin.getc
|
||||||
end
|
end
|
||||||
|
|
||||||
def kill_project(project)
|
def kill_project(project)
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ module Tmuxinator
|
|||||||
end
|
end
|
||||||
|
|
||||||
def home
|
def home
|
||||||
ENV["HOME"] + "/.tmuxinator"
|
"#{ENV['HOME']}/.tmuxinator"
|
||||||
end
|
end
|
||||||
|
|
||||||
def home?
|
def home?
|
||||||
@@ -31,7 +31,9 @@ module Tmuxinator
|
|||||||
# a custom value. (e.g. if $XDG_CONFIG_HOME is set to ~/my-config, the
|
# a custom value. (e.g. if $XDG_CONFIG_HOME is set to ~/my-config, the
|
||||||
# return value will be ~/my-config/tmuxinator)
|
# return value will be ~/my-config/tmuxinator)
|
||||||
def xdg
|
def xdg
|
||||||
XDG["CONFIG"].to_s + "/tmuxinator"
|
xdg_config_directory = ENV.fetch("XDG_CONFIG_HOME", "~/.config")
|
||||||
|
config_home = File.expand_path(xdg_config_directory)
|
||||||
|
File.join(config_home, "tmuxinator")
|
||||||
end
|
end
|
||||||
|
|
||||||
def xdg?
|
def xdg?
|
||||||
@@ -203,7 +205,7 @@ module Tmuxinator
|
|||||||
name = options[:name]
|
name = options[:name]
|
||||||
options[:force_attach] ||= false
|
options[:force_attach] ||= false
|
||||||
options[:force_detach] ||= false
|
options[:force_detach] ||= false
|
||||||
project_config = options.fetch(:project_config) { false }
|
project_config = options.fetch(:project_config, false)
|
||||||
project_file = if valid_project_config?(project_config)
|
project_file = if valid_project_config?(project_config)
|
||||||
project_config
|
project_config
|
||||||
elsif valid_local_project?(name)
|
elsif valid_local_project?(name)
|
||||||
|
|||||||
@@ -36,11 +36,8 @@ module Tmuxinator
|
|||||||
`on_project_exit`) and will be removed in a future release.
|
`on_project_exit`) and will be removed in a future release.
|
||||||
M
|
M
|
||||||
|
|
||||||
attr_reader :yaml
|
attr_reader :yaml, :force_attach, :force_detach, :custom_name,
|
||||||
attr_reader :force_attach
|
:no_pre_window
|
||||||
attr_reader :force_detach
|
|
||||||
attr_reader :custom_name
|
|
||||||
attr_reader :no_pre_window
|
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
include Tmuxinator::Util
|
include Tmuxinator::Util
|
||||||
@@ -53,8 +50,8 @@ module Tmuxinator
|
|||||||
|
|
||||||
content = render_template(path, binding)
|
content = render_template(path, binding)
|
||||||
YAML.safe_load(content, aliases: true)
|
YAML.safe_load(content, aliases: true)
|
||||||
rescue SyntaxError, StandardError => error
|
rescue SyntaxError, StandardError => e
|
||||||
raise "Failed to parse config file: #{error.message}"
|
raise "Failed to parse config file: #{e.message}"
|
||||||
end
|
end
|
||||||
|
|
||||||
new(yaml, options)
|
new(yaml, options)
|
||||||
@@ -171,13 +168,8 @@ module Tmuxinator
|
|||||||
end
|
end
|
||||||
|
|
||||||
def attach?
|
def attach?
|
||||||
yaml_attach = if yaml["attach"].nil?
|
yaml_attach = yaml["attach"].nil? || yaml["attach"]
|
||||||
true
|
force_attach || !force_detach && yaml_attach
|
||||||
else
|
|
||||||
yaml["attach"]
|
|
||||||
end
|
|
||||||
attach = force_attach || !force_detach && yaml_attach
|
|
||||||
attach
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def pre_window
|
def pre_window
|
||||||
@@ -413,17 +405,16 @@ module Tmuxinator
|
|||||||
|
|
||||||
def pane_title_position_not_valid_warning
|
def pane_title_position_not_valid_warning
|
||||||
print_warning(
|
print_warning(
|
||||||
"The specified pane title position " +
|
"The specified pane title position '#{yaml['pane_title_position']}' " \
|
||||||
"\"#{yaml['pane_title_position']}\" is not valid. " +
|
"is not valid. Please choose one of: top, bottom, or off."
|
||||||
"Please choose one of: top, bottom, or off."
|
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
def pane_titles_not_supported_warning
|
def pane_titles_not_supported_warning
|
||||||
print_warning(
|
print_warning(
|
||||||
"You have enabled pane titles in your configuration, " +
|
"You have enabled pane titles in your configuration, but the " \
|
||||||
"but the feature is not supported by your version of tmux.\n" +
|
"feature is not supported by your version of tmux.\nPlease consider " \
|
||||||
"Please consider upgrading to a version that supports it (tmux >=2.6)."
|
"upgrading to a version that supports it (tmux >=2.6)."
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,7 @@ module Tmuxinator
|
|||||||
end
|
end
|
||||||
|
|
||||||
def layout
|
def layout
|
||||||
yaml["layout"] ? yaml["layout"].shellescape : nil
|
yaml["layout"]&.shellescape
|
||||||
end
|
end
|
||||||
|
|
||||||
def synchronize
|
def synchronize
|
||||||
@@ -139,7 +139,7 @@ module Tmuxinator
|
|||||||
end
|
end
|
||||||
|
|
||||||
def synchronize_before?
|
def synchronize_before?
|
||||||
synchronize == true || synchronize == "before"
|
[true, "before"].include?(synchronize)
|
||||||
end
|
end
|
||||||
|
|
||||||
def synchronize_after?
|
def synchronize_after?
|
||||||
|
|||||||
@@ -924,7 +924,7 @@ describe Tmuxinator::Cli do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "should generate a project file" do
|
it "should generate a project file" do
|
||||||
new_path = described_class.new.find_project_file(name, false)
|
new_path = described_class.new.find_project_file(name, local: false)
|
||||||
expect(new_path).to eq path
|
expect(new_path).to eq path
|
||||||
expect(File).to exist new_path
|
expect(File).to exist new_path
|
||||||
end
|
end
|
||||||
@@ -946,7 +946,7 @@ describe Tmuxinator::Cli do
|
|||||||
end
|
end
|
||||||
|
|
||||||
it "should _not_ generate a new project file" do
|
it "should _not_ generate a new project file" do
|
||||||
new_path = described_class.new.find_project_file(name, false)
|
new_path = described_class.new.find_project_file(name, local: false)
|
||||||
expect(new_path).to eq path
|
expect(new_path).to eq path
|
||||||
expect(File).to exist new_path
|
expect(File).to exist new_path
|
||||||
expect(File.read(new_path)).to match %r{#{extra}}
|
expect(File.read(new_path)).to match %r{#{extra}}
|
||||||
|
|||||||
@@ -55,7 +55,8 @@ describe Tmuxinator::Config do
|
|||||||
|
|
||||||
Dir.mktmpdir do |dir|
|
Dir.mktmpdir do |dir|
|
||||||
config_parent = "#{dir}/non_existent_parent/s"
|
config_parent = "#{dir}/non_existent_parent/s"
|
||||||
allow(XDG).to receive(:[]).with("CONFIG").and_return config_parent
|
allow(ENV).to receive(:fetch).with("XDG_CONFIG_HOME", "~/.config").
|
||||||
|
and_return config_parent
|
||||||
expect(described_class.directory).
|
expect(described_class.directory).
|
||||||
to eq "#{config_parent}/tmuxinator"
|
to eq "#{config_parent}/tmuxinator"
|
||||||
expect(File.directory?("#{config_parent}/tmuxinator")).to be true
|
expect(File.directory?("#{config_parent}/tmuxinator")).to be true
|
||||||
@@ -69,7 +70,6 @@ describe Tmuxinator::Config do
|
|||||||
it "is $TMUXINATOR_CONFIG" do
|
it "is $TMUXINATOR_CONFIG" do
|
||||||
allow(ENV).to receive(:[]).with("TMUXINATOR_CONFIG").
|
allow(ENV).to receive(:[]).with("TMUXINATOR_CONFIG").
|
||||||
and_return "expected"
|
and_return "expected"
|
||||||
# allow(XDG).to receive(:[]).with("CONFIG").and_return "expected"
|
|
||||||
allow(File).to receive(:directory?).and_return true
|
allow(File).to receive(:directory?).and_return true
|
||||||
expect(described_class.environment).to eq "expected"
|
expect(described_class.environment).to eq "expected"
|
||||||
end
|
end
|
||||||
@@ -87,7 +87,6 @@ describe Tmuxinator::Config do
|
|||||||
|
|
||||||
context "environment variable $TMUXINATOR_CONFIG is set and empty" do
|
context "environment variable $TMUXINATOR_CONFIG is set and empty" do
|
||||||
it "is an empty string" do
|
it "is an empty string" do
|
||||||
allow(XDG).to receive(:[]).with("CONFIG").and_return ""
|
|
||||||
allow(ENV).to receive(:[]).with("TMUXINATOR_CONFIG").and_return ""
|
allow(ENV).to receive(:[]).with("TMUXINATOR_CONFIG").and_return ""
|
||||||
expect(described_class.environment).to eq ""
|
expect(described_class.environment).to eq ""
|
||||||
end
|
end
|
||||||
@@ -136,7 +135,7 @@ describe Tmuxinator::Config do
|
|||||||
|
|
||||||
describe "#xdg" do
|
describe "#xdg" do
|
||||||
it "is $XDG_CONFIG_HOME/tmuxinator" do
|
it "is $XDG_CONFIG_HOME/tmuxinator" do
|
||||||
expect(described_class.xdg).to eq "#{XDG['CONFIG_HOME']}/tmuxinator"
|
expect(described_class.xdg).to eq File.expand_path("~/.config/tmuxinator")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -181,7 +180,8 @@ describe Tmuxinator::Config do
|
|||||||
|
|
||||||
before do
|
before do
|
||||||
expect(Tmuxinator::Doctor).to receive(:installed?).and_return(true)
|
expect(Tmuxinator::Doctor).to receive(:installed?).and_return(true)
|
||||||
allow_any_instance_of(Kernel).to receive(:`).with(/tmux\s\-V/).
|
allow_any_instance_of(Kernel).to receive(:`).
|
||||||
|
with(/tmux\s-V/).
|
||||||
and_return("tmux #{version}")
|
and_return("tmux #{version}")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ describe Tmuxinator::WemuxSupport do
|
|||||||
it "renders the template" do
|
it "renders the template" do
|
||||||
expect(File).to receive(:read).at_least(:once) { "wemux ls 2>/dev/null" }
|
expect(File).to receive(:read).at_least(:once) { "wemux ls 2>/dev/null" }
|
||||||
|
|
||||||
expect(instance.render).to match %r{wemux.ls.2>\/dev\/null}
|
expect(instance.render).to match %r{wemux.ls.2>/dev/null}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,6 @@
|
|||||||
|
|
||||||
require "pry"
|
require "pry"
|
||||||
require "simplecov"
|
require "simplecov"
|
||||||
require "xdg"
|
|
||||||
|
|
||||||
SimpleCov.start do
|
SimpleCov.start do
|
||||||
if ENV["CI"]
|
if ENV["CI"]
|
||||||
@@ -59,11 +58,11 @@ def tmux_config(options = {})
|
|||||||
"bell-on-alert off",
|
"bell-on-alert off",
|
||||||
]
|
]
|
||||||
|
|
||||||
if base_index = options.fetch(:base_index) { 1 }
|
if base_index = options.fetch(:base_index, 1)
|
||||||
standard_options << "base-index #{base_index}"
|
standard_options << "base-index #{base_index}"
|
||||||
end
|
end
|
||||||
|
|
||||||
if pane_base_index = options.fetch(:pane_base_index) { 1 }
|
if pane_base_index = options.fetch(:pane_base_index, 1)
|
||||||
standard_options << "pane-base-index #{pane_base_index}"
|
standard_options << "pane-base-index #{pane_base_index}"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -37,22 +37,18 @@ Gem::Specification.new do |s|
|
|||||||
__________________________________________________________
|
__________________________________________________________
|
||||||
}
|
}
|
||||||
|
|
||||||
s.required_rubygems_version = ">= 1.8.23"
|
s.required_rubygems_version = Gem::Requirement.new(">= 2.7")
|
||||||
s.required_ruby_version = ">= 2.6.7"
|
s.required_ruby_version = ">= 2.7"
|
||||||
|
|
||||||
s.add_dependency "erubi", "~> 1.7"
|
s.add_dependency "erubi", "~> 1.13"
|
||||||
s.add_dependency "thor", "~> 1.3.0"
|
s.add_dependency "thor", "~> 1.4.0"
|
||||||
s.add_dependency "xdg", "~> 2.2", ">= 2.2.5"
|
|
||||||
|
|
||||||
s.add_development_dependency "awesome_print", "~> 1.9"
|
s.add_development_dependency "amazing_print", "~> 1.8"
|
||||||
s.add_development_dependency "bundler", ">= 1.3"
|
s.add_development_dependency "bundler", ">= 1.3"
|
||||||
s.add_development_dependency "factory_bot", "~> 6.5"
|
s.add_development_dependency "factory_bot", "~> 6.5"
|
||||||
s.add_development_dependency "pry", "~> 0.15"
|
s.add_development_dependency "pry", "~> 0.15"
|
||||||
s.add_development_dependency "rake", "~> 13.2"
|
s.add_development_dependency "rake", "~> 13.3"
|
||||||
s.add_development_dependency "rspec", "~> 3.3"
|
s.add_development_dependency "rspec", "~> 3.13"
|
||||||
s.add_development_dependency "rubocop", "~> 0.61.1"
|
s.add_development_dependency "rubocop", "~> 1.79"
|
||||||
s.add_development_dependency "simplecov", "~> 0.22"
|
s.add_development_dependency "simplecov", "~> 0.22"
|
||||||
|
|
||||||
# quiet "Gem.gunzip is deprecated" deprecation warning caused by rubocop
|
|
||||||
s.add_development_dependency "unicode-display_width", "~> 1.3"
|
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user