silent_progress_bar 0.0.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 ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 1c00e16f481a13b63691ea0e12f3765e1f8c69a7
4
+ data.tar.gz: fa31505f7f86feb31e51e136471669ce4daae4f5
5
+ SHA512:
6
+ metadata.gz: e69c20eb746e9f2f5c8ff3f515ce77771e5d12e7fe926356c609e0dfa9d89e8a7e06ff08040d7dd06b75ac783661423035a4bc2e1514ed9fa132759cee8411ae
7
+ data.tar.gz: 26752c473df2121c6c4c2009b160397c85d619a7aace77be4305ee1afe87ed4f22d15db36d52e34706f108757c97072243727c11a61274dab536ae5dd22ef026
data/.gitignore ADDED
@@ -0,0 +1,3 @@
1
+ doc/
2
+ coverage/
3
+ tmp/
data/.travis.yml ADDED
@@ -0,0 +1,18 @@
1
+ language: ruby
2
+ rvm:
3
+ - 2.5.1
4
+ branches:
5
+ except:
6
+ - "/^v[0-9]+\\.[0-9]+\\.[0-9]+(?:-.*)?/"
7
+ notifications:
8
+ email:
9
+ on_success: change
10
+ on_failure: always
11
+ before_script:
12
+ - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
13
+ - chmod +x ./cc-test-reporter
14
+ - ./cc-test-reporter before-build
15
+ script:
16
+ - bundle exec rspec
17
+ after_script:
18
+ - ./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT
data/Gemfile ADDED
@@ -0,0 +1,2 @@
1
+ source 'https://rubygems.org'
2
+ gemspec
data/Gemfile.lock ADDED
@@ -0,0 +1,151 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ silent_progress_bar (0.0.1)
5
+ rails
6
+ ruby-progressbar
7
+
8
+ GEM
9
+ remote: https://rubygems.org/
10
+ specs:
11
+ actioncable (5.2.1)
12
+ actionpack (= 5.2.1)
13
+ nio4r (~> 2.0)
14
+ websocket-driver (>= 0.6.1)
15
+ actionmailer (5.2.1)
16
+ actionpack (= 5.2.1)
17
+ actionview (= 5.2.1)
18
+ activejob (= 5.2.1)
19
+ mail (~> 2.5, >= 2.5.4)
20
+ rails-dom-testing (~> 2.0)
21
+ actionpack (5.2.1)
22
+ actionview (= 5.2.1)
23
+ activesupport (= 5.2.1)
24
+ rack (~> 2.0)
25
+ rack-test (>= 0.6.3)
26
+ rails-dom-testing (~> 2.0)
27
+ rails-html-sanitizer (~> 1.0, >= 1.0.2)
28
+ actionview (5.2.1)
29
+ activesupport (= 5.2.1)
30
+ builder (~> 3.1)
31
+ erubi (~> 1.4)
32
+ rails-dom-testing (~> 2.0)
33
+ rails-html-sanitizer (~> 1.0, >= 1.0.3)
34
+ activejob (5.2.1)
35
+ activesupport (= 5.2.1)
36
+ globalid (>= 0.3.6)
37
+ activemodel (5.2.1)
38
+ activesupport (= 5.2.1)
39
+ activerecord (5.2.1)
40
+ activemodel (= 5.2.1)
41
+ activesupport (= 5.2.1)
42
+ arel (>= 9.0)
43
+ activestorage (5.2.1)
44
+ actionpack (= 5.2.1)
45
+ activerecord (= 5.2.1)
46
+ marcel (~> 0.3.1)
47
+ activesupport (5.2.1)
48
+ concurrent-ruby (~> 1.0, >= 1.0.2)
49
+ i18n (>= 0.7, < 2)
50
+ minitest (~> 5.1)
51
+ tzinfo (~> 1.1)
52
+ arel (9.0.0)
53
+ builder (3.2.3)
54
+ concurrent-ruby (1.0.5)
55
+ crass (1.0.4)
56
+ diff-lcs (1.3)
57
+ docile (1.3.1)
58
+ erubi (1.7.1)
59
+ globalid (0.4.1)
60
+ activesupport (>= 4.2.0)
61
+ i18n (1.1.1)
62
+ concurrent-ruby (~> 1.0)
63
+ json (2.1.0)
64
+ loofah (2.2.2)
65
+ crass (~> 1.0.2)
66
+ nokogiri (>= 1.5.9)
67
+ mail (2.7.1)
68
+ mini_mime (>= 0.1.1)
69
+ marcel (0.3.3)
70
+ mimemagic (~> 0.3.2)
71
+ method_source (0.9.0)
72
+ mimemagic (0.3.2)
73
+ mini_mime (1.0.1)
74
+ mini_portile2 (2.3.0)
75
+ minitest (5.11.3)
76
+ nio4r (2.3.1)
77
+ nokogiri (1.8.5)
78
+ mini_portile2 (~> 2.3.0)
79
+ rack (2.0.5)
80
+ rack-test (1.1.0)
81
+ rack (>= 1.0, < 3)
82
+ rails (5.2.1)
83
+ actioncable (= 5.2.1)
84
+ actionmailer (= 5.2.1)
85
+ actionpack (= 5.2.1)
86
+ actionview (= 5.2.1)
87
+ activejob (= 5.2.1)
88
+ activemodel (= 5.2.1)
89
+ activerecord (= 5.2.1)
90
+ activestorage (= 5.2.1)
91
+ activesupport (= 5.2.1)
92
+ bundler (>= 1.3.0)
93
+ railties (= 5.2.1)
94
+ sprockets-rails (>= 2.0.0)
95
+ rails-dom-testing (2.0.3)
96
+ activesupport (>= 4.2.0)
97
+ nokogiri (>= 1.6)
98
+ rails-html-sanitizer (1.0.4)
99
+ loofah (~> 2.2, >= 2.2.2)
100
+ railties (5.2.1)
101
+ actionpack (= 5.2.1)
102
+ activesupport (= 5.2.1)
103
+ method_source
104
+ rake (>= 0.8.7)
105
+ thor (>= 0.19.0, < 2.0)
106
+ rake (12.3.1)
107
+ rspec (3.8.0)
108
+ rspec-core (~> 3.8.0)
109
+ rspec-expectations (~> 3.8.0)
110
+ rspec-mocks (~> 3.8.0)
111
+ rspec-core (3.8.0)
112
+ rspec-support (~> 3.8.0)
113
+ rspec-expectations (3.8.2)
114
+ diff-lcs (>= 1.2.0, < 2.0)
115
+ rspec-support (~> 3.8.0)
116
+ rspec-mocks (3.8.0)
117
+ diff-lcs (>= 1.2.0, < 2.0)
118
+ rspec-support (~> 3.8.0)
119
+ rspec-support (3.8.0)
120
+ ruby-progressbar (1.10.0)
121
+ simplecov (0.16.1)
122
+ docile (~> 1.1)
123
+ json (>= 1.8, < 3)
124
+ simplecov-html (~> 0.10.0)
125
+ simplecov-html (0.10.2)
126
+ sprockets (3.7.2)
127
+ concurrent-ruby (~> 1.0)
128
+ rack (> 1, < 3)
129
+ sprockets-rails (3.2.1)
130
+ actionpack (>= 4.0)
131
+ activesupport (>= 4.0)
132
+ sprockets (>= 3.0.0)
133
+ thor (0.20.0)
134
+ thread_safe (0.3.6)
135
+ tzinfo (1.2.5)
136
+ thread_safe (~> 0.1)
137
+ websocket-driver (0.7.0)
138
+ websocket-extensions (>= 0.1.0)
139
+ websocket-extensions (0.1.3)
140
+
141
+ PLATFORMS
142
+ ruby
143
+
144
+ DEPENDENCIES
145
+ rake (~> 12.2, >= 12.2.1)
146
+ rspec (~> 3.7, >= 3.7.0)
147
+ silent_progress_bar!
148
+ simplecov (~> 0.15, >= 0.15.1)
149
+
150
+ BUNDLED WITH
151
+ 1.16.4
data/Rakefile ADDED
@@ -0,0 +1,7 @@
1
+ require 'bundler/gem_tasks'
2
+ require 'rspec/core/rake_task'
3
+
4
+ RSpec::Core::RakeTask.new
5
+
6
+ task default: :spec
7
+ task test: :spec
data/Readme.md ADDED
@@ -0,0 +1,43 @@
1
+ # Silent Progress Bar
2
+
3
+ [![Gem Version](https://img.shields.io/gem/v/silent_progress_bar.svg)](https://rubygems.org/gems/silent_progress_bar)
4
+ [![Build Status](https://travis-ci.org/jfiander/silent-progress-bar.svg)](https://travis-ci.org/jfiander/silent-progress-bar)
5
+ [![Maintainability](https://api.codeclimate.com/v1/badges/4c8be06f11872994f2c7/maintainability)](https://codeclimate.com/github/jfiander/silent-progress-bar/maintainability)
6
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/4c8be06f11872994f2c7/test_coverage)](https://codeclimate.com/github/jfiander/silent-progress-bar/test_coverage)
7
+
8
+ A simple exponential backoff retry wrapper.
9
+
10
+ ## Installation
11
+
12
+ Add this to your Gemfile:
13
+
14
+ ```ruby
15
+ gem 'silent_progress_bar'
16
+ ```
17
+
18
+ Or manually install the gem:
19
+
20
+ ```sh
21
+ gem install silent_progress_bar
22
+ ```
23
+
24
+ ## Usage
25
+
26
+ Create a progress bar, then pass a block into it.
27
+
28
+ You must pass the block an argument to allow incrementing the progress bar.
29
+
30
+ ```ruby
31
+ progress = SilentProgressBar.new(count: 10)
32
+ progress.run do |bar|
33
+ 10.times { sleep 0.2; bar.increment }
34
+ end
35
+ ```
36
+
37
+ You can also call `run` directly on the class.
38
+
39
+ ```ruby
40
+ SilentProgressBar.run(count: 10) do |bar|
41
+ 10.times { sleep 0.2; bar.increment }
42
+ end
43
+ ```
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'active_record'
4
+ require 'ruby-progressbar'
5
+
6
+ # Suppresses output and displays a progress bar
7
+ class SilentProgressBar
8
+ attr_reader :progress_bar
9
+
10
+ def initialize(title: 'Progress', count: 1)
11
+ @title = title
12
+ @count = count
13
+ @progress_bar = create_progress_bar
14
+ end
15
+
16
+ def self.run(title: 'Progress', count: 1)
17
+ bar = new(title: title, count: count)
18
+
19
+ bar.run { yield(bar.progress_bar) }
20
+ end
21
+
22
+ def self.no_logging
23
+ old_logger = ActiveRecord::Base.logger
24
+ ActiveRecord::Base.logger = nil
25
+ result = yield
26
+ ActiveRecord::Base.logger = old_logger
27
+ result
28
+ end
29
+
30
+ def run
31
+ self.class.no_logging { yield(progress_bar) }
32
+ end
33
+
34
+ def create_progress_bar
35
+ ProgressBar.create(
36
+ title: @title, starting_at: 0, format: "%a %b\u{15E7}%i %p%% %t",
37
+ total: @count, progress_mark: ' ', remainder_mark: "\u{FF65}"
38
+ )
39
+ end
40
+ end
@@ -0,0 +1,23 @@
1
+ Gem::Specification.new do |s|
2
+ s.name = 'silent_progress_bar'
3
+ s.version = '0.0.1'
4
+ s.date = '2018-10-26'
5
+ s.summary = 'Silenced Progress Bar'
6
+ s.description = 'A progress bar that suppresses ActiveRecord logging.'
7
+ s.homepage = 'http://rubygems.org/gems/silent_progress_bar'
8
+ s.license = 'GPL-3.0'
9
+ s.authors = ['Julian Fiander']
10
+ s.email = 'julian@fiander.one'
11
+ s.require_paths = %w[lib spec doc]
12
+ s.files = `git ls-files`.split("\n")
13
+ s.test_files = `git ls-files -- spec/*`.split("\n")
14
+
15
+ s.required_ruby_version = '~> 2.2'
16
+
17
+ s.add_runtime_dependency 'rails'
18
+ s.add_runtime_dependency 'ruby-progressbar'
19
+
20
+ s.add_development_dependency 'rake', '~> 12.2', '>= 12.2.1'
21
+ s.add_development_dependency 'rspec', '~> 3.7', '>= 3.7.0'
22
+ s.add_development_dependency 'simplecov', '~> 0.15', '>= 0.15.1'
23
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+
5
+ RSpec.describe SilentProgressBar do
6
+ it 'should output a progress bar from .run' do
7
+ expect do
8
+ SilentProgressBar.run(title: 'Testing 1', count: 5) do |bar|
9
+ 5.times { bar.increment }
10
+ end
11
+ end.to output(/Testing 1/).to_stdout_from_any_process
12
+ end
13
+
14
+ it 'should output a progress bar from #run' do
15
+ expect do
16
+ bar = SilentProgressBar.new(title: 'Testing 2', count: 5)
17
+
18
+ bar.run do |b|
19
+ 5.times { b.increment }
20
+ end
21
+ end.to output(/Testing 2/).to_stdout_from_any_process
22
+ end
23
+
24
+ it 'should return the final value' do
25
+ progress = SilentProgressBar.run(title: 'Testing 3', count: 5) do |b|
26
+ 5.times { b.increment }
27
+ :result
28
+ end
29
+
30
+ expect(progress).to eql(:result)
31
+ end
32
+
33
+ it 'should not output extra logging' do
34
+ expect do
35
+ SilentProgressBar.run(title: 'Testing 3', count: 5) do |b|
36
+ puts 'Bad log'
37
+ 5.times { b.increment }
38
+ end
39
+ end.not_to output('Bad log').to_stdout_from_any_process
40
+ end
41
+ end
@@ -0,0 +1,11 @@
1
+ require 'bundler/setup'
2
+ Bundler.setup
3
+ require 'simplecov'
4
+ SimpleCov.start
5
+ SimpleCov.minimum_coverage(100)
6
+
7
+ require 'silent_progress_bar'
8
+
9
+ RSpec.configure do |config|
10
+ #
11
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: silent_progress_bar
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - Julian Fiander
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2018-10-26 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rails
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: ruby-progressbar
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '12.2'
48
+ - - ">="
49
+ - !ruby/object:Gem::Version
50
+ version: 12.2.1
51
+ type: :development
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - "~>"
56
+ - !ruby/object:Gem::Version
57
+ version: '12.2'
58
+ - - ">="
59
+ - !ruby/object:Gem::Version
60
+ version: 12.2.1
61
+ - !ruby/object:Gem::Dependency
62
+ name: rspec
63
+ requirement: !ruby/object:Gem::Requirement
64
+ requirements:
65
+ - - "~>"
66
+ - !ruby/object:Gem::Version
67
+ version: '3.7'
68
+ - - ">="
69
+ - !ruby/object:Gem::Version
70
+ version: 3.7.0
71
+ type: :development
72
+ prerelease: false
73
+ version_requirements: !ruby/object:Gem::Requirement
74
+ requirements:
75
+ - - "~>"
76
+ - !ruby/object:Gem::Version
77
+ version: '3.7'
78
+ - - ">="
79
+ - !ruby/object:Gem::Version
80
+ version: 3.7.0
81
+ - !ruby/object:Gem::Dependency
82
+ name: simplecov
83
+ requirement: !ruby/object:Gem::Requirement
84
+ requirements:
85
+ - - "~>"
86
+ - !ruby/object:Gem::Version
87
+ version: '0.15'
88
+ - - ">="
89
+ - !ruby/object:Gem::Version
90
+ version: 0.15.1
91
+ type: :development
92
+ prerelease: false
93
+ version_requirements: !ruby/object:Gem::Requirement
94
+ requirements:
95
+ - - "~>"
96
+ - !ruby/object:Gem::Version
97
+ version: '0.15'
98
+ - - ">="
99
+ - !ruby/object:Gem::Version
100
+ version: 0.15.1
101
+ description: A progress bar that suppresses ActiveRecord logging.
102
+ email: julian@fiander.one
103
+ executables: []
104
+ extensions: []
105
+ extra_rdoc_files: []
106
+ files:
107
+ - ".gitignore"
108
+ - ".travis.yml"
109
+ - Gemfile
110
+ - Gemfile.lock
111
+ - Rakefile
112
+ - Readme.md
113
+ - lib/silent_progress_bar.rb
114
+ - silent_progress_bar.gemspec
115
+ - spec/lib/silent_progress_bar_spec.rb
116
+ - spec/spec_helper.rb
117
+ homepage: http://rubygems.org/gems/silent_progress_bar
118
+ licenses:
119
+ - GPL-3.0
120
+ metadata: {}
121
+ post_install_message:
122
+ rdoc_options: []
123
+ require_paths:
124
+ - lib
125
+ - spec
126
+ - doc
127
+ required_ruby_version: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: '2.2'
132
+ required_rubygems_version: !ruby/object:Gem::Requirement
133
+ requirements:
134
+ - - ">="
135
+ - !ruby/object:Gem::Version
136
+ version: '0'
137
+ requirements: []
138
+ rubyforge_project:
139
+ rubygems_version: 2.6.11
140
+ signing_key:
141
+ specification_version: 4
142
+ summary: Silenced Progress Bar
143
+ test_files:
144
+ - spec/lib/silent_progress_bar_spec.rb
145
+ - spec/spec_helper.rb