Skip to content

Commit b2e82a1

Browse files
committed
Remove warnings
When running tests locally, multiple warnings were being emitted. A lot of these warnings have to do with the fact that we are overriding core methods in RSpec, and whenever you override a method, Ruby feels the need to inform you. To get around this, we need to use the same trick that we already use for AugmentedMatcher: we create a module on the fly and `prepend` it to the class or module in question. Sometimes we might even need to `prepend` to the singleton class. Also, this commit adds WarningsLogger so that we can track when this happens again.
1 parent f2f2903 commit b2e82a1

25 files changed

+405
-305
lines changed

Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ gem "pry-byebug", platform: :mri
1010
gem "pry-nav", platform: :jruby
1111
gem "rake"
1212
gem "rubocop"
13+
gem "warnings_logger"
1314

1415
gemspec

Rakefile

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,9 @@ require_relative "support/current_bundle"
44

55
begin
66
require "rspec/core/rake_task"
7-
RSpec::Core::RakeTask.new(:spec)
7+
RSpec::Core::RakeTask.new(spec: :before_spec) do |config|
8+
config.verbose = true
9+
end
810
rescue LoadError
911
task :spec do
1012
appraisal = SuperDiff::CurrentBundle.instance.latest_appraisal
@@ -22,3 +24,7 @@ task :default do
2224
exec "appraisal #{appraisal.name} rake --trace"
2325
end
2426
end
27+
28+
task :before_spec do
29+
FileUtils.rm_rf(File.expand_path("./spec/tmp", __dir__))
30+
end

gemfiles/no_rails_rspec_gte_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "rspec", ">= 3.10", "< 4"
1213

1314
gemspec path: "../"

gemfiles/no_rails_rspec_gte_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ GEM
6363
thor (1.0.1)
6464
trollop (1.16.2)
6565
unicode-display_width (1.7.0)
66+
warnings_logger (0.1.1)
6667

6768
PLATFORMS
6869
ruby
@@ -76,6 +77,7 @@ DEPENDENCIES
7677
rspec (>= 3.10, < 4)
7778
rubocop
7879
super_diff!
80+
warnings_logger
7981

8082
BUNDLED WITH
8183
2.1.4

gemfiles/no_rails_rspec_lt_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "rspec", "< 3.10"
1213

1314
gemspec path: "../"

gemfiles/no_rails_rspec_lt_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ GEM
6363
thor (1.0.1)
6464
trollop (1.16.2)
6565
unicode-display_width (1.7.0)
66+
warnings_logger (0.1.1)
6667

6768
PLATFORMS
6869
ruby
@@ -76,6 +77,7 @@ DEPENDENCIES
7677
rspec (< 3.10)
7778
rubocop
7879
super_diff!
80+
warnings_logger
7981

8082
BUNDLED WITH
8183
2.1.4

gemfiles/rails_5_0_rspec_gte_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 5.0.0"

gemfiles/rails_5_0_rspec_gte_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ GEM
127127
tzinfo (1.2.7)
128128
thread_safe (~> 0.1)
129129
unicode-display_width (1.7.0)
130+
warnings_logger (0.1.1)
130131

131132
PLATFORMS
132133
ruby
@@ -146,6 +147,7 @@ DEPENDENCIES
146147
rubocop
147148
sqlite3 (~> 1.3.6)
148149
super_diff!
150+
warnings_logger
149151

150152
BUNDLED WITH
151153
2.1.4

gemfiles/rails_5_0_rspec_lt_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 5.0.0"

gemfiles/rails_5_0_rspec_lt_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ GEM
127127
tzinfo (1.2.7)
128128
thread_safe (~> 0.1)
129129
unicode-display_width (1.7.0)
130+
warnings_logger (0.1.1)
130131

131132
PLATFORMS
132133
ruby
@@ -146,6 +147,7 @@ DEPENDENCIES
146147
rubocop
147148
sqlite3 (~> 1.3.6)
148149
super_diff!
150+
warnings_logger
149151

150152
BUNDLED WITH
151153
2.1.4

gemfiles/rails_5_1_rspec_gte_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 5.1.0"

gemfiles/rails_5_1_rspec_gte_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ GEM
127127
tzinfo (1.2.7)
128128
thread_safe (~> 0.1)
129129
unicode-display_width (1.7.0)
130+
warnings_logger (0.1.1)
130131

