Skip to content

Commit 1e27f04

Browse files
authored
Merge pull request #131 from jan-bw/direct-rainbow-usage
Use Rainbow directly instead of relying on String refinement.
2 parents 3683613 + bb9f0ae commit 1e27f04

File tree

6 files changed

+34
-45
lines changed

6 files changed

+34
-45
lines changed

exe/bundle_report

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ at_exit do
5555
begin
5656
option_parser.parse!
5757
rescue OptionParser::ParseError => e
58-
STDERR.puts e.message.red
58+
STDERR.puts Rainbow(e.message).red
5959
puts option_parser
6060
exit 1
6161
end

exe/deprecations

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
11
#!/usr/bin/env ruby
22
require "json"
3-
require "rainbow/refinement"
3+
require "rainbow"
44
require "optparse"
55
require "set"
66

7-
using Rainbow
8-
97
def run_tests(deprecation_warnings, opts = {})
108
tracker_mode = opts[:tracker_mode]
119
next_mode = opts[:next_mode]
@@ -30,11 +28,11 @@ def print_info(deprecation_warnings, opts = {})
3028
end
3129
end.sort_by {|message, data| data[:occurrences] }.reverse.to_h
3230

33-
puts "Ten most common deprecation warnings:".underline
31+
puts Rainbow("Ten most common deprecation warnings:").underline
3432
frequency_by_message.take(10).each do |message, data|
35-
puts "Occurrences: #{data.fetch(:occurrences)}".bold
33+
puts Rainbow("Occurrences: #{data.fetch(:occurrences)}").bold
3634
puts "Test files: #{data.fetch(:test_files).to_a.join(" ")}" if verbose
37-
puts message.red
35+
puts Rainbow(message).red
3836
puts "----------"
3937
end
4038
end
@@ -106,10 +104,10 @@ case options.fetch(:mode, "info")
106104
when "run" then run_tests(deprecation_warnings, next_mode: options[:next], tracker_mode: options[:tracker_mode])
107105
when "info" then print_info(deprecation_warnings, verbose: options[:verbose])
108106
when nil
109-
STDERR.puts "Must pass a mode: run or info".red
107+
STDERR.puts Rainbow("Must pass a mode: run or info").red
110108
puts option_parser
111109
exit 1
112110
else
113-
STDERR.puts "Unknown mode: #{options[:mode]}".red
111+
STDERR.puts Rainbow("Unknown mode: #{options[:mode]}").red
114112
exit 1
115113
end

lib/deprecation_tracker.rb

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
require "rainbow/refinement"
1+
require "rainbow"
22
require "json"
33

4-
using Rainbow
5-
64
# A shitlist for deprecation warnings during test runs. It has two modes: "save" and "compare"
75
#
86
# DEPRECATION_TRACKER=save
@@ -152,7 +150,7 @@ def compare
152150
end
153151

