rfix 2.0.4 → 3.0.0

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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/exe/rfix +11 -90
  3. data/lib/rfix.rb +10 -9
  4. data/lib/rfix/branch/reference.rb +2 -2
  5. data/lib/rfix/branch/upstream.rb +2 -4
  6. data/lib/rfix/cli/command.rb +14 -1
  7. data/lib/rfix/cli/command/all.rb +21 -0
  8. data/lib/rfix/cli/command/base.rb +30 -19
  9. data/lib/rfix/cli/command/branch.rb +2 -0
  10. data/lib/rfix/cli/command/help.rb +2 -0
  11. data/lib/rfix/cli/command/info.rb +6 -1
  12. data/lib/rfix/cli/command/local.rb +2 -0
  13. data/lib/rfix/cli/command/origin.rb +2 -0
  14. data/lib/rfix/cli/command/setup.rb +2 -0
  15. data/lib/rfix/cli/command/status.rb +39 -0
  16. data/lib/rfix/collector.rb +69 -0
  17. data/lib/rfix/diff.rb +69 -0
  18. data/lib/rfix/extension/comment_config.rb +15 -0
  19. data/lib/rfix/extension/offense.rb +17 -14
  20. data/lib/rfix/extension/pastel.rb +7 -4
  21. data/lib/rfix/extension/progresbar.rb +15 -0
  22. data/lib/rfix/extension/strings.rb +10 -2
  23. data/lib/rfix/file.rb +5 -3
  24. data/lib/rfix/file/base.rb +21 -14
  25. data/lib/rfix/file/deleted.rb +2 -0
  26. data/lib/rfix/file/ignored.rb +2 -0
  27. data/lib/rfix/file/null.rb +17 -0
  28. data/lib/rfix/file/tracked.rb +39 -23
  29. data/lib/rfix/file/undefined.rb +17 -0
  30. data/lib/rfix/file/untracked.rb +3 -1
  31. data/lib/rfix/formatter.rb +67 -71
  32. data/lib/rfix/highlighter.rb +1 -3
  33. data/lib/rfix/rake/gemfile.rb +26 -23
  34. data/lib/rfix/repository.rb +59 -96
  35. data/lib/rfix/types.rb +24 -14
  36. data/lib/rfix/version.rb +1 -1
  37. data/rfix.gemspec +11 -3
  38. data/vendor/cli-ui/Gemfile +17 -0
  39. data/vendor/cli-ui/Gemfile.lock +60 -0
  40. data/vendor/cli-ui/LICENSE.txt +21 -0
  41. data/vendor/cli-ui/README.md +224 -0
  42. data/vendor/cli-ui/Rakefile +20 -0
  43. data/vendor/cli-ui/bin/console +14 -0
  44. data/vendor/cli-ui/cli-ui.gemspec +25 -0
  45. data/vendor/cli-ui/dev.yml +14 -0
  46. data/vendor/cli-ui/lib/cli/ui.rb +233 -0
  47. data/vendor/cli-ui/lib/cli/ui/ansi.rb +157 -0
  48. data/vendor/cli-ui/lib/cli/ui/color.rb +84 -0
  49. data/vendor/cli-ui/lib/cli/ui/formatter.rb +192 -0
  50. data/vendor/cli-ui/lib/cli/ui/frame.rb +269 -0
  51. data/vendor/cli-ui/lib/cli/ui/frame/frame_stack.rb +98 -0
  52. data/vendor/cli-ui/lib/cli/ui/frame/frame_style.rb +120 -0
  53. data/vendor/cli-ui/lib/cli/ui/frame/frame_style/box.rb +166 -0
  54. data/vendor/cli-ui/lib/cli/ui/frame/frame_style/bracket.rb +139 -0
  55. data/vendor/cli-ui/lib/cli/ui/glyph.rb +84 -0
  56. data/vendor/cli-ui/lib/cli/ui/os.rb +67 -0
  57. data/vendor/cli-ui/lib/cli/ui/printer.rb +59 -0
  58. data/vendor/cli-ui/lib/cli/ui/progress.rb +90 -0
  59. data/vendor/cli-ui/lib/cli/ui/prompt.rb +297 -0
  60. data/vendor/cli-ui/lib/cli/ui/prompt/interactive_options.rb +484 -0
  61. data/vendor/cli-ui/lib/cli/ui/prompt/options_handler.rb +29 -0
  62. data/vendor/cli-ui/lib/cli/ui/spinner.rb +66 -0
  63. data/vendor/cli-ui/lib/cli/ui/spinner/async.rb +40 -0
  64. data/vendor/cli-ui/lib/cli/ui/spinner/spin_group.rb +263 -0
  65. data/vendor/cli-ui/lib/cli/ui/stdout_router.rb +232 -0
  66. data/vendor/cli-ui/lib/cli/ui/terminal.rb +46 -0
  67. data/vendor/cli-ui/lib/cli/ui/truncater.rb +102 -0
  68. data/vendor/cli-ui/lib/cli/ui/version.rb +5 -0
  69. data/vendor/cli-ui/lib/cli/ui/widgets.rb +77 -0
  70. data/vendor/cli-ui/lib/cli/ui/widgets/base.rb +27 -0
  71. data/vendor/cli-ui/lib/cli/ui/widgets/status.rb +61 -0
  72. data/vendor/cli-ui/lib/cli/ui/wrap.rb +56 -0
  73. data/vendor/cli-ui/test/cli/ui/ansi_test.rb +32 -0
  74. data/vendor/cli-ui/test/cli/ui/cli_ui_test.rb +23 -0
  75. data/vendor/cli-ui/test/cli/ui/color_test.rb +40 -0
  76. data/vendor/cli-ui/test/cli/ui/formatter_test.rb +79 -0
  77. data/vendor/cli-ui/test/cli/ui/glyph_test.rb +68 -0
  78. data/vendor/cli-ui/test/cli/ui/printer_test.rb +103 -0
  79. data/vendor/cli-ui/test/cli/ui/progress_test.rb +46 -0
  80. data/vendor/cli-ui/test/cli/ui/prompt/options_handler_test.rb +39 -0
  81. data/vendor/cli-ui/test/cli/ui/prompt_test.rb +348 -0
  82. data/vendor/cli-ui/test/cli/ui/spinner/spin_group_test.rb +39 -0
  83. data/vendor/cli-ui/test/cli/ui/spinner_test.rb +141 -0
  84. data/vendor/cli-ui/test/cli/ui/stdout_router_test.rb +32 -0
  85. data/vendor/cli-ui/test/cli/ui/terminal_test.rb +26 -0
  86. data/vendor/cli-ui/test/cli/ui/truncater_test.rb +31 -0
  87. data/vendor/cli-ui/test/cli/ui/widgets/status_test.rb +49 -0
  88. data/vendor/cli-ui/test/cli/ui/widgets_test.rb +15 -0
  89. data/vendor/cli-ui/test/test_helper.rb +53 -0
  90. data/vendor/cli-ui/tmp/cache/bootsnap/compile-cache/d9/c036af0f3dc494 +0 -0
  91. data/vendor/cli-ui/tmp/cache/bootsnap/load-path-cache +0 -0
  92. data/vendor/dry-cli/lib/dry/cli/command.rb +2 -1
  93. data/vendor/dry-cli/tmp/cache/bootsnap/compile-cache/ff/a22a5daafbd74c +0 -0
  94. data/vendor/dry-cli/tmp/cache/bootsnap/load-path-cache +0 -0
  95. data/vendor/strings-ansi/tmp/cache/bootsnap/compile-cache/79/49cf49407b370e +0 -0
  96. data/vendor/strings-ansi/tmp/cache/bootsnap/load-path-cache +0 -0
  97. metadata +170 -9
  98. data/lib/rfix/extension/string.rb +0 -12
  99. data/lib/rfix/indicator.rb +0 -19