131132
PLATFORMS
132133
ruby
@@ -146,6 +147,7 @@ DEPENDENCIES
146147
rubocop
147148
sqlite3 (~> 1.3.6)
148149
super_diff!
150+
warnings_logger
149151

150152
BUNDLED WITH
151153
2.1.4

gemfiles/rails_5_1_rspec_lt_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 5.1.0"

gemfiles/rails_5_1_rspec_lt_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ GEM
127127
tzinfo (1.2.7)
128128
thread_safe (~> 0.1)
129129
unicode-display_width (1.7.0)
130+
warnings_logger (0.1.1)
130131

131132
PLATFORMS
132133
ruby
@@ -146,6 +147,7 @@ DEPENDENCIES
146147
rubocop
147148
sqlite3 (~> 1.3.6)
148149
super_diff!
150+
warnings_logger
149151

150152
BUNDLED WITH
151153
2.1.4

gemfiles/rails_5_2_rspec_gte_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 5.2.0"

gemfiles/rails_5_2_rspec_gte_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ GEM
127127
tzinfo (1.2.7)
128128
thread_safe (~> 0.1)
129129
unicode-display_width (1.7.0)
130+
warnings_logger (0.1.1)
130131

131132
PLATFORMS
132133
ruby
@@ -146,6 +147,7 @@ DEPENDENCIES
146147
rubocop
147148
sqlite3 (~> 1.3.6)
148149
super_diff!
150+
warnings_logger
149151

150152
BUNDLED WITH
151153
2.1.4

gemfiles/rails_5_2_rspec_lt_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 5.2.0"

gemfiles/rails_5_2_rspec_lt_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ GEM
127127
tzinfo (1.2.7)
128128
thread_safe (~> 0.1)
129129
unicode-display_width (1.7.0)
130+
warnings_logger (0.1.1)
130131

131132
PLATFORMS
132133
ruby
@@ -146,6 +147,7 @@ DEPENDENCIES
146147
rubocop
147148
sqlite3 (~> 1.3.6)
148149
super_diff!
150+
warnings_logger
149151

150152
BUNDLED WITH
151153
2.1.4

gemfiles/rails_6_0_rspec_gte_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 6.0"

gemfiles/rails_6_0_rspec_gte_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ GEM
126126
tzinfo (1.2.7)
127127
thread_safe (~> 0.1)
128128
unicode-display_width (1.7.0)
129+
warnings_logger (0.1.1)
129130
zeitwerk (2.4.1)
130131

131132
PLATFORMS
@@ -146,6 +147,7 @@ DEPENDENCIES
146147
rubocop
147148
sqlite3 (~> 1.4.0)
148149
super_diff!
150+
warnings_logger
149151

150152
BUNDLED WITH
151153
2.1.4

gemfiles/rails_6_0_rspec_lt_3_10.gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ gem "pry-byebug", platform: :mri
88
gem "pry-nav", platform: :jruby
99
gem "rake"
1010
gem "rubocop"
11+
gem "warnings_logger"
1112
gem "activerecord-jdbcsqlite3-adapter", platform: :jruby
1213
gem "jdbc-sqlite3", platform: :jruby
1314
gem "activerecord", "~> 6.0"

gemfiles/rails_6_0_rspec_lt_3_10.gemfile.lock

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,7 @@ GEM
128128
tzinfo (1.2.7)
129129
thread_safe (~> 0.1)
130130
unicode-display_width (1.7.0)
131+
warnings_logger (0.1.1)
131132
zeitwerk (2.4.1)
132133

133134
PLATFORMS
@@ -148,6 +149,7 @@ DEPENDENCIES
148149
rubocop
149150
sqlite3 (~> 1.4.0)
150151
super_diff!
152+
warnings_logger
151153

152154
BUNDLED WITH
153155
2.1.4

lib/super_diff.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,20 @@ def self.time_like?(value)
4444
(value.respond_to?(:acts_like_time?) && value.acts_like_time?) ||
4545
value.is_a?(Time)
4646
end
47+
48+
def self.insert_overrides(target_module, mod = nil, &block)
49+
if mod
50+
target_module.prepend(mod)
51+
else
52+
target_module.prepend(Module.new(&block))
53+
end
54+
end
55+
56+
def self.insert_singleton_overrides(target_module, mod = nil, &block)
57+
if mod
58+
target_module.singleton_class.prepend(mod)
59+
else
60+
target_module.singleton_class.prepend(Module.new(&block))
61+
end
62+
end
4763
end

0 commit comments

Comments
 (0)