infobar 0.12.0 → 0.13.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 60f85e34986a09a9d68879ac2c20d61bdafd27f3f5587e2d615ef5b9c599831c
4
- data.tar.gz: fc73e66126d67aaac1315400249a468a7276daa33da16385912ab74cc5b6f3b8
3
+ metadata.gz: 9134deea634236d968212c1c92b914a8ce3dc7170010f22e24ae1fe8e445e3e8
4
+ data.tar.gz: e16c85db3d09ccc2bb94022b5348718e82c17f30e325aa7ddd0ab697294f9ecc
5
5
  SHA512:
6
- metadata.gz: 0bfddf68d0f38283cbff79d3297647b576663b4f1156c827ef7b2c2af1b5d9dfb0b6d264391b3f5007bcedf017f646546829fad43516607b5c6d3d0cfe8ae520
7
- data.tar.gz: 5688e9d313e1a6e3192da610293ad2c3a936482de870685c1049bccc1efc12979b72c5436edee856a18675c57650fc7821de47fd181b50b9b0c0e4a4be098144
6
+ metadata.gz: bffbbbd174032af68747b4d6bdf620fbccf6cc17ed387911bead86cc759dc21bd3c9810ee890dc6ef2a2c741a776b459b7f2320decd7dfcd20ca06e744459b8c
7
+ data.tar.gz: 9652876ba5b8c89cd693106f6134a9b2365db61b1586a1256f9e04c0c4f19e13df5b2455c380463347c4cb80eacd9698ca44d44259644b18af29a6d438d8fe43
data/CHANGES.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # Changes
2
2
 
3
+ ## 2026-01-29 v0.13.0
4
+
5
+ - Fixed `.busy` cleanup by ensuring `ib&.kill` is called safely to prevent race
6
+ conditions
7
+ - Added `finish` call in `ensure` block to properly finalize progress bar
8
+ - Re-enabled and fixed tests for `.busy` method to validate block requirement
9
+ and display updates
10
+ - Re-enabled tests for `update` method to verify immediate and forced updates
11
+ - Re-enabled tests for `.finish` with message to ensure correct handling of
12
+ custom messages
13
+ - Updated CI configuration to support Ruby **4.0**, **3.4**, and **3.3** while
14
+ removing support for **3.0**, **2.7**, and **2.6**
15
+ - Updated `tins` dependency from **~> 1.0** to **~> 1.3**
16
+ - Updated `all_images` development dependency to **>= 0.12.0**
17
+ - Changed homepage URL from `http://flori.github.com/infobar` to
18
+ `https://github.com/flori/infobar`
19
+ - Updated `rubygems_version` from **3.4.1** to **4.0.3**
20
+ - Added `yaml-dev` and `openssl-dev` to Docker build dependencies
21
+ - Used `bundle install --jobs=$(getconf _NPROCESSORS_ONLN)` for parallel
22
+ installation
23
+ - Run specs with `bundle exec rake spec`
24
+ - Frozen version string in gemspec
25
+ - Updated gitignore and Rakefile to exclude `.yardoc` directory
26
+ - Updated `gem_hadar` development dependency from version **~> 2.11** to **>=
27
+ 2.16.3**
28
+ - Added changelog file configuration to Rakefile
29
+ - Updated Ruby image version from **4.0-rc-alpine** to **4.0-alpine**
30
+
3
31
  ## 2025-12-21 v0.12.0
4
32
 
5
33
  - Updated minimum Ruby version requirement to **3.1**
data/Rakefile CHANGED
@@ -13,23 +13,26 @@ GemHadar do
13
13
  test_dir 'spec'
14
14
  ignore '.*.sw[pon]', 'pkg', 'Gemfile.lock', 'coverage', '.rvmrc',
15
15
  '.AppleDouble', 'tags', '.DS_Store', 'errors.lst', '.tool-versions',
16
- '.bundle'
16
+ '.bundle', '.yardoc'
17
17
  package_ignore '.utilsrc', '.all_images.yml', 'VERSION', '.rspec',
18
18
  '.gitignore', 'TODO.md'
19
19
 
20
20
  readme 'README.md'
21
21
  title "#{name.camelize}"
22
22
 
23
+ changelog do
24
+ filename 'CHANGES.md'
25
+ end
26
+
23
27
  required_ruby_version '>= 3.1'
24
28
  dependency 'tins', '~> 1', '>= 1.28.0'
25
29
  dependency 'term-ansicolor', '~> 1.11'