@@ -0,0 +1,39 @@
1
+ require 'test_helper'
2
+
3
+ module CLI
4
+ module UI
5
+ module Spinner
6
+ class SpinGroupTest < MiniTest::Test
7
+ def test_spin_group
8
+ _out, err = capture_io do
9
+ CLI::UI::StdoutRouter.ensure_activated
10
+
11
+ sg = SpinGroup.new
12
+ sg.add('s') do
13
+ true
14
+ end
15
+
16
+ assert(sg.wait)
17
+ end
18
+
19
+ assert_equal('', err)
20
+ end
21
+
22
+ def test_spin_group_auto_debrief_false
23
+ _out, err = capture_io do
24
+ CLI::UI::StdoutRouter.ensure_activated
25
+
26
+ sg = SpinGroup.new(auto_debrief: false)
27
+ sg.add('s') do
28
+ true
29
+ end
30
+
31
+ assert(sg.wait)
32
+ end
33
+
34
+ assert_equal('', err)
35
+ end
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,141 @@
1
+ require 'test_helper'
2
+
3
+ module CLI
4
+ module UI
5
+ class SpinnerTest < MiniTest::Test
6
+ def test_spinner
7
+ out, err = capture_io do
8
+ CLI::UI::StdoutRouter.ensure_activated
9
+ CLI::UI::Spinner.spin('sleeping') do
10
+ end
11
+ end
12
+
13
+ assert_equal('', err)
14
+ assert_match(/sleeping/, out)
15
+ end
16
+
17
+ def test_async
18
+ out, err = capture_io do
19
+ CLI::UI::StdoutRouter.ensure_activated
20
+ spinner = CLI::UI::Spinner::Async.start('sleeping')
21
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
22
+ spinner.stop
23
+ end
24
+
25
+ assert_equal('', err)
26
+ assert_match(/sleeping/, out)
27
+ end
28
+
29
+ def test_updating_title
30
+ out, err = capture_io do
31
+ CLI::UI::StdoutRouter.ensure_activated
32
+ CLI::UI::Spinner.spin('私') do |task|
33
+ assert(task)
34
+ assert_respond_to(task, :update_title)
35
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
36
+ task.update_title('今日')
37
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
38
+ task.update_title('疲れたんだ')
39
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
40
+ end
41
+ end
42
+
43
+ assert_empty(err)
44
+ assert_match(/私/, out)
45
+ assert_match(/今日/, out)
46
+ assert_match(/疲れたんだ/, out)
47
+ end
48
+
49
+ def test_spinner_without_emojis
50
+ with_os_mock_test do
51
+ out, err = capture_io do
52
+ CLI::UI::StdoutRouter.ensure_activated
53
+ spinner = CLI::UI::Spinner::Async.start('sleeping')
54
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
55
+ spinner.stop
56
+ end
57
+
58
+ assert_equal('', err)
59
+ assert_match(/sleeping/, out)
60
+ assert_match(/[\|\\\/]/, out)
61
+ refute_match(/[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]/, out)
62
+ end
63
+ end
64
+
65
+ def test_updating_title_without_emojis
66
+ with_os_mock_test do
67
+ out, err = capture_io do
68
+ CLI::UI::StdoutRouter.ensure_activated
69
+ CLI::UI::Spinner.spin('私') do |task|
70
+ assert(task)
71
+ assert_respond_to(task, :update_title)
72
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
73
+ task.update_title('今日')
74
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
75
+ task.update_title('疲れたんだ')
76
+ sleep(CLI::UI::Spinner::PERIOD * 2.5)
77
+ end
78
+ end
79
+
80
+ assert_empty(err)
81
+ assert_match(/私/, out)
82
+ assert_match(/今日/, out)
83
+ assert_match(/疲れたんだ/, out)
84
+ assert_match(/[\|\\\/]/, out)
85
+ refute_match(/[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]/, out)
86
+ end
87
+ end
88
+
89
+ def test_spinner_task_error_through_raising_exception
90
+ out, err = capture_io do
91
+ CLI::UI::StdoutRouter.ensure_activated
92
+ CLI::UI::Spinner.spin('broken') do
93
+ sleep(CLI::UI::Spinner::PERIOD * 0.5)
94
+ $stderr.puts 'not empty'
95
+ raise 'some error'
96
+ end
97
+ end
98
+
99
+ assert_equal('', err)
100
+ assert_match(/✗/, out)
101
+ assert_match(/RuntimeError: some error/, out)
102
+ assert_match(/STDERR[^\n]*\n[^\n]*not empty/, out)
103
+ assert_match(/STDOUT[^\n]*\n[^\n]*\(empty\)/, out)
104
+ end
105
+
106
+ def test_spinner_task_error_through_returning_error
107
+ out, _ = capture_io do
108
+ CLI::UI::StdoutRouter.ensure_activated
109
+ CLI::UI::Spinner.spin('broken') do
110
+ $stderr.puts 'not empty'
111
+ sleep(CLI::UI::Spinner::PERIOD * 0.5)
112
+ CLI::UI::Spinner::TASK_FAILED
113
+ end
114
+ end
115
+
116
+ assert_match(/✗/, out)
117
+ assert_match(/Task Failed: broken/, out)
118
+ assert_match(/STDERR[^\n]*\n[^\n]*not empty/, out)
119
+ assert_match(/STDOUT[^\n]*\n[^\n]*\(empty\)/, out)
120
+ end
121
+
122
+ private
123
+
124
+ def with_os_mock_test
125
+ classes = [:Spinner, :Glyph]
126
+
127
+ root_path = File.join(File.dirname(__FILE__), '../../../lib/cli/ui')
128
+ files = [
129
+ File.join(root_path, 'spinner.rb'),
130
+ File.join(root_path, 'glyph.rb'),
131
+ ]
132
+
133
+ Dir.glob(File.join(root_path, 'spinner', '*')).each do |file|
134
+ files << file
135
+ end
136
+
137
+ with_os_mock_and_reload(CLI::UI::OS::Windows, classes, files) { yield }
138
+ end
139
+ end
140
+ end
141
+ end
@@ -0,0 +1,32 @@
1
+ require 'test_helper'
2
+
3
+ module CLI
4
+ module UI
5
+ class StdoutRouterTest < MiniTest::Test
6
+ def test_with_id
7
+ out, _ = capture_io do
8
+ StdoutRouter.with_enabled do
9
+ StdoutRouter.with_id(on_streams: [$stdout]) do
10
+ $stdout.puts 'hello'
11
+ end
12
+ end
13
+ end
14
+ assert_match(/\[\d{5}\] hello/, out)
15
+ end
16
+
17
+ def test_with_id_with_argument_errors
18
+ assert_raises(ArgumentError) do
19
+ StdoutRouter.with_id(on_streams: ['a']) do
20
+ $stdout.puts 'hello'
21
+ end
22
+ end
23
+ end
24
+
25
+ def test_current_id
26
+ StdoutRouter.with_id(on_streams: [$stdout]) do |id|
27
+ assert_equal({ id: id, streams: [$stdout] }, StdoutRouter.current_id)
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
@@ -0,0 +1,26 @@
1
+ require 'test_helper'
2
+
3
+ module CLI
4
+ module UI
5
+ class TerminalTest < MiniTest::Test
6
+ def test_width
7
+ skip('flaky')
8
+
9
+ obj = Object.new
10
+ class << obj
11
+ def winsize
12
+ [10, 70]
13
+ end
14
+ end
15
+
16
+ IO.expects(:respond_to?).with(:console).twice.returns(true)
17
+
18
+ IO.expects(:console).returns(obj)
19
+ assert_equal(70, Terminal.width)
20
+
21
+ IO.expects(:console).returns(nil)
22
+ assert_equal(80, Terminal.width)
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,31 @@
1
+ require 'test_helper'
2
+
3
+ module CLI
4
+ module UI
5
+ class TruncaterTest < MiniTest::Test
6
+ MAN = "\u{1f468}" # width=2
7
+ COOKING = "\u{1f373}" # width=2
8
+ ZWJ = "\u{200d}" # width=complicated
9
+
10
+ MAN_COOKING = MAN + ZWJ + COOKING # width=2
11
+
12
+ def test_truncate
13
+ assert_example(3, 'foobar', "fo\x1b[0m…")
14
+ assert_example(5, 'foobar', "foob\x1b[0m…")
15
+ assert_example(6, 'foobar', 'foobar')
16
+ assert_example(6, "foo\x1b[31mbar\x1b[0m", "foo\x1b[31mbar\x1b[0m")
17
+ assert_example(6, "\x1b[31mfoobar", "\x1b[31mfoobar")
18
+ assert_example(3, MAN_COOKING * 2, MAN_COOKING + Truncater::TRUNCATED)
19
+ assert_example(3, 'A' + MAN_COOKING, 'A' + MAN_COOKING)
20
+ assert_example(3, 'AB' + MAN_COOKING, 'AB' + Truncater::TRUNCATED)
21
+ end
22
+
23
+ private
24
+
25
+ def assert_example(width, from, to)
26
+ truncated = CLI::UI::Truncater.call(from, width)
27
+ assert_equal(to.codepoints.map { |c| c.to_s(16) }, truncated.codepoints.map { |c| c.to_s(16) })
28
+ end
29
+ end
30
+ end
31
+ end
@@ -0,0 +1,49 @@
1
+ require('test_helper')
2
+
3
+ module CLI
4
+ module UI
5
+ module Widgets
6
+ class StatusTest < MiniTest::Test
7
+ def setup
8
+ Spinner.index = 0
9
+ end
10
+
11
+ CASES = {
12
+ '1:2:3:4' =>
13
+ "\e[0m\e[1m[\e[0m\e[32m1✓\e[0m\e[38;5;244m,\e[0m\e[31m2✗\e[0m\e[38;5;244m◂\e[0m\e[94m3%s\e[0m" \
14
+ "\e[38;5;244m◂\e[0m\e[97m4\u231b\ufe0e\e[0m\e[1m]\e[0m",
15
+ '0:0:0:1' =>
16
+ "\e[0m\e[1m[\e[0m\e[38;5;244m0✓\e[0m\e[38;5;244m,\e[0m\e[38;5;244m0✗\e[0m\e[38;5;244m◂\e[0m" \
17
+ "\e[38;5;244m0%s\e[0m\e[38;5;244m◂\e[0m\e[97m1\u231b\ufe0e\e[0m\e[1m]\e[0m",
18
+ '0:0:0:0' => "\e[0m\e[1m∅\e[0m",
19
+ }
20
+
21
+ def test_status_widget
22
+ assert_equal(CASES['0:0:0:0'], Widgets::Status.call('0:0:0:0'))
23
+
24
+ assert_equal(
25
+ format(CASES['1:2:3:4'], '⠋'),
26
+ Widgets::Status.call('1:2:3:4'),
27
+ )
28
+
29
+ assert_equal(
30
+ format(CASES['0:0:0:1'], '⠿'),
31
+ Widgets::Status.call('0:0:0:1'),
32
+ )
33
+
34
+ Spinner.index = 1
35
+
36
+ assert_equal(
37
+ format(CASES['0:0:0:1'], '⠿'),
38
+ Widgets::Status.call('0:0:0:1'),
39
+ )
40
+
41
+ assert_equal(
42
+ format(CASES['1:2:3:4'], '⠙'),
43
+ Widgets::Status.call('1:2:3:4'),
44
+ )
45
+ end
46
+ end
47
+ end
48
+ end
49
+ end
@@ -0,0 +1,15 @@
1
+ require('test_helper')
2
+
3
+ module CLI
4
+ module UI
5
+ class WidgetsTest < MiniTest::Test
6
+ def test_widgets
7
+ assert_equal(Widgets::Status, Widgets.lookup('status'))
8
+
9
+ assert_raises(Widgets::InvalidWidgetHandle) do
10
+ Widgets.lookup('nope')
11
+ end
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,53 @@
1
+ addpath = lambda do |p|
2
+ path = File.expand_path("../../#{p}", __FILE__)
3
+ $LOAD_PATH.unshift(path) unless $LOAD_PATH.include?(path)
4
+ end
5
+ addpath.call('lib')
6
+
7
+ require 'cli/ui'
8
+
9
+ # Otherwise, results will vary depending on the context in which we run tests.
10
+ CLI::UI.enable_color = true
11
+
12
+ module CLI
13
+ module UI
14
+ module OS
15
+ # Default to Mac behaviour so running the tests in different environments doesn't lead to different outputs
16
+ def current
17
+ CLI::UI::OS::Mac
18
+ end
19
+ end
20
+ end
21
+ end
22
+
23
+ # Unloads the given classes from CLI::UI, reloads them and stubs the OS to the given one. This is used to run tests
24
+ # on classes with variables that depend on the OS (e.g. Glyph), so that we can mock their state in the context of this
25
+ # block.
26
+ def with_os_mock_and_reload(os, class_names = [], files = [])
27
+ class_names = Array(class_names)
28
+ files = Array(files)
29
+
30
+ CLI::UI::OS.stubs(:current).returns(os)
31
+ class_names.each { |classname| CLI::UI.send(:remove_const, classname) }
32
+ files.each { |file| load(file) }
33
+
34
+ yield
35
+ ensure
36
+ CLI::UI::OS.unstub(:current)
37
+ class_names.each { |classname| CLI::UI.send(:remove_const, classname) }
38
+ files.each { |file| load(file) }
39
+ end
40
+
41
+ require 'fileutils'
42
+ require 'tmpdir'
43
+ require 'tempfile'
44
+
45
+ require 'rubygems'
46
+ require 'bundler/setup'
47
+
48
+ if RUBY_ENGINE !~ /jruby/
49
+ require 'byebug'
50
+ end
51
+
52
+ require 'minitest/autorun'
53
+ require 'mocha/minitest'
@@ -45,10 +45,11 @@ module Dry
45
45
 