154152
if changed_buckets.length > 0
155-
message = <<-MESSAGE.red
153+
message = <<-MESSAGE
156154
⚠️ Deprecation warnings have changed!
157155
158156
Code called by the following spec files is now generating different deprecation warnings:
@@ -170,7 +168,7 @@ def compare
170168
See \e[4;37mdev-docs/testing/deprecation_tracker.md\e[0;31m for more information.
171169
MESSAGE
172170

173-
raise UnexpectedDeprecations, message
171+
raise UnexpectedDeprecations, Rainbow(message).red
174172
end
175173
end
176174

lib/next_rails/bundle_report.rb

Lines changed: 14 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,9 @@
1-
require "rainbow/refinement"
1+
require "rainbow"
22
require "cgi"
33
require "erb"
44
require "json"
55
require "net/http"
66

7-
using Rainbow
8-
97
module NextRails
108
module BundleReport
119
extend self
@@ -27,34 +25,34 @@ def compatibility(rails_version: nil, ruby_version: nil, include_rails_gems: nil
2725
def erb_output(incompatible_gems_by_state, incompatible_gems, rails_version)
2826
template = <<-ERB
2927
<% if incompatible_gems_by_state[:found_compatible] -%>
30-
<%= "=> Incompatible with Rails #{rails_version} (with new versions that are compatible):".white.bold %>
31-
<%= "These gems will need to be upgraded before upgrading to Rails #{rails_version}.".italic %>
28+
<%= Rainbow("=> Incompatible with Rails #{rails_version} (with new versions that are compatible):").white.bold %>
29+
<%= Rainbow("These gems will need to be upgraded before upgrading to Rails #{rails_version}.").italic %>
3230
3331
<% incompatible_gems_by_state[:found_compatible].each do |gem| -%>
3432
<%= gem_header(gem) %> - upgrade to <%= gem.latest_compatible_version.version %>
3533
<% end -%>
3634
3735
<% end -%>
3836
<% if incompatible_gems_by_state[:incompatible] -%>
39-
<%= "=> Incompatible with Rails #{rails_version} (with no new compatible versions):".white.bold %>
40-
<%= "These gems will need to be removed or replaced before upgrading to Rails #{rails_version}.".italic %>
37+
<%= Rainbow("=> Incompatible with Rails #{rails_version} (with no new compatible versions):").white.bold %>
38+
<%= Rainbow("These gems will need to be removed or replaced before upgrading to Rails #{rails_version}.").italic %>
4139
4240
<% incompatible_gems_by_state[:incompatible].each do |gem| -%>
4341
<%= gem_header(gem) %> - new version, <%= gem.latest_version.version %>, is not compatible with Rails #{rails_version}
4442
<% end -%>
4543
4644
<% end -%>
4745
<% if incompatible_gems_by_state[:no_new_version] -%>
48-
<%= "=> Incompatible with Rails #{rails_version} (with no new versions):".white.bold %>
49-
<%= "These gems will need to be upgraded by us or removed before upgrading to Rails #{rails_version}.".italic %>
50-
<%= "This list is likely to contain internal gems, like Cuddlefish.".italic %>
46+
<%= Rainbow("=> Incompatible with Rails #{rails_version} (with no new versions):").white.bold %>
47+
<%= Rainbow("These gems will need to be upgraded by us or removed before upgrading to Rails #{rails_version}.").italic %>
48+
<%= Rainbow("This list is likely to contain internal gems, like Cuddlefish.").italic %>
5149
5250
<% incompatible_gems_by_state[:no_new_version].each do |gem| -%>
5351
<%= gem_header(gem) %> - new version not found
5452
<% end -%>
5553
5654
<% end -%>
57-
<%= incompatible_gems.length.to_s.red %> gems incompatible with Rails <%= rails_version %>
55+
<%= Rainbow(incompatible_gems.length.to_s).red %> gems incompatible with Rails <%= rails_version %>
5856
ERB
5957

6058
erb_version = ERB.version
@@ -70,8 +68,8 @@ def erb_output(incompatible_gems_by_state, incompatible_gems, rails_version)
7068
end
7169

7270
def gem_header(_gem)
73-
header = "#{_gem.name} #{_gem.version}".bold
74-
header << " (loaded from git)".magenta if _gem.sourced_from_git?
71+
header = Rainbow("#{_gem.name} #{_gem.version}").bold
72+
header << Rainbow(" (loaded from git)").magenta if _gem.sourced_from_git?
7573
header
7674
end
7775

@@ -158,14 +156,14 @@ def output_to_stdout(out_of_date_gems, total_gem_count, sourced_from_git_count)
158156
header = "#{gem.name} #{gem.version}"
159157

160158
puts <<-MESSAGE
161-
#{header.bold.white}: released #{gem.age} (latest version, #{gem.latest_version.version}, released #{gem.latest_version.age})
159+
#{Rainbow(header.bold.white)}: released #{gem.age} (latest version, #{gem.latest_version.version}, released #{gem.latest_version.age})
162160
MESSAGE
163161
end
164162

165163
percentage_out_of_date = ((out_of_date_gems.count / total_gem_count.to_f) * 100).round
166164
footer = <<-MESSAGE
167-
#{sourced_from_git_count.to_s.yellow} gems are sourced from git
168-
#{out_of_date_gems.count.to_s.red} of the #{total_gem_count} gems are out-of-date (#{percentage_out_of_date}%)
165+
#{Rainbow(sourced_from_git_count.to_s).yellow} gems are sourced from git
166+
#{Rainbow(out_of_date_gems.count.to_s).red} of the #{total_gem_count} gems are out-of-date (#{percentage_out_of_date}%)
169167
MESSAGE
170168

171169
puts ''

lib/next_rails/bundle_report/ruby_version_compatibility.rb

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
1-
require "rainbow/refinement"
1+
require "rainbow"
22

33
class NextRails::BundleReport::RubyVersionCompatibility
4-
using Rainbow
5-
64
MINIMAL_VERSION = 1.0
75
attr_reader :gems, :options
86

@@ -20,11 +18,11 @@ def generate
2018
private
2119

2220
def message
23-
output = "=> Incompatible gems with Ruby #{ruby_version}:".white.bold
21+
output = Rainbow("=> Incompatible gems with Ruby #{ruby_version}:").white.bold
2422
incompatible.each do |gem|
25-
output += "\n#{gem.name} - required Ruby version: #{gem.gem_specification.required_ruby_version}".magenta
23+
output += Rainbow("\n#{gem.name} - required Ruby version: #{gem.gem_specification.required_ruby_version}").magenta
2624
end
27-
output += "\n\n#{incompatible.length} incompatible #{incompatible.one? ? 'gem' : 'gems' } with Ruby #{ruby_version}".red
25+
output += Rainbow("\n\n#{incompatible.length} incompatible #{incompatible.one? ? 'gem' : 'gems' } with Ruby #{ruby_version}").red
2826
output
2927
end
3028

@@ -37,7 +35,7 @@ def ruby_version
3735
end
3836

3937
def invalid_message
40-
"=> Invalid Ruby version: #{options[:ruby_version]}.".red.bold
38+
Rainbow("=> Invalid Ruby version: #{options[:ruby_version]}.").red.bold
4139
end
4240

4341
def valid?

spec/next_rails/bundle_report_spec.rb

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
# frozen_string_literal: true
22

3-
require "rainbow/refinement"
4-
5-
using Rainbow
6-
3+
require "rainbow"
74
require "spec_helper"
85

96
RSpec.describe NextRails::BundleReport do
@@ -33,14 +30,14 @@
3330
it 'invokes $stdout.puts properly', :aggregate_failures do
3431
allow($stdout)
3532
.to receive(:puts)
36-
.with("#{'alpha 0.0.1'.bold.white}: released #{alpha_age} (latest version, 0.0.2, released #{bravo_age})\n")
33+
.with("#{Rainbow('alpha 0.0.1').bold.white}: released #{alpha_age} (latest version, 0.0.2, released #{bravo_age})\n")
3734
allow($stdout)
3835
.to receive(:puts)
39-
.with("#{'bravo 0.2.0'.bold.white}: released #{bravo_age} (latest version, 0.2.2, released #{charlie_age})\n")
36+
.with("#{Rainbow('bravo 0.2.0').bold.white}: released #{bravo_age} (latest version, 0.2.2, released #{charlie_age})\n")
4037
allow($stdout).to receive(:puts).with('')
4138
allow($stdout).to receive(:puts).with(<<-EO_MULTLINE_STRING)
42-
#{'1'.yellow} gems are sourced from git
43-
#{'2'.red} of the 2 gems are out-of-date (100%)
39+
#{Rainbow('1').yellow} gems are sourced from git
40+
#{Rainbow('2').red} of the 2 gems are out-of-date (100%)
4441
EO_MULTLINE_STRING
4542
end
4643
end

0 commit comments

Comments
 (0)