26
30
  dependency 'complex_config', '~> 0.22'
27
31
  dependency 'more_math'
28
- development_dependency 'rake'
29
32
  development_dependency 'simplecov'
30
33
  development_dependency 'rspec'
31
34
  development_dependency 'debug'
32
- development_dependency 'all_images'
35
+ development_dependency 'all_images', '>= 0.12.0'
33
36
  end
34
37
 
35
38
  task :default => :spec
data/infobar.gemspec CHANGED
@@ -1,9 +1,9 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: infobar 0.12.0 ruby lib
2
+ # stub: infobar 0.13.0 ruby lib
3
3
 
4
4
  Gem::Specification.new do |s|
5
5
  s.name = "infobar".freeze
6
- s.version = "0.12.0".freeze
6
+ s.version = "0.13.0".freeze
7
7
 
8
8
  s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
9
9
  s.require_paths = ["lib".freeze]
@@ -16,18 +16,17 @@ Gem::Specification.new do |s|
16
16
  s.homepage = "https://github.com/flori/infobar".freeze
17
17
  s.rdoc_options = ["--title".freeze, "Infobar".freeze, "--main".freeze, "README.md".freeze]
18
18
  s.required_ruby_version = Gem::Requirement.new(">= 3.1".freeze)
19
- s.rubygems_version = "4.0.2".freeze
19
+ s.rubygems_version = "4.0.3".freeze
20
20
  s.summary = "Gem to display information about computations.".freeze
21
21
  s.test_files = ["spec/infobar/config_spec.rb".freeze, "spec/infobar/counter_spec.rb".freeze, "spec/infobar/display_spec.rb".freeze, "spec/infobar/duration_spec.rb".freeze, "spec/infobar/fifo_spec.rb".freeze, "spec/infobar/frequency_spec.rb".freeze, "spec/infobar/input_output_spec.rb".freeze, "spec/infobar/message_spec.rb".freeze, "spec/infobar/number_spec.rb".freeze, "spec/infobar/rate_spec.rb".freeze, "spec/infobar/spinner_spec.rb".freeze, "spec/infobar/timer_spec.rb".freeze, "spec/infobar/trend_spec.rb".freeze, "spec/infobar_spec.rb".freeze, "spec/spec_helper.rb".freeze]
22
22
 
23
23
  s.specification_version = 4
24
24
 
25
- s.add_development_dependency(%q<gem_hadar>.freeze, ["~> 2.11".freeze])
26
- s.add_development_dependency(%q<rake>.freeze, [">= 0".freeze])
25
+ s.add_development_dependency(%q<gem_hadar>.freeze, [">= 2.17.0".freeze])
27
26
  s.add_development_dependency(%q<simplecov>.freeze, [">= 0".freeze])
28
27
  s.add_development_dependency(%q<rspec>.freeze, [">= 0".freeze])
29
28
  s.add_development_dependency(%q<debug>.freeze, [">= 0".freeze])
30
- s.add_development_dependency(%q<all_images>.freeze, [">= 0".freeze])
29
+ s.add_development_dependency(%q<all_images>.freeze, [">= 0.12.0".freeze])
31
30
  s.add_runtime_dependency(%q<tins>.freeze, ["~> 1".freeze, ">= 1.28.0".freeze])
32
31
  s.add_runtime_dependency(%q<term-ansicolor>.freeze, ["~> 1.11".freeze])
33
32
  s.add_runtime_dependency(%q<complex_config>.freeze, ["~> 0.22".freeze])
@@ -1,6 +1,6 @@
1
1
  class Infobar
2
2
  # Infobar version
3
- VERSION = '0.12.0'
3
+ VERSION = '0.13.0'
4
4
  VERSION_ARRAY = VERSION.split('.').map(&:to_i) # :nodoc:
5
5
  VERSION_MAJOR = VERSION_ARRAY[0] # :nodoc:
6
6
  VERSION_MINOR = VERSION_ARRAY[1] # :nodoc:
data/lib/infobar.rb CHANGED
@@ -111,8 +111,10 @@ class Infobar
111
111
  r = nil
112
112
  t = Thread.new { r = yield }
113
113
  t.join
114
- ib.kill
115
114
  r
115
+ ensure
116
+ finish
117
+ ib&.kill
116
118
  end
117
119
 
118
120
  def reset(display: true)