46
46
  # @since x.x.x
47
47
  # @api private
48
- attr_accessor :subcommands
48
+ attr_reader :subcommands
49
49
 
50
50
  # @since x.x.x
51
51
  # @api private
52
+ attr_writer :subcommands
52
53
  end
53
54
 
54
55
  # Set the description of the command
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rfix
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.4
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Linus Oleander
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-05-03 00:00:00.000000000 Z
11
+ date: 2021-05-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: bootsnap
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +52,20 @@ dependencies:
38
52
  - - ">="
39
53
  - !ruby/object:Gem::Version
40
54
  version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: concurrent-ruby
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
41
69
  - !ruby/object:Gem::Dependency
42
70
  name: dry-cli
43
71
  requirement: !ruby/object:Gem::Requirement
@@ -185,7 +213,7 @@ dependencies:
185
213
  - !ruby/object:Gem::Version
186
214
  version: 0.85.0
187
215
  - !ruby/object:Gem::Dependency
188
- name: rubocop-ast
216
+ name: rugged
189
217
  requirement: !ruby/object:Gem::Requirement
190
218
  requirements:
191
219
  - - ">="
@@ -199,7 +227,7 @@ dependencies:
199
227
  - !ruby/object:Gem::Version
200
228
  version: '0'
201
229
  - !ruby/object:Gem::Dependency
