infobar 0.12.0 → 0.13.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: 60f85e34986a09a9d68879ac2c20d61bdafd27f3f5587e2d615ef5b9c599831c
4
- data.tar.gz: fc73e66126d67aaac1315400249a468a7276daa33da16385912ab74cc5b6f3b8
3
+ metadata.gz: ce90bf89a05aa85dd2dafe44ce71c68719984a4553195f7c5ee3ea85a557e544
4
+ data.tar.gz: 2843fc691f0d520c3b1af317ec4faa6605cb40062abe384623f7c9fcc2ccf77e
5
5
  SHA512:
6
- metadata.gz: 0bfddf68d0f38283cbff79d3297647b576663b4f1156c827ef7b2c2af1b5d9dfb0b6d264391b3f5007bcedf017f646546829fad43516607b5c6d3d0cfe8ae520
7
- data.tar.gz: 5688e9d313e1a6e3192da610293ad2c3a936482de870685c1049bccc1efc12979b72c5436edee856a18675c57650fc7821de47fd181b50b9b0c0e4a4be098144
6
+ metadata.gz: b46cf5616ff55923b82a17d116729121b893be14446549878e911693986e9cff250dfeccfde5f0fd980d8775ec9b4c096d4117fe78c63556ad6560b8452c3ee4
7
+ data.tar.gz: a473c4788dd8cb8f09801537b18b8732fec231a62138a7a5b2bd75623d5d58186a7e7cafe27a59713ec5b272c8b13fbeea66d8768ddb31b20b8da178e06f757f
data/CHANGES.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # Changes
2
2
 
3
+ ## 2026-01-29 v0.13.1
4
+
5
+ - Added `newline` method call in `ensure` block of `Infobar` class to ensure
6
+ proper display cleanup
7
+ - Updated `infobar_spec.rb` to verify that `newline` is called during busy
8
+ block execution
9
+ - This ensures consistent infobar behavior and proper terminal output handling
10
+
11
+ ## 2026-01-29 v0.13.0
12
+
13
+ - Fixed `.busy` cleanup by ensuring `ib&.kill` is called safely to prevent race
14
+ conditions
15
+ - Added `finish` call in `ensure` block to properly finalize progress bar
16
+ - Re-enabled and fixed tests for `.busy` method to validate block requirement
17
+ and display updates
18
+ - Re-enabled tests for `update` method to verify immediate and forced updates
19
+ - Re-enabled tests for `.finish` with message to ensure correct handling of
20
+ custom messages
21
+ - Updated CI configuration to support Ruby **4.0**, **3.4**, and **3.3** while
22
+ removing support for **3.0**, **2.7**, and **2.6**
23
+ - Updated `tins` dependency from **~> 1.0** to **~> 1.3**
24
+ - Updated `all_images` development dependency to **>= 0.12.0**
25
+ - Changed homepage URL from `http://flori.github.com/infobar` to
26
+ `https://github.com/flori/infobar`
27
+ - Updated `rubygems_version` from **3.4.1** to **4.0.3**
28
+ - Added `yaml-dev` and `openssl-dev` to Docker build dependencies
29
+ - Used `bundle install --jobs=$(getconf _NPROCESSORS_ONLN)` for parallel
30
+ installation
31
+ - Run specs with `bundle exec rake spec`
32
+ - Frozen version string in gemspec
33
+ - Updated gitignore and Rakefile to exclude `.yardoc` directory
34
+ - Updated `gem_hadar` development dependency from version **~> 2.11** to **>=
35
+ 2.16.3**
36
+ - Added changelog file configuration to Rakefile
37
+ - Updated Ruby image version from **4.0-rc-alpine** to **4.0-alpine**
38
+
3
39
  ## 2025-12-21 v0.12.0
4
40
 
5
41
  - 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.1 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.1".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.1'
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,11 @@ 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
+ ib&.kill
117
+ finish
118
+ newline
116
119
  end
117
120
 
118
121
  def reset(display: true)
data/spec/infobar_spec.rb CHANGED
@@ -16,10 +16,17 @@ 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
+ expect(infobar).to receive(:newline).at_least(1).and_call_original
24
+ Infobar.busy { sleep 0.2 }
25
+ end
26
+
27
+ it 'needs a block for busy display' do
28
+ expect { Infobar.busy }.to raise_error ArgumentError
29
+ end
23
30
  end
24
31
 
25
32
  it 'can be called and update instantly' do
@@ -163,8 +170,8 @@ describe Infobar do
163
170
  it 'can sent specific message if finished by progress' do
164
171
  Infobar(total: 10)
165
172
  expect(infobar).not_to be_finished
166
- #x expect(infobar).to receive(:finish).with(message: 'hello').
167
- #x and_call_original
173
+ expect(infobar).to receive(:finish).with(message: 'hello').
174
+ and_call_original
168
175
  infobar.progress(by: 10, finish: 'hello')
169
176
  expect(infobar).to be_finished
170
177
  end
@@ -173,11 +180,11 @@ describe Infobar do
173
180
  Infobar(total: 10)
174
181
  expect(infobar).not_to be_finished
175
182
  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
183
+ expect(infobar.display).to receive(:update).with(
184
+ message: message,
185
+ force: true,
186
+ counter: anything
187
+ ).and_call_original
181
188
  infobar.finish message: message
182
189
  expect(infobar).to be_finished
183
190
  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.1
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: