tqdm 0.3.0 → 0.4.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 +5 -5
- data/.travis.yml +4 -0
- data/LICENSE.txt +1 -1
- data/README.md +1 -1
- data/lib/tqdm/decorator.rb +18 -3
- data/lib/tqdm/version.rb +1 -1
- data/spec/sequel_spec.rb +10 -0
- data/tqdm.gemspec +1 -1
- metadata +7 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 72b63925baf593f87124eff5deaba635425475a900dd4432d07c772026488b45
|
4
|
+
data.tar.gz: 036ac2f161ef3fca07351818d0de75ec0a4c932af831f73370d26c318213a5f1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ca9b6cec37e773998ab099f6ab57e5c1d16f6fde371d82000d7a8750276ea5b3a018760ec0703a6b02830808d6292c4b387dd2beb733221b3b19f1d20bcd3504
|
7
|
+
data.tar.gz: c8e3a86ac26c82998a792b1b361fd040953a6078397a69c7d4a09d95641b45b61a04ea5288768a0662169f8e557ec6adc47f1bdd7fdfb66bc02e0027f7d6fa03
|
data/.travis.yml
CHANGED
data/LICENSE.txt
CHANGED
data/README.md
CHANGED
@@ -29,7 +29,7 @@ It works equally well from within irb, [pry](http://pryrepl.org/), and [iRuby no
|
|
29
29
|
|
30
30
|
Install it globally from [Rubygems](https://rubygems.org/gems/tqdm):
|
31
31
|
|
32
|
-
$ gem install tqdm # (might need sudo
|
32
|
+
$ gem install tqdm # (might need sudo for a system ruby)
|
33
33
|
|
34
34
|
*or* add this line to your application's Gemfile:
|
35
35
|
|
data/lib/tqdm/decorator.rb
CHANGED
@@ -44,6 +44,7 @@ module Tqdm
|
|
44
44
|
@min_iterations = options[:min_iters] || 1
|
45
45
|
@min_interval = options[:min_interval] || 0.5
|
46
46
|
@leave = options[:leave] || false
|
47
|
+
@force_refreeze = false
|
47
48
|
end
|
48
49
|
|
49
50
|
# Starts the textual progress bar.
|
@@ -87,6 +88,7 @@ module Tqdm
|
|
87
88
|
# progress bar.
|
88
89
|
def enhance
|
89
90
|
decorate_enumerable_each
|
91
|
+
enhanced.freeze if @force_refreeze
|
90
92
|
enhanced
|
91
93
|
end
|
92
94
|
|
@@ -96,8 +98,8 @@ module Tqdm
|
|
96
98
|
tqdm = self
|
97
99
|
enhanced.define_singleton_method(:each) do |*args, &block|
|
98
100
|
tqdm.start!
|
99
|
-
result = super(*args) do |
|
100
|
-
block.call
|
101
|
+
result = super(*args) do |*items|
|
102
|
+
block.call *items if block
|
101
103
|
tqdm.increment!
|
102
104
|
end
|
103
105
|
tqdm.finish!
|
@@ -106,7 +108,20 @@ module Tqdm
|
|
106
108
|
end
|
107
109
|
|
108
110
|
def enhanced
|
109
|
-
@enhanced ||=
|
111
|
+
@enhanced ||= enumerable_unfrozen
|
112
|
+
end
|
113
|
+
|
114
|
+
# Uses progressively more invasive techniques to return an unfrozen copy of @enumerable
|
115
|
+
# Significantly, for some classes like Sequel::Dataset, both #clone and #dup re-freeze
|
116
|
+
# the object, so we have to drop back to Object#clone
|
117
|
+
def enumerable_unfrozen
|
118
|
+
unfrozen = enumerable.clone(freeze: false)
|
119
|
+
return unfrozen unless unfrozen.frozen?
|
120
|
+
unfrozen = enumerable.dup
|
121
|
+
return unfrozen unless unfrozen.frozen?
|
122
|
+
@force_refreeze = true
|
123
|
+
unfrozen = Object.instance_method(:clone).bind(enumerable).call(freeze: false)
|
124
|
+
unfrozen
|
110
125
|
end
|
111
126
|
|
112
127
|
def total!
|
data/lib/tqdm/version.rb
CHANGED
data/spec/sequel_spec.rb
CHANGED
@@ -38,6 +38,16 @@ describe 'When enumerating over a Sequel dataset' do
|
|
38
38
|
"\r " \
|
39
39
|
"\r"
|
40
40
|
end
|
41
|
+
|
42
|
+
it 'returns a re-frozen object' do
|
43
|
+
enhanced = timecop_loop(database[:items])
|
44
|
+
expect(enhanced.frozen?).to be_truthy
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'returns an object inheriting from Sequel::Dataset' do
|
48
|
+
enhanced = timecop_loop(database[:items])
|
49
|
+
expect(enhanced).to be_kind_of(Sequel::Dataset)
|
50
|
+
end
|
41
51
|
end
|
42
52
|
|
43
53
|
context 'with leave: true' do
|
data/tqdm.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.add_development_dependency "bundler"
|
21
|
+
spec.add_development_dependency "bundler"
|
22
22
|
spec.add_development_dependency "rake"
|
23
23
|
spec.add_development_dependency "sequel"
|
24
24
|
spec.add_development_dependency "sqlite3"
|
metadata
CHANGED
@@ -1,29 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tqdm
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Theodore Pak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2022-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '0'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -140,8 +140,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
140
140
|
- !ruby/object:Gem::Version
|
141
141
|
version: '0'
|
142
142
|
requirements: []
|
143
|
-
|
144
|
-
rubygems_version: 2.2.5
|
143
|
+
rubygems_version: 3.1.6
|
145
144
|
signing_key:
|
146
145
|
specification_version: 4
|
147
146
|
summary: Enhances Enumerables to show progress while iterating.
|