202
- name: rugged
230
+ name: strings
203
231
  requirement: !ruby/object:Gem::Requirement
204
232
  requirements:
205
233
  - - ">="
@@ -213,7 +241,7 @@ dependencies:
213
241
  - !ruby/object:Gem::Version
214
242
  version: '0'
215
243
  - !ruby/object:Gem::Dependency
216
- name: strings
244
+ name: strings-ansi
217
245
  requirement: !ruby/object:Gem::Requirement
218
246
  requirements:
219
247
  - - ">="
@@ -254,6 +282,34 @@ dependencies:
254
282
  - - ">="
255
283
  - !ruby/object:Gem::Version
256
284
  version: '0'
285
+ - !ruby/object:Gem::Dependency
286
+ name: tty-logger
287
+ requirement: !ruby/object:Gem::Requirement
288
+ requirements:
289
+ - - ">="
290
+ - !ruby/object:Gem::Version
291
+ version: '0'
292
+ type: :runtime
293
+ prerelease: false
294
+ version_requirements: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: '0'
299
+ - !ruby/object:Gem::Dependency
300
+ name: tty-progressbar
301
+ requirement: !ruby/object:Gem::Requirement
302
+ requirements:
303
+ - - ">="
304
+ - !ruby/object:Gem::Version
305
+ version: '0'
306
+ type: :runtime
307
+ prerelease: false
308
+ version_requirements: !ruby/object:Gem::Requirement
309
+ requirements:
310
+ - - ">="
311
+ - !ruby/object:Gem::Version
312
+ version: '0'
257
313
  - !ruby/object:Gem::Dependency
