Skip to content

Commit

Permalink
Upgrade Rubocop and address issues
Browse files Browse the repository at this point in the history
  • Loading branch information
laserlemon committed Mar 25, 2024
1 parent efff16a commit b6a3d80
Show file tree
Hide file tree
Showing 7 changed files with 41 additions and 27 deletions.
12 changes: 11 additions & 1 deletion .rubocop.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
require:
- rubocop-rake
- rubocop-rspec

AllCops:
NewCops: enable
TargetRubyVersion: 2.6
TargetRubyVersion: 3.0

Gemspec/DevelopmentDependencies:
Enabled: false

Layout/ArgumentAlignment:
Enabled: true
Expand All @@ -20,6 +27,9 @@ Naming/RescuedExceptionsVariableName:
Enabled: true
PreferredName: error

RSpec/ExampleLength:
Enabled: false

Style/BlockDelimiters:
Enabled: true
Exclude:
Expand Down
10 changes: 5 additions & 5 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ source "https://rubygems.org"

gemspec

gem "rqrcode", "~> 2.0"
gem "rspec", "~> 3.10"
gem "rubocop", "~> 1.17.0"
gem "rubocop-rake", "~> 0.5.1"
gem "rubocop-rspec", "~> 2.4.0"
gem "rqrcode", "~> 2.2.0"
gem "rspec", "~> 3.13.0"
gem "rubocop", "~> 1.62.1"
gem "rubocop-rake", "~> 0.6.0"
gem "rubocop-rspec", "~> 2.27.1"
4 changes: 2 additions & 2 deletions lib/slack_progress_bar/config.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ class Config
white: "w",
}.freeze

PREFIX_PATTERN = /\A[0-9a-z]+\z/.freeze
LETTER_PATTERN = /\A[a-z]\z/.freeze
PREFIX_PATTERN = /\A[0-9a-z]+\z/
LETTER_PATTERN = /\A[a-z]\z/

SEPARATOR = "-"
LEFT_CAP_SUFFIX = "a"
Expand Down
4 changes: 2 additions & 2 deletions lib/slack_progress_bar/generator.rb
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class Generator

DEFAULT_OUTPUT = "./"

IMAGE_MAGICK_VERSION_PATTERN = /Version: ImageMagick (?<major_version>\d+)\.[^\s]+/.freeze
IMAGE_MAGICK_VERSION_PATTERN = /Version: ImageMagick (?<major_version>\d+)\.[^\s]+/
MINIMUM_IMAGE_MAGICK_MAJOR_VERSION = 6

attr_reader :colors, :prefix, :output
Expand Down Expand Up @@ -202,7 +202,7 @@ def generate_qr_code
name = "#{prefix}#{config.separator}qr"
path = image_output_path(name)

