fcom 0.14.0 → 0.14.1

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: 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: []