258
314
  name: tty-prompt
259
315
  requirement: !ruby/object:Gem::Requirement
@@ -282,6 +338,48 @@ dependencies:
282
338
  - - ">="
283
339
  - !ruby/object:Gem::Version
284
340
  version: '0'
341
+ - !ruby/object:Gem::Dependency
342
+ name: tty-table
343
+ requirement: !ruby/object:Gem::Requirement
344
+ requirements:
345
+ - - ">="
346
+ - !ruby/object:Gem::Version
347
+ version: '0'
348
+ type: :runtime
349
+ prerelease: false
350
+ version_requirements: !ruby/object:Gem::Requirement
351
+ requirements:
352
+ - - ">="
353
+ - !ruby/object:Gem::Version
354
+ version: '0'
355
+ - !ruby/object:Gem::Dependency
356
+ name: tty-tree
357
+ requirement: !ruby/object:Gem::Requirement
358
+ requirements:
359
+ - - ">="
360
+ - !ruby/object:Gem::Version
361
+ version: '0'
362
+ type: :runtime
363
+ prerelease: false
364
+ version_requirements: !ruby/object:Gem::Requirement
365
+ requirements:
366
+ - - ">="
367
+ - !ruby/object:Gem::Version
368
+ version: '0'
369
+ - !ruby/object:Gem::Dependency
370
+ name: xdg
371
+ requirement: !ruby/object:Gem::Requirement
372
+ requirements:
373
+ - - ">="
374
+ - !ruby/object:Gem::Version
375
+ version: '0'
376
+ type: :runtime
377
+ prerelease: false
378
+ version_requirements: !ruby/object:Gem::Requirement
379
+ requirements:
380
+ - - ">="
381
+ - !ruby/object:Gem::Version
382
+ version: '0'
285
383
  - !ruby/object:Gem::Dependency