data/spec/infobar_spec.rb CHANGED
@@ -16,10 +16,16 @@ describe Infobar do
16
16
  expect(infobar.counter.total).to eq 10
17
17
  end
18
18
 
19
- it 'can be used to signal being busy with a block' do
20
- expect { Infobar.busy }.to raise_error ArgumentError
21
- expect(infobar.display).to receive(:update).at_least(1).and_call_original
22
- Infobar.busy { sleep 0.2 }
19
+ describe '.busy' do
20
+ it 'can be used to signal being busy with a block' do
21
+ expect(infobar.display).to receive(:update).at_least(1).and_call_original
22
+ expect(infobar).to receive(:finish).at_least(1).and_call_original
23
+ Infobar.busy { sleep 0.2 }
24
+ end
25
+
26
+ it 'needs a block for busy display' do
27
+ expect { Infobar.busy }.to raise_error ArgumentError
28
+ end
23
29
  end
24
30
 
25
31
  it 'can be called and update instantly' do
@@ -163,8 +169,8 @@ describe Infobar do
163
169
  it 'can sent specific message if finished by progress' do
164
170
  Infobar(total: 10)
165
171
  expect(infobar).not_to be_finished
166
- #x expect(infobar).to receive(:finish).with(message: 'hello').
167
- #x and_call_original
172
+ expect(infobar).to receive(:finish).with(message: 'hello').
173
+ and_call_original
168
174
  infobar.progress(by: 10, finish: 'hello')
169
175
  expect(infobar).to be_finished
170
176
  end
@@ -173,11 +179,11 @@ describe Infobar do
173
179
  Infobar(total: 10)
174
180
  expect(infobar).not_to be_finished
175
181
  message = Infobar::Message.new(format: 'hello')
176
- #x expect(infobar.display).to receive(:update).with(
177
- #x message: message,
178
- #x force: true,
179
- #x counter: anything
180
- #x ).and_call_original
182
+ expect(infobar.display).to receive(:update).with(
183
+ message: message,
184
+ force: true,
185
+ counter: anything
186
+ ).and_call_original
181
187
  infobar.finish message: message
182
188
  expect(infobar).to be_finished
183
189
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: infobar
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Florian Frank
@@ -11,32 +11,18 @@ date: 1980-01-02 00:00:00.000000000 Z
11
11
  dependencies:
12
12
  - !ruby/object:Gem::Dependency
13
13
  name: gem_hadar
14
- requirement: !ruby/object:Gem::Requirement
15
- requirements:
16
- - - "~>"
17
- - !ruby/object:Gem::Version
18
- version: '2.11'
19
- type: :development
20
- prerelease: false
21
- version_requirements: !ruby/object:Gem::Requirement
22
- requirements:
23
- - - "~>"
24
- - !ruby/object:Gem::Version
25
- version: '2.11'
26
- - !ruby/object:Gem::Dependency
27
- name: rake
28
14
  requirement: !ruby/object:Gem::Requirement
29
15
  requirements:
30
16
  - - ">="
31
17
  - !ruby/object:Gem::Version
32
- version: '0'
18
+ version: 2.17.0
33
19
  type: :development
34
20
  prerelease: false
35
21
  version_requirements: !ruby/object:Gem::Requirement
36
22
  requirements:
37
23
  - - ">="
38
24
  - !ruby/object:Gem::Version
39
- version: '0'
25
+ version: 2.17.0
40
26
  - !ruby/object:Gem::Dependency
41
27
  name: simplecov
42
28
  requirement: !ruby/object:Gem::Requirement
@@ -85,14 +71,14 @@ dependencies:
85
71
  requirements:
86
72
  - - ">="
87
73
  - !ruby/object:Gem::Version
88
- version: '0'
74
+ version: 0.12.0
89
75
  type: :development
90
76
  prerelease: false
91
77
  version_requirements: !ruby/object:Gem::Requirement
92
78
  requirements:
93
79
  - - ">="
94
80
  - !ruby/object:Gem::Version
95
- version: '0'
81
+ version: 0.12.0
96
82
  - !ruby/object:Gem::Dependency
97
83
  name: tins
98
84
  requirement: !ruby/object:Gem::Requirement
@@ -236,7 +222,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
236
222
  - !ruby/object:Gem::Version
237
223
  version: '0'
238
224
  requirements: []
239
- rubygems_version: 4.0.2
225
+ rubygems_version: 4.0.3
240
226
  specification_version: 4
241
227
  summary: Gem to display information about computations.
242
228
  test_files: