fcom 0.14.0 → 0.14.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8ccd462b5eba731015724f453657a0bb8cb84e522ce79ca1160c229e0c60d98c
4
- data.tar.gz: b8dceaf22e3956c7a70792e344375f4b7dde581530f24f59fc4edb9835a89d9e
3
+ metadata.gz: 5cdd11f33d8f860458cfed5178fd646edbb09c816db281f5da8516f5daa6d8e5
4
+ data.tar.gz: 4e08f8b334c65e51cec16e9479e01b6f13c7f62e4cd291378424027a77f40a3a
5
5
  SHA512:
6
- metadata.gz: eb772d1c4d3bb2d7e58d80d9da239787b9d7b0c0ddd744ef5a091315a45ad0b6e2e30b86c3f42616b7be6a590af58ebb21584b36ed22cf25f1389f97cf5efa6c
7
- data.tar.gz: 25210b7240a44a1e4598960fe8b6410a38811c58f58fa865056ae459be7839d719122711f255d67e08dcf90e2e9d3fe068216add5e702a7bff49ec7ad404de37
6
+ metadata.gz: cc22685bf66c9ed8b5d2bc651db8488f80f92e89353b2e9a71e33670d29ab09430b3570b6093086915f70487cd908efe8ec3570110d1938bc9be7dcca46f9c1f
7
+ data.tar.gz: 365e9d0dbe2df71792554aed127a1c6c192c1f36e3fc3316a6b35834c6b51d21b1bbf9bb147a2651aadba93e29d24eb2a5983fc4af2bdf406c18865160a6d991
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 3.3.6
1
+ 3.4.1
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## v0.14.1 (2025-01-24)
2
+ - Stream results progressively. ([#757](https://github.com/davidrunger/fcom/pull/757))
3
+
1
4
  ## v0.14.0 (2024-12-10)
2
5
  - Remove upper bounds on versions for all dependencies.
3
6
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- fcom (0.14.0)
4
+ fcom (0.14.1)
5
5
  activesupport (>= 6)
6
6
  memo_wise (>= 1.7)
7
7
  rainbow (>= 3.0)
@@ -10,7 +10,7 @@ PATH
10
10
  GEM
11
11
  remote: https://rubygems.org/
12
12
  specs:
13
- activesupport (7.2.2)
13
+ activesupport (8.0.1)
14
14
  base64
15
15
  benchmark (>= 0.3)
16
16
  bigdecimal
@@ -22,29 +22,30 @@ GEM
22
22
  minitest (>= 5.1)
23
23
  securerandom (>= 0.3)
24
24
  tzinfo (~> 2.0, >= 2.0.5)
25
+ uri (>= 0.13.1)
25
26
  ast (2.4.2)
26
27
  base64 (0.2.0)
27
28
  benchmark (0.4.0)
28
- bigdecimal (3.1.8)
29
+ bigdecimal (3.1.9)
29
30
  byebug (11.1.3)
30
31
  coderay (1.1.3)
31
- concurrent-ruby (1.3.4)
32
- connection_pool (2.4.1)
32
+ concurrent-ruby (1.3.5)
33
+ connection_pool (2.5.0)
33
34
  diff-lcs (1.5.1)
34
35
  drb (2.2.1)
35
- i18n (1.14.6)
36
+ i18n (1.14.7)
36
37
  concurrent-ruby (~> 1.0)
37
- json (2.9.0)
38
+ json (2.9.1)
38
39
  language_server-protocol (3.17.0.3)
39
- logger (1.6.2)
40
+ logger (1.6.5)
40
41
  memo_wise (1.10.0)
41
42
  method_source (1.1.0)
42
43
  minitest (5.25.4)
43
44
  parallel (1.26.3)
44
- parser (3.3.6.0)
45
+ parser (3.3.7.0)
45
46
  ast (~> 2.4.1)
46
47
  racc
47
- prism (1.2.0)
48
+ prism (1.3.0)
48
49
  pry (0.14.2)
49
50
  coderay (~> 1.1)
50
51
  method_source (~> 1.0)
@@ -54,7 +55,7 @@ GEM
54
55
  racc (1.8.1)
55
56
  rainbow (3.1.1)
56
57
  rake (13.2.1)
57
- regexp_parser (2.9.3)
58
+ regexp_parser (2.10.0)
58
59
  rspec (3.13.0)
59
60
  rspec-core (~> 3.13.0)
60
61
  rspec-expectations (~> 3.13.0)
@@ -68,39 +69,42 @@ GEM
68
69
  diff-lcs (>= 1.2.0, < 2.0)
69
70
  rspec-support (~> 3.13.0)
70
71
  rspec-support (3.13.2)
71
- rubocop (1.66.1)
72
+ rubocop (1.71.0)
72
73
  json (~> 2.3)
73
74
  language_server-protocol (>= 3.17.0)
74
75
  parallel (~> 1.10)
75
76
  parser (>= 3.3.0.2)
76
77
  rainbow (>= 2.2.2, < 4.0)
77
- regexp_parser (>= 2.4, < 3.0)
78
- rubocop-ast (>= 1.32.2, < 2.0)
78
+ regexp_parser (>= 2.9.3, < 3.0)
79
+ rubocop-ast (>= 1.36.2, < 2.0)
79
80
  ruby-progressbar (~> 1.7)
80
- unicode-display_width (>= 2.4.0, < 3.0)
81
- rubocop-ast (1.36.2)
81
+ unicode-display_width (>= 2.4.0, < 4.0)
82
+ rubocop-ast (1.37.0)
82
83
  parser (>= 3.3.1.0)
83
- rubocop-performance (1.23.0)
84
+ rubocop-performance (1.23.1)
84
85
  rubocop (>= 1.48.1, < 2.0)
85
86
  rubocop-ast (>= 1.31.1, < 2.0)
86
87
  rubocop-rake (0.6.0)
87
88
  rubocop (~> 1.0)
88
- rubocop-rspec (3.2.0)
89
+ rubocop-rspec (3.4.0)
89
90
  rubocop (~> 1.61)
90
91
  ruby-progressbar (1.13.0)
91
- runger_release_assistant (0.12.0)
92
- activesupport (>= 6, < 8)
93
- memo_wise (>= 1.7, < 2)
94
- rainbow (>= 3.0, < 4)
92
+ runger_release_assistant (0.14.0)
93
+ activesupport (>= 6)
94
+ memo_wise (>= 1.7)
95
+ rainbow (>= 3.0)
95
96
  slop (~> 4.8)
96
- runger_style (2.17.0)
97
+ runger_style (4.1.0)
97
98
  prism (>= 0.24.0)
98
- rubocop (>= 1.38.0, < 2)
99
- securerandom (0.4.0)
99
+ rubocop (>= 1.68.0)
100
+ securerandom (0.4.1)
100
101
  slop (4.10.1)
101
102
  tzinfo (2.0.6)
102
103
  concurrent-ruby (~> 1.0)
103
- unicode-display_width (2.6.0)
104
+ unicode-display_width (3.1.4)
105
+ unicode-emoji (~> 4.0, >= 4.0.4)
106
+ unicode-emoji (4.0.4)
107
+ uri (1.0.2)
104
108
 
105
109
  PLATFORMS
106
110
  ruby
@@ -119,8 +123,57 @@ DEPENDENCIES
119
123
  runger_release_assistant
120
124
  runger_style
121
125
 
126
+ CHECKSUMS
127
+ activesupport (8.0.1) sha256=fd5bc74641c24ac3541055c2879789198ff42adee3e39c2933289ba008912e37
128
+ ast (2.4.2) sha256=1e280232e6a33754cde542bc5ef85520b74db2aac73ec14acef453784447cc12
129
+ base64 (0.2.0) sha256=0f25e9b21a02a0cc0cea8ef92b2041035d39350946e8789c562b2d1a3da01507
130
+ benchmark (0.4.0) sha256=0f12f8c495545e3710c3e4f0480f63f06b4c842cc94cec7f33a956f5180e874a
131
+ bigdecimal (3.1.9) sha256=2ffc742031521ad69c2dfc815a98e426a230a3d22aeac1995826a75dabfad8cc
132
+ byebug (11.1.3) sha256=2485944d2bb21283c593d562f9ae1019bf80002143cc3a255aaffd4e9cf4a35b
133
+ coderay (1.1.3) sha256=dc530018a4684512f8f38143cd2a096c9f02a1fc2459edcfe534787a7fc77d4b
134
+ concurrent-ruby (1.3.5) sha256=813b3e37aca6df2a21a3b9f1d497f8cbab24a2b94cab325bffe65ee0f6cbebc6
135
+ connection_pool (2.5.0) sha256=233b92f8d38e038c1349ccea65dd3772727d669d6d2e71f9897c8bf5cd53ebfc
136
+ diff-lcs (1.5.1) sha256=273223dfb40685548436d32b4733aa67351769c7dea621da7d9dd4813e63ddfe
137
+ drb (2.2.1) sha256=e9d472bf785f558b96b25358bae115646da0dbfd45107ad858b0bc0d935cb340
138
+ fcom (0.14.1)
139
+ i18n (1.14.7) sha256=ceba573f8138ff2c0915427f1fc5bdf4aa3ab8ae88c8ce255eb3ecf0a11a5d0f
140
+ json (2.9.1) sha256=d2bdef4644052fad91c1785d48263756fe32fcac08b96a20bb15840e96550d11
141
+ language_server-protocol (3.17.0.3) sha256=3d5c58c02f44a20d972957a9febe386d7e7468ab3900ce6bd2b563dd910c6b3f
142
+ logger (1.6.5) sha256=c3cfe56d01656490ddd103d38b8993d73d86296adebc5f58cefc9ec03741e56b
143
+ memo_wise (1.10.0) sha256=ae40ff8e7799697ff5d59d739b8766f76be22eba69c7c8468edb42ab83c94c3f
144
+ method_source (1.1.0) sha256=181301c9c45b731b4769bc81e8860e72f9161ad7d66dd99103c9ab84f560f5c5
145
+ minitest (5.25.4) sha256=9cf2cae25ac4dfc90c988ebc3b917f53c054978b673273da1bd20bcb0778f947
146
+ parallel (1.26.3) sha256=d86babb7a2b814be9f4b81587bf0b6ce2da7d45969fab24d8ae4bf2bb4d4c7ef
147
+ parser (3.3.7.0) sha256=7449011771e3e7881297859b849de26a6f4fccd515bece9520a87e7d2116119b
148
+ prism (1.3.0) sha256=b11620829831b1cb7e6c9b46c81ff8a6e36ccb3f888f164485eb7351f386273a
149
+ pry (0.14.2) sha256=c4fe54efedaca1d351280b45b8849af363184696fcac1c72e0415f9bdac4334d
150
+ pry-byebug (3.10.1) sha256=c8f975c32255bfdb29e151f5532130be64ff3d0042dc858d0907e849125581f8
151
+ racc (1.8.1) sha256=4a7f6929691dbec8b5209a0b373bc2614882b55fc5d2e447a21aaa691303d62f
152
+ rainbow (3.1.1) sha256=039491aa3a89f42efa1d6dec2fc4e62ede96eb6acd95e52f1ad581182b79bc6a
153
+ rake (13.2.1) sha256=46cb38dae65d7d74b6020a4ac9d48afed8eb8149c040eccf0523bec91907059d
154
+ regexp_parser (2.10.0) sha256=cb6f0ddde88772cd64bff1dbbf68df66d376043fe2e66a9ef77fcb1b0c548c61
155
+ rspec (3.13.0) sha256=d490914ac1d5a5a64a0e1400c1d54ddd2a501324d703b8cfe83f458337bab993
156
+ rspec-core (3.13.2) sha256=94fbda6e4738e478f1c7532b7cc241272fcdc8b9eac03a97338b1122e4573300
157
+ rspec-expectations (3.13.3) sha256=0e6b5af59b900147698ea0ff80456c4f2e69cac4394fbd392fbd1ca561f66c58
158
+ rspec-mocks (3.13.2) sha256=2327335def0e1665325a9b617e3af9ae20272741d80ac550336309a7c59abdef
159
+ rspec-support (3.13.2) sha256=cea3a2463fd9b84b9dcc9685efd80ea701aa8f7b3decb3b3ce795ed67737dbec
160
+ rubocop (1.71.0) sha256=e19679efd447346ac476122313d3788ae23c38214790bcf660e984c747608bf0
161
+ rubocop-ast (1.37.0) sha256=9513ac88aaf113d04b52912533ffe46475de1362d4aa41141b51b2455827c080
162
+ rubocop-performance (1.23.1) sha256=f22f86a795f5e6a6180aac2c6fc172534b173a068d6ed3396d6460523e051b82
163
+ rubocop-rake (0.6.0) sha256=56b6f22189af4b33d4f4e490a555c09f1281b02f4d48c3a61f6e8fe5f401d8db
164
+ rubocop-rspec (3.4.0) sha256=8721c13b6a8c9530a7ac481cea9423022f946fcf72428bda8289f8b57e4d4885
165
+ ruby-progressbar (1.13.0) sha256=80fc9c47a9b640d6834e0dc7b3c94c9df37f08cb072b7761e4a71e22cff29b33
166
+ runger_release_assistant (0.14.0) sha256=7abc5eb1e0f63d8d611691bc21698d2b3b8f148a5f47cacd8dd32c21d16ee9be
167
+ runger_style (4.1.0) sha256=0740ed8c194fc6dcb420b11b1fb13cebf244e8e34c1c1df05200dc0e15ce084e
168
+ securerandom (0.4.1) sha256=cc5193d414a4341b6e225f0cb4446aceca8e50d5e1888743fac16987638ea0b1
169
+ slop (4.10.1) sha256=844322b5ffcf17ed4815fdb173b04a20dd82b4fd93e3744c88c8fafea696d9c7
170
+ tzinfo (2.0.6) sha256=8daf828cc77bcf7d63b0e3bdb6caa47e2272dcfaf4fbfe46f8c3a9df087a829b
171
+ unicode-display_width (3.1.4) sha256=8caf2af1c0f2f07ec89ef9e18c7d88c2790e217c482bfc78aaa65eadd5415ac1
172
+ unicode-emoji (4.0.4) sha256=2c2c4ef7f353e5809497126285a50b23056cc6e61b64433764a35eff6c36532a
173
+ uri (1.0.2) sha256=b303504ceb7e5905771fa7fa14b649652fa949df18b5880d69cfb12494791e27
174
+
122
175
  RUBY VERSION
123
- ruby 3.3.6p108
176
+ ruby 3.4.1p0
124
177
 
125
178
  BUNDLED WITH
126
- 2.5.23
179
+ 2.6.2
@@ -4,5 +4,6 @@ set -euo pipefail # exit on any error, don't allow undefined variables, pipes do
4
4
 
5
5
  lint gitleaks
6
6
 
7
+ background-and-notify lint newlines
7
8
  background-and-notify lint rubocop
8
9
  background-and-notify lint shellcheck
data/lib/fcom/querier.rb CHANGED
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'pty'
4
+
3
5
  require_relative 'options_helpers.rb'
4
6
 
5
7
  # This class executes a system command to retrieve the git history, which is passed through `rg`
@@ -63,18 +65,34 @@ class Fcom::Querier
63
65
 
64
66
  commands.each do |command|
65
67
  Fcom.logger.debug("Executing command: #{command}")
66
- output = `#{command}`
67
68
 
68
- if output.empty?
69
- previous_command_generated_output = false
70
- else
71
- if previous_command_generated_output
72
- puts("\n\n") # print blank lines for spacing
73
- end
69
+ # Add spacing if needed
70
+ if previous_command_generated_output
71
+ print "\n\n"
72
+ end
73
+
74
+ PTY.spawn(command) do |stdout, _stdin, _pid|
75
+ any_bytes_seen_for_command = false
76
+
77
+ # Read first byte to detect any output
78
+ first_byte = stdout.read(1)
74
79
 
75
- previous_command_generated_output = true
80
+ any_bytes_seen_for_command = true
76
81
 
77
- puts(output)
82
+ if first_byte
83
+ previous_command_generated_output = true
84
+
85
+ print(first_byte)
86
+
87
+ # Now read the rest line by line
88
+ stdout.each_line { puts(it) }
89
+ else
90
+ previous_command_generated_output = false
91
+ end
92
+ rescue Errno::EIO
93
+ if !any_bytes_seen_for_command
94
+ previous_command_generated_output = false
95
+ end
78
96
  end
79
97
  end
80
98
  end
data/lib/fcom/version.rb CHANGED
@@ -2,6 +2,6 @@
2
2
 
3
3
  # rubocop:disable Style/StaticClass
4
4
  class Fcom
5
- VERSION = '0.14.0'
5
+ VERSION = '0.14.1'
6
6
  end
7
7
  # rubocop:enable Style/StaticClass
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fcom
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.14.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Runger
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2024-12-11 00:00:00.000000000 Z
10
+ date: 2025-01-25 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: activesupport
@@ -66,7 +65,6 @@ dependencies:
66
65
  - - "~>"
67
66
  - !ruby/object:Gem::Version
68
67
  version: '4.8'
69
- description:
70
68
  email:
71
69
  - davidjrunger@gmail.com
72
70
  executables:
@@ -114,7 +112,6 @@ metadata:
114
112
  homepage_uri: https://github.com/davidrunger/fcom
115
113
  source_code_uri: https://github.com/davidrunger/fcom
116
114
  changelog_uri: https://github.com/davidrunger/fcom/blob/main/CHANGELOG.md
117
- post_install_message:
118
115
  rdoc_options: []
119
116
  require_paths:
120
117
  - lib
@@ -122,15 +119,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
122
119
  requirements:
123
120
  - - ">="
124
121
  - !ruby/object:Gem::Version
125
- version: 3.3.0
122
+ version: 3.4.0
126
123
  required_rubygems_version: !ruby/object:Gem::Requirement
127
124
  requirements:
128
125
  - - ">="
129
126
  - !ruby/object:Gem::Version
130
127
  version: '0'
131
128
  requirements: []
132
- rubygems_version: 3.5.23
133
- signing_key:
129
+ rubygems_version: 3.6.2
134
130
  specification_version: 4
135
131
  summary: CLI tool for parsing git history
136
132
  test_files: []