286
384
  name: zeitwerk
287
385
  requirement: !ruby/object:Gem::Requirement
@@ -319,6 +417,7 @@ files:
319
417
  - lib/rfix/branch/reference.rb
320
418
  - lib/rfix/branch/upstream.rb
321
419
  - lib/rfix/cli/command.rb
420
+ - lib/rfix/cli/command/all.rb
322
421
  - lib/rfix/cli/command/base.rb
323
422
  - lib/rfix/cli/command/branch.rb
324
423
  - lib/rfix/cli/command/config.rb
@@ -329,20 +428,25 @@ files:
329
428
  - lib/rfix/cli/command/local.rb
330
429
  - lib/rfix/cli/command/origin.rb
331
430
  - lib/rfix/cli/command/setup.rb
431
+ - lib/rfix/cli/command/status.rb
432
+ - lib/rfix/collector.rb
433
+ - lib/rfix/diff.rb
332
434
  - lib/rfix/error.rb
435
+ - lib/rfix/extension/comment_config.rb
333
436
  - lib/rfix/extension/offense.rb
334
437
  - lib/rfix/extension/pastel.rb
335
- - lib/rfix/extension/string.rb
438
+ - lib/rfix/extension/progresbar.rb
336
439
  - lib/rfix/extension/strings.rb