IO.binwrite(path, qr.as_png(
File.binwrite(path, qr.as_png(
border_modules: 0,
resize_exactly_to: 128,
))
Expand Down
6 changes: 5 additions & 1 deletion slack_progress_bar.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,18 @@ Gem::Specification.new do |spec|
spec.email = "[email protected]"
spec.license = "MIT"

spec.metadata = {
"rubygems_mfa_required" => "true",
}

spec.files = Dir.chdir(__dir__) do
`git ls-files -z`.split("\x0").grep_v(/\A(bin|spec|Rakefile)/)
end

spec.add_runtime_dependency "thor", "~> 1.0"

spec.add_development_dependency "bundler", ">= 2"
spec.add_development_dependency "rake", ">= 12"
spec.add_development_dependency "rake", ">= 13"

spec.required_ruby_version = ">= 3.0.0"

Expand Down
2 changes: 1 addition & 1 deletion spec/slack_progress_bar/generator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
RSpec.describe SlackProgressBar::Generator do
it "generates images using default options" do
Dir.mktmpdir do |output|
generator = SlackProgressBar::Generator.new(output: output)
generator = described_class.new(output: output)

expect {
generator.generate
Expand Down
30 changes: 15 additions & 15 deletions spec/slack_progress_bar_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,89 +2,89 @@

RSpec.describe SlackProgressBar do
it "has a version number" do
expect(SlackProgressBar::VERSION).not_to be nil
expect(SlackProgressBar::VERSION).not_to be_nil
end

it "shows an empty progress bar" do
bar = SlackProgressBar.new
bar = described_class.new

expect(bar.to_s).to eq(":pb-w-a::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-w-z:")
end

it "shows a full progress bar" do
bar = SlackProgressBar.new(counts: { green: 1 })
bar = described_class.new(counts: { green: 1 })

expect(bar.to_s).to eq(":pb-g-a::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-g-z:")
end

it "shows singular progress" do
bar = SlackProgressBar.new(counts: { green: 1 }, total: 2)
bar = described_class.new(counts: { green: 1 }, total: 2)

expect(bar.to_s).to eq(":pb-g-a::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-w-z:")
end

it "shows multiple progress" do
bar = SlackProgressBar.new(counts: { blue: 1, green: 2 }, total: 5)
bar = described_class.new(counts: { blue: 1, green: 2 }, total: 5)

expect(bar.to_s).to eq(":pb-b-a::pb-bbbb::pb-bbbb::pb-bggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-w-z:")
end

it "shows a squared, empty progress bar" do
bar = SlackProgressBar.new(rounded: false)
bar = described_class.new(rounded: false)

expect(bar.to_s).to eq(":pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww:")
end

it "shows a squared, full progress bar" do
bar = SlackProgressBar.new(counts: { green: 1 }, rounded: false)
bar = described_class.new(counts: { green: 1 }, rounded: false)

expect(bar.to_s).to eq(":pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg:")
end

it "shows singular progress in a squared progress bar" do
bar = SlackProgressBar.new(counts: { green: 1 }, total: 2, rounded: false)
bar = described_class.new(counts: { green: 1 }, total: 2, rounded: false)

expect(bar.to_s).to eq(":pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww:")
end

it "shows multiple progress in a squared progress bar" do
bar = SlackProgressBar.new(counts: { blue: 1, green: 1 }, total: 5, rounded: false)
bar = described_class.new(counts: { blue: 1, green: 1 }, total: 5, rounded: false)

expect(bar.to_s).to eq(":pb-bbbb::pb-bbbb::pb-bbbg::pb-gggg::pb-gggg::pb-ggww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww:")
end

it "handles overflow gracefully" do
bar = SlackProgressBar.new(counts: { blue: 3, green: 3 }, total: 5)
bar = described_class.new(counts: { blue: 3, green: 3 }, total: 5)

expect(bar.to_s).to eq(":pb-b-a::pb-bbbb::pb-bbbb::pb-bbbb::pb-bbbb::pb-bbbb::pb-bbbb::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-g-z:")
end

it "ignores unknown aliases" do
bar = SlackProgressBar.new(counts: { unknown: 1 }, total: 2)
bar = described_class.new(counts: { unknown: 1 }, total: 2)

expect(bar.to_s).to eq(":pb-w-a::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-w-z:")
end

it "shows progress by letter" do
bar = SlackProgressBar.new(counts: { "b" => 1, "g" => 2 }, total: 5)
bar = described_class.new(counts: { "b" => 1, "g" => 2 }, total: 5)

expect(bar.to_s).to eq(":pb-b-a::pb-bbbb::pb-bbbb::pb-bggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-w-z:")
end

it "ignores unknown letters" do
bar = SlackProgressBar.new(counts: { "u" => 1 }, total: 2)
bar = described_class.new(counts: { "u" => 1 }, total: 2)

expect(bar.to_s).to eq(":pb-w-a::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-w-z:")
end

it "combines counts for the same color" do
bar = SlackProgressBar.new(counts: { green: 1, "g" => 1 }, total: 4)
bar = described_class.new(counts: { green: 1, "g" => 1 }, total: 4)

expect(bar.to_s).to eq(":pb-g-a::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-gggg::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-wwww::pb-w-z:")
end

it "shows a custom sized progress bar" do
bar = SlackProgressBar.new(counts: { green: 1 }, total: 2, size: 4)
bar = described_class.new(counts: { green: 1 }, total: 2, size: 4)

expect(bar.to_s).to eq(":pb-g-a::pb-gggg::pb-wwww::pb-w-z:")
end
Expand Down

0 comments on commit b6a3d80

Please sign in to comment.