337
440
  - lib/rfix/file.rb
338
441
  - lib/rfix/file/base.rb
339
442
  - lib/rfix/file/deleted.rb
340
443
  - lib/rfix/file/ignored.rb
444
+ - lib/rfix/file/null.rb
341
445
  - lib/rfix/file/tracked.rb
446
+ - lib/rfix/file/undefined.rb
342
447
  - lib/rfix/file/untracked.rb
343
448
  - lib/rfix/formatter.rb
344
449
  - lib/rfix/highlighter.rb
345
- - lib/rfix/indicator.rb
346
450
  - lib/rfix/log.rb
347
451
  - lib/rfix/rake/gemfile.rb
348
452
  - lib/rfix/rake/paths.rb
@@ -351,6 +455,60 @@ files:
351
455
  - lib/rfix/types.rb
352
456
  - lib/rfix/version.rb
353
457
  - rfix.gemspec
458
+ - vendor/cli-ui/Gemfile
459
+ - vendor/cli-ui/Gemfile.lock
460
+ - vendor/cli-ui/LICENSE.txt
461
+ - vendor/cli-ui/README.md
462
+ - vendor/cli-ui/Rakefile
463
+ - vendor/cli-ui/bin/console
464
+ - vendor/cli-ui/cli-ui.gemspec
465
+ - vendor/cli-ui/dev.yml
466
+ - vendor/cli-ui/lib/cli/ui.rb
467
+ - vendor/cli-ui/lib/cli/ui/ansi.rb
468
+ - vendor/cli-ui/lib/cli/ui/color.rb
469
+ - vendor/cli-ui/lib/cli/ui/formatter.rb
470
+ - vendor/cli-ui/lib/cli/ui/frame.rb
471
+ - vendor/cli-ui/lib/cli/ui/frame/frame_stack.rb
472
+ - vendor/cli-ui/lib/cli/ui/frame/frame_style.rb
473
+ - vendor/cli-ui/lib/cli/ui/frame/frame_style/box.rb
474
+ - vendor/cli-ui/lib/cli/ui/frame/frame_style/bracket.rb
475
+ - vendor/cli-ui/lib/cli/ui/glyph.rb
476
+ - vendor/cli-ui/lib/cli/ui/os.rb
477
+ - vendor/cli-ui/lib/cli/ui/printer.rb
478
+ - vendor/cli-ui/lib/cli/ui/progress.rb
479
+ - vendor/cli-ui/lib/cli/ui/prompt.rb
480
+ - vendor/cli-ui/lib/cli/ui/prompt/interactive_options.rb
481
+ - vendor/cli-ui/lib/cli/ui/prompt/options_handler.rb
482
+ - vendor/cli-ui/lib/cli/ui/spinner.rb
483
+ - vendor/cli-ui/lib/cli/ui/spinner/async.rb
484
+ - vendor/cli-ui/lib/cli/ui/spinner/spin_group.rb
485
+ - vendor/cli-ui/lib/cli/ui/stdout_router.rb
486
+ - vendor/cli-ui/lib/cli/ui/terminal.rb
487
+ - vendor/cli-ui/lib/cli/ui/truncater.rb
488
+ - vendor/cli-ui/lib/cli/ui/version.rb
489
+ - vendor/cli-ui/lib/cli/ui/widgets.rb
490
+ - vendor/cli-ui/lib/cli/ui/widgets/base.rb
491
+ - vendor/cli-ui/lib/cli/ui/widgets/status.rb
492
+ - vendor/cli-ui/lib/cli/ui/wrap.rb
493
+ - vendor/cli-ui/test/cli/ui/ansi_test.rb
494
+ - vendor/cli-ui/test/cli/ui/cli_ui_test.rb
495
+ - vendor/cli-ui/test/cli/ui/color_test.rb
496
+ - vendor/cli-ui/test/cli/ui/formatter_test.rb
497
+ - vendor/cli-ui/test/cli/ui/glyph_test.rb
498
+ - vendor/cli-ui/test/cli/ui/printer_test.rb
499
+ - vendor/cli-ui/test/cli/ui/progress_test.rb
500
+ - vendor/cli-ui/test/cli/ui/prompt/options_handler_test.rb
501
+ - vendor/cli-ui/test/cli/ui/prompt_test.rb
502
+ - vendor/cli-ui/test/cli/ui/spinner/spin_group_test.rb
503
+ - vendor/cli-ui/test/cli/ui/spinner_test.rb
504
+ - vendor/cli-ui/test/cli/ui/stdout_router_test.rb
505
+ - vendor/cli-ui/test/cli/ui/terminal_test.rb
506
+ - vendor/cli-ui/test/cli/ui/truncater_test.rb
507
+ - vendor/cli-ui/test/cli/ui/widgets/status_test.rb
508
+ - vendor/cli-ui/test/cli/ui/widgets_test.rb
509
+ - vendor/cli-ui/test/test_helper.rb
510
+ - vendor/cli-ui/tmp/cache/bootsnap/compile-cache/d9/c036af0f3dc494
511
+ - vendor/cli-ui/tmp/cache/bootsnap/load-path-cache
354
512
  - vendor/dry-cli/CHANGELOG.md
355
513
  - vendor/dry-cli/CODEOWNERS
356
514
  - vendor/dry-cli/CODE_OF_CONDUCT.md
@@ -422,6 +580,8 @@ files:
422
580
  - vendor/dry-cli/spec/unit/dry/cli/inflector_spec.rb
423
581
  - vendor/dry-cli/spec/unit/dry/cli/registry_spec.rb
424
582
  - vendor/dry-cli/spec/unit/dry/cli/version_spec.rb
583
+ - vendor/dry-cli/tmp/cache/bootsnap/compile-cache/ff/a22a5daafbd74c
584
+ - vendor/dry-cli/tmp/cache/bootsnap/load-path-cache
425
585
  - vendor/strings-ansi/CHANGELOG.md
426
586
  - vendor/strings-ansi/CODE_OF_CONDUCT.md
427
587
  - vendor/strings-ansi/Gemfile
@@ -445,6 +605,8 @@ files:
445
605
  - vendor/strings-ansi/tasks/console.rake
446
606
  - vendor/strings-ansi/tasks/coverage.rake
447
607
  - vendor/strings-ansi/tasks/spec.rake
608
+ - vendor/strings-ansi/tmp/cache/bootsnap/compile-cache/79/49cf49407b370e
609
+ - vendor/strings-ansi/tmp/cache/bootsnap/load-path-cache
448
610
  homepage: https://github.com/oleander/rfix-rb
449
611
  licenses:
450
612
  - MIT
@@ -464,8 +626,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
464
626
  - - ">="
465
627
  - !ruby/object:Gem::Version
466
628
  version: '0'
467
- requirements:
468
- - git >= 2
629
+ requirements: []
469
630
  rubygems_version: 3.1.2
470
631
  signing_key:
471
632
  specification